EMP Details Facility
Modern AVRO Schemas
These schemas are essential for producing and consuming EMP messages from our cloud APIs.
All Facility Master Data EMP topics are log-compacted, ensuring that all records are preserved on their respective topics indefinitely.
Applications should start consuming from the latest offset to prevent reloading all records.
If the service is set to consume from offset=zero, all records will be loaded into your database.
For tenant onboarding, please refer to the documentation.
V3 to V4 attribute comparison mapping:
| Facility V4 | Facility V3 | Remarks |
|---|---|---|
| facilityIdentifier | facilityId | |
| facilityName | name | |
| type | This attribute not exists in V4 due to this topic is currently having operational facilities and does not exist commercial facilities. Based on business and MIM need to maintain separate topic for commercial facility that;s reason not maintaing type | |
| isOwnedByExternalParty | extOwned | |
| isActive | status | |
| facilityStatusDescription | Facility Status Description. This attribute is applicable only for LNS Facilities with status as In progress . Example: Cancelled,IP Approved and IP Preparation e.t.c | |
| isExternallyExposed | extExposed | |
| facilityAvailability | receiptServiceMode | |
| webPageAddress | url | |
| doDAAC | This attribute not exists in V4 due to no facility does not exist any doDAAC data that's the reason based on business/MIM removed this attribute | |
| validToDatetime | This is the new attribute onboarded in v4 only for operational facility valid through date.This attribute is applicable for operational facility only. When we inactivate facility automatically update system date. By default new facility date as "9999-12-31" | |
| isGpsEnabled | facilityDetail ---> gpsFlag | |
| isGsmEnabled | facilityDetail ---> gsmFlag | |
| nameAliases --> nameAlias | This is the new attribute onboarded in v4 only for LNS operational facility . The alternate name of LNS Site {3 letters of ProductFamily code}_{3 letters of Area code}_{siteDescription}_({2 letters of OperationType code}). Example: DEP_IBS_Pune Warehouse_(JV) | |
| postalAddress --> streetNumber | address --> houseNumber | |
| postalAddress --> streetName | address --> street | |
| postalAddress --> city | address --> city | |
| postalAddress --> postalCode | address --> postalCode | |
| postalAddress --> subDivision --> subDivisionName | address ---> territory | |
| postalAddress --> subDivision --> subDivisionCode | This is the new attribute onboarded in v4 . Some of the consumers need state/province code. | |
| postalAddress --> district | address ---> district | |
| postalAddress --> countryName | address ---> countryName | |
| postalAddress --> ISO2CountryCode | address ---> countryCode | |
| postalAddress --> postalAddressLine2 | address ---> addressLine2 | |
| postalAddress --> postalAddressLine3 | address ---> addressLine3 | |
| postalAddress --> latitude | address ---> latitude | |
| postalAddress --> longitude | address ---> longitude | |
| address ---> addressQualityCheckIndicator | This attribute not exists in V4 due to this attribute is not useful for business | |
| Parties --> firstName | contactDetails --> firstName | |
| Parties --> lastName | contactDetails --> lastName | |
| Parties --> jobTitle | contactDetails --> jobTitle | |
| Parties --> department | contactDetails --> department | |
| Parties --> remark | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture remark against contact details | |
| Parties --> partyFunctionName | This is the new attribute onboarded in v4 only . This attribute will tell Type of this contact. Example: Site manager,Technician | |
| Parties --> telecommunicationNumbers --> telecommunicationNumberType | This is the new attribute onboarded in v4 only . This attribute will tell facility phone number type Example: Mobile,Telephone,Fax. In V3 we are maintaining individual attribute | |
| Parties --> telecommunicationNumbers --> countryCallingCode | contactDetails --> internationalDialingCdPhonecontactDetails --> internationalDialingCdMobilecontactDetails -->internaltionalDialingCodeFax | In V3 we are maintaining individual attribute but in v4 based on the telecommunication type user will enter the data. |
| Parties --> telecommunicationNumbers --> extensionNumber | contactDetails -->extension | |
| Parties --> telecommunicationNumbers --> telecommunicationNumber | contactDetails --> phoneNumbercontactDetails --> mobileNumbercontactDetails -->faxNumber | In V3 we are maintaining individual attribute but in v4 based on the telecommunication type user will enter the data against telecommunication number. |
| Parties --> emailAddresses --> contactAddressPurposeName | This is the new attribute onboarded in v4 only . This attribute will tell type of email.Example: Person,Import Enquiry and Export Enquiry | |
| Parties --> emailAddresses --> emailAddress | contactDetails --> emailAddress | |
| contactDetails --> validThroughDate | This attribute not exists in V4 due to this attribute is not useful for business | |
| facilityRelationship --> name | parent --> name | |
| facilityRelationship --> facilityTypeParent | parent --> type | |
| facilityRelationship --> alternativeCodes --> alternativeCode | parent --> alternateCodes --> code | |
| facilityRelationship --> alternativeCodes --> alternativeCodeType -->AlternativeCodeType --> alternativeCodeTypeCode | parent --> alternateCodes --> codeType | |
| facilityOfferings --> facilityOfferingCode | facilityServices --> serviceCode | |
| facilityOfferings --> facilityOfferingName | facilityServices --> serviceName | |
| facilityOfferings --> facilityOfferingDescription | facilityServices --> serviceDescription | |
| facilityOfferings --> validToDatetime | facilityServices --> validThroughDate | |
| facilityOfferings --> isprimaryOffering | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture wheather this service is primary ornot | |
| facilityOfferings --> isDeleted | This is the new attribute onboarded in v4 only . This attribute will tell when ever the service is deleted. | |
| facilityCapacities ---> capacityMeasurement --> capacityMeasurementCode | This is the new attribute onboarded in v4 only . This attribute will tell capacity measurement code | |
| facilityCapacities ---> capacityMeasurement --> capacityMeasurementName | This is the new attribute onboarded in v4 only . This attribute will tell capacity measurement name like weightLimitCrane, weightLimitYard | |
| facilityCapacities ---> value | facilityDetail --> weightLimitCraneKg, facilityDetail --> weightLimitYardKg | |
| facilityCapacities ---> valueUnit --> unitOfMeasurementCode | This is the new attribute onboarded in v4 only . This attribute will tell capacity unit of measurement code against capacity Example: KG | |
| facilityCapacities ---> valueUnit --> unitOfMeasurementName | This is the new attribute onboarded in v4 only . This attribute will tell capacity unit of measurement Name against capacity Example: kilogram,square meter | |
| facilityCertifications --> certificationDate | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture Certification details | |
| facilityCertifications --> certificationName | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture Certification details | |
| facilityCertifications --> certificationType --> certificationTypeCode | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture Certification details | |
| facilityCertifications --> certificationType --> certificationTypeName | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture Certification details | |
| facilityCertifications --> certificationLevel --> certificationLevelCode | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture Certification details | |
| facilityCertifications --> certificationLevel --> certificationLevelName | This is the new attribute onboarded in v4 only mainly for LNS facilities. They need to capture Certification details | |
| masterFacilityType --> facilityTypeCode | This is the new attribute onboarded in v4 only for future purpose currently all records will get null only | |
| masterFacilityType --> facilityTypeName | This is the new attribute onboarded in v4 only for future purpose currently all records will get null only | |
| facilityTypes --> facilityTypeCode | facilityDetail --> facilityTypes --> code | |
| facilityTypes --> facilityTypeName | facilityDetail --> facilityTypes --> name | |
| FacilityTypes ---> isDeleted | This is the new attribute onboarded in v4 only . This attribute will tell when ever the facility type is deleted. | |
| facilityDetail --> facilityTypes --> masterType | This attribute not exists in V4 due to this attribute is not useful for business | |
| facilityDetail --> facilityTypes --> validThroughDate | This attribute not exists in V4 due to this attribute is not useful for business instead maintaining is deleted flag | |
| definedAreas --> definedAreaName | bdas --> name | |
| definedAreas --> locationType | bdas --> type | |
| definedAreas --> definedAreaTypeCode | bdas --> bdaType | |
| definedAreas --> alternativeCodes --> alternativeCode | bdas --> alternateCodes --> code | |
| definedAreas --> alternativeCodes --> alternativeCodeType -->AlternativeCodeType --> alternativeCodeTypeCode | bdas --> alternateCodes --> codeType | |
| alternativeCodes --> alternativeCode | alternateCodes --> code | |
| alternativeCodes --> alternativeCodeType -->AlternativeCodeType --> alternativeCodeTypeCode | alternateCodes --> codeType | |
| facilityAvailabilities --> availabilityStartTime | openingHours --> openTimeHours, openingHours --> openTimeMinutes | Display with the format. Example: 08:00 |
| facilityAvailabilities --> availabilityEndTime | openingHours --> closeTimeHours, openingHours --> closeTimeMinutes | Display with the format. Example: 08:00 |
| facilityAvailabilities --> facilityAvailabilityType --> facilityAvailabilityTypeCode | This is the new attribute onboarded in v4 only . This attribute will tell the facility availability type code information. Example: OH | |
| facilityAvailabilities --> facilityAvailabilityType --> facilityAvailabilityTypeName | This is the new attribute onboarded in v4 only . This attribute will tell the facility availability type name information. Example: Opening Hours | |
| facilityAvailabilities --> weekdays | openingHours --> day | |
| facilityAvailabilities --> isDeleted | This is the new attribute onboarded in v4 only . This attribute will tell when ever the facility availibility is deleted. | |
| accessByTransportModes --> transportModeCode | transportModes --> transportModeCode | |
| accessByTransportModes --> transportModeName | transportModes --> modeOfTransport | |
| accessByTransportModes --> validToDatetime | transportModes --> validThroughDate | |
| accessByTransportModes --> isDeleted | This is the new attribute onboarded in v4 only . This attribute will tell when ever the facility transport mode is deleted. | |
| transportModes --> transportDescription | This attribute not exists in V4 due to this attribute is not useful for business. If any one want need to concatenate transportmodecode and modeofTransport | |
| brand | facilityDetail --> brand | This attribute is useful for commercial fgacilities only. For OPS facility always get null |
| AssetValidFromDate | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| validFromDatetime | This is the new attribute onboarded in v4 only for operational facility valid through date.This attribute is applicable for operational facility only. When we active facility automatically update system date. By default new facility date as "1900-01-01" | |
| investmentProposalSubmissionDate | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| isFacilityTerminatedAtValidToDate | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| assetOwnershipType | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| operationalFacilityOwnership | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| capacityModel3pl | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| previousBrands | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| leaseCommitmentValue | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| investmentProposalApprovedCapex | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| clusterIdentifier | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| isStandalone | This is the new attribute onboarded in v4 only mainly for LNS facilities. | |
| createUserId | This is the new attribute onboarded in v4 only. Audit Attribute capture Facility creation user id | |
| createTimestamp | This is the new attribute onboarded in v4 only. Audit Attribute capture Facility creation timestamp | |
| updateUserId | This is the new attribute onboarded in v4 only. Audit Attribute capture Facility creation user id | |
| updateTimestamp | This is the new attribute onboarded in v4 only. Audit Attribute capture Facility creation timestamp | |
| updateSource | This is the new attribute onboarded in v4 only. This attribute should capture this facility is related to WND(Lns) or Ocean |
Facility- V3
{
"facility": {
"facilityId": "BJBN7K1I7AD4U",
"name": "Expogranel Guatemala",
"type": "OperationalFacility",
"extOwned": true,
"status": "Active",
"extExposed": true,
"address": {
"street": {
"string": "Km 100 Carretera a Puerto Quetzal"
},
"city": "Puerto Quetzal",
"postalCode": {
"string": "05001"
},
"countryName": "Guatemala",
"countryCode": "GT",
"addressLine2": {
"string": "A un Costado de Parque Las Palmas"
},
"latitude": {
"string": "13.935810"
},
"longitude": {
"string": "-90.788570"
},
"addressQualityCheckIndicator": "Do not Check"
},
"parent": {
"name": "Puerto Quetzal",
"type": "City",
"alternateCodes": [
{
"codeType": "RKST",
"code": "GTTGZ"
},
{
"codeType": "CARGOWISE1 CODE",
"code": "GTPRQ"
},
{
"codeType": "CW1 FUNCTION CODE",
"code": "GTPRQ(0,1,0,0)"
},
{
"codeType": "LNS CODE",
"code": "GTTGZ"
},
{
"codeType": "LNS UN CODE",
"code": "GTPRQ"
},
{
"codeType": "GEOID",
"code": "1E3PT92HVMD1B"
},
{
"codeType": "UN CODE",
"code": "GTPRQ"
},
{
"codeType": "SCHEDULE K",
"code": "20506"
},
{
"codeType": "HSUD CODE",
"code": "GTPRQ00"
},
{
"codeType": "LNS GEOID",
"code": "1E3PT92HVMD1B"
},
{
"codeType": "HSUD NUMBER",
"code": "100056671"
},
{
"codeType": "RKTS",
"code": "PUZ"
}
]
},
"facilityDetail": {
"facilityDetail": {
"vesselAgent": {
"string": "NO"
},
"gpsFlag": {
"string": "NO"
},
"gsmFlag": {
"string": "NO"
},
"oceanFreightPricing": {
"string": "NO"
},
"facilityTypes": {
"array": [
{
"code": "FCT_OPS_TYPE.ICD",
"name": "Inland Container Depot",
"masterType": "Facility type",
"validThroughDate": "9999-12-31"
}
]
}
}
},
"alternateCodes": [
{
"codeType": "RKST",
"code": "GTTGZEG"
},
{
"codeType": "UN CODE(Return Only)",
"code": "GTPRQ"
},
{
"codeType": "GEOID",
"code": "BJBN7K1I7AD4U"
}
],
"facilityServices": {
"array": [
{
"serviceName": "Intermodal services available: Truck",
"serviceCode": "INTM",
"serviceDescription": " - Intermodal services available: Truck",
"validThroughDate": "9999-12-31"
}
]
},
"bdas": {
"array": [
{
"name": "GTTGZ",
"type": "Business Defined Area",
"bdaType": "POOL",
"alternateCodes": [
{
"codeType": "GEOID",
"code": "KRJFTWO5INV7L"
},
{
"codeType": "BDA CODE",
"code": "GTTGZ"
}
]
}
]
}
}
}
Facility - V4
{
"facilityIdentifier": "BJBN7K1I7AD4U",
"facilityName": "Expogranel Guatemala",
"isOwnedByExternalParty": true,
"isActive": {
"boolean": true
},
"facilityStatusDescription": "",
"isExternallyExposed": true,
"validToDatetime": "9999-12-31",
"isGpsEnabled": {
"boolean": false
},
"isGsmEnabled": {
"boolean": false
},
"postalAddress": {
"postalAddressCombined": {
"streetName": {
"string": "Km 100 Carretera a Puerto Quetzal"
},
"city": "Puerto Quetzal",
"postalCode": {
"string": "05001"
},
"subDivision": {
"subDivision": {}
},
"countryName": "Guatemala",
"ISO2CountryCode": "GT",
"postalAddressLine2": {
"string": "A un Costado de Parque Las Palmas"
},
"latitude": {
"string": "13.935810"
},
"longitude": {
"string": "-90.788570"
}
}
},
"facilityRelationship": {
"name": "Puerto Quetzal",
"facilityTypeParent": "City",
"alternativeCodes": [
{
"alternativeCode": {
"string": "GTTGZ"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.RKST"
}
}
}
},
{
"alternativeCode": {
"string": "GTPRQ"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.CW1_CODE"
}
}
}
},
{
"alternativeCode": {
"string": "GTPRQ(0,1,0,0)"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.CW1_FCODE"
}
}
}
},
{
"alternativeCode": {
"string": "GTTGZ"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.LNS_CODE"
}
}
}
},
{
"alternativeCode": {
"string": "GTPRQ"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.LNS_UN_CODE"
}
}
}
},
{
"alternativeCode": {
"string": "1E3PT92HVMD1B"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.GEOID"
}
}
}
},
{
"alternativeCode": {
"string": "GTPRQ"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.UN_CODE"
}
}
}
},
{
"alternativeCode": {
"string": "20506"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.Schedule_K"
}
}
}
},
{
"alternativeCode": {
"string": "GTPRQ00"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.HSUD_CODE"
}
}
}
},
{
"alternativeCode": {
"string": "1E3PT92HVMD1B"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.LNS_GEOID"
}
}
}
},
{
"alternativeCode": {
"string": "100056671"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.HSUD_NUM"
}
}
}
},
{
"alternativeCode": {
"string": "PUZ"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.RKTS"
}
}
}
}
]
},
"facilityOfferings": {
"array": [
{
"facilityOfferingCode": "INTM",
"facilityOfferingName": "Intermodal services available: Truck",
"facilityOfferingDescription": " - Intermodal services available: Truck",
"validToDatetime": "9999-12-31",
"isprimaryOffering": false,
"isDeleted": false
}
]
},
"facilityTypes": {
"array": [
{
"facilityTypeCode": {
"string": "FCT_OPS_TYPE.ICD"
},
"facilityTypeName": "Inland Container Depot",
"FacilityTypeParent": {
"FacilityTypeParent": {
"facilityTypeCode": {
"string": "OPS"
},
"facilityTypeName": "OperationalFacility"
}
},
"isDeleted": false
}
]
},
"definedAreas": {
"array": []
},
"alternativeCodes": {
"array": [
{
"alternativeCode": {
"string": "GTTGZEG"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.RKST"
},
"alternativeCodeTypeName": {
"string": "RKST"
}
}
},
"isDeleted": false
},
{
"alternativeCode": {
"string": "GTPRQ"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.UN_CODE2"
},
"alternativeCodeTypeName": {
"string": "UN CODE(Return Only)"
}
}
},
"isDeleted": false
},
{
"alternativeCode": {
"string": "BJBN7K1I7AD4U"
},
"alternativeCodeType": {
"AlternativeCodeType": {
"alternativeCodeTypeCode": {
"string": "ALT_CODE.GEOID"
},
"alternativeCodeTypeName": {
"string": "GEOID"
}
}
},
"isDeleted": false
}
]
},
"isFacilityTerminatedAtValidToDate": false,
"isStandalone": true,
"createUserId": {
"string": "noellyn.villar.jasa@maersk.com"
},
"createTimestamp": {
"long": 1740088519669
},
"updateUserId": {
"string": "noellyn.villar.jasa@maersk.com"
},
"updateTimestamp": {
"long": 1740088519669
},
"updateSource": {
"string": "OCEAN"
}
}
Note:
- There will be no G2C for the V4 Topic.
- V3 includes only ocean facilities, while V4 consolidates all facilities (LnS, Ocean, Commercial).
| Schema | Link | Sample Feed | Status | V3 Topic Name | V4 Topic Name | Sample Data | Remarks |
|---|---|---|---|---|---|---|---|
| Facility AVRO Schema | API-JSON-Schema-Definitions/models/900-SMDS/v2/preprod/Facility.v2.avsc at 218cbacda4b2d4162bebc978e38b0d10720c4022 · Maersk-Global/API-JSON-Schema-Definitions (github.com) | | Approved by MIM team | SIT: MSK.geography.facility.topic.internal.any.v3 PP/PROD: MSK.geography.facility.topic.internal.any.v3 | SIT: msk.geography.test.facility.topic.internal.any.v4 PP/PROD: MSK.geography.facility.topic.internal.any.v4 | | |
Facility Consumer Owner Information:
Facility Configuration Details:
| Topic Name | Message Format | Geo Avro Schema | Message Header | Key Columns to Get Geo Data | Sample Message | Producer Trigger | Pre-Prod Sample Producer Parameter |
|---|---|---|---|---|---|---|---|
| MSK.geography.facility.topic.internal.any.v3 | JSON | OpsFacility_AvroSchema.avsc The message we are sending will be validated against the Avro schema. Please refer to the attached Avro schema for Facility. Note: GeoSite will publish to the Facility Topic. | When producing a message, we append the following audit details: EventType EventDescription EventDateTime MessageId **Sample Data for Header Fields:**EventType: Create/Update EventDescription: vesselCreated / vesselDataUpdated EventDateTime: Wed Feb 13 09:46:36 UTC 2021 MessageId: 93f0d94f-c1a9-4d33-8f6c-92cf88f54846 | Facility Rowid While producing a message to EMP, we pass FacilityRowid to the service, fetching data based on that and converting it into a JSON object. | CommercialFacility.json OperationalFacility.json CustomerFacility.json | SMDS Facility application | kafka.topic: MSK.geography.facility.topic.internal.any.v3 kafka.bootstrap-servers: rp-cde-rpx-stage.crb.apmoller.net:9093 kafka.username: <Emp Team Provided User Name > kafka.password: <Emp Team Provided Password > kafka.schema-registry-url: https://lb-sre-stage-cde.crb.apmoller.net:8081kafka.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="<Emp Team Provided User Name>" password="<Emp Team Provided Password>"; kafka.ssl.truststore-location: <trust store file location path > kafka.ssl.truststore-password: <trust store password > kafka.schema-registry-ssl-protocol: TLS kafka.onprem-sasl-mechanism: SCRAM-SHA-256 kafka.ssl.keystore-location: <key store file location path > kafka.ssl.keystore-password: <key store password > key-password: <key store password > kafka.onprem-login-module: org.apache.kafka.common.security.scram.ScramLoginModule **Topic Level Configuration:**ccloud_Retention Period: 72 Hrs ccloud_cleanup_policy: compact compact Mode: ON, which allows the latest message to survive in the topic based on the defined retention period. topic_type: avro replication_flow: g2c Log Compaction is enabled based on the facility ID (Geo ID). |
Was this page helpful?