diff --git a/rmo/v1/README.md b/rmo/v1/README.md new file mode 100644 index 000000000..d938d5703 --- /dev/null +++ b/rmo/v1/README.md @@ -0,0 +1,7 @@ +## Reefer Monitoring Operational (RMO) + +The DCSA Interface Standard for Reefer Monitoring is documented on [**SwaggerHub.**](https://app.swaggerhub.com/apis/dcsaorg/DCSA_RMO) + +[Release v1.0.0-Beta-1 (Unpublished)](https://app.swaggerhub.com/apis/dcsaorg/DCSA_RMO/1.0.0-Beta-1) +--- +Initial release for the Operational Reefer Monitoring API diff --git a/rmo/v1/notification/README.md b/rmo/v1/notification/README.md new file mode 100644 index 000000000..d57976bd1 --- /dev/null +++ b/rmo/v1/notification/README.md @@ -0,0 +1,7 @@ +## Reefer Monitoring Operational Notification (RMO_NTF) API + +The DCSA Reefer Monitoring Operational Notification API is specified on [**SwaggerHub.**](https://app.swaggerhub.com/apis/dcsaorg/DCSA_RMO_NTF) + +Release v1.0.0 Beta 1 (Unpublished) +--- +Initial release of the DCSA OpenAPI definitions for Reefer Monitoring Operational Notification API diff --git a/rmo/v1/notification/rmo_ntf_v1.0.0-Beta-1.yaml b/rmo/v1/notification/rmo_ntf_v1.0.0-Beta-1.yaml new file mode 100644 index 000000000..ad9507870 --- /dev/null +++ b/rmo/v1/notification/rmo_ntf_v1.0.0-Beta-1.yaml @@ -0,0 +1,272 @@ +openapi: 3.0.0 +x-stoplight: + id: 56d39d62070e0 +info: + version: 1.0.0-Beta-1 + title: DCSA OpenAPI specification for Operational Reefer Notifications + description: | + API specification issued by DCSA.org. + + Reefer Monitoring Operational Notifications for [DCSA OpenAPI specification for Reefer Monitoring Operational](https://app.swaggerhub.com/apis/dcsaorg/DCSA_RMO/1.0.0-Beta-1) is a lightweight notification based on [CloudEvents](https://cloudevents.io/). + The `POST` endpoint of the consumer is called whenever a `Reefer` that is being subscribed to meets the agreed notification criteria. + + Subscribing to notification is done outside scope of this API. + + ### Stats API + The Stats API offers crucial statistical information for both API providers and consumers to enhance their services and helps DCSA to understand and scale the ecosystem. We expect you to invoke the Stats API for every request made to the Reefer Monitoring Operational Notification API. Further details can be found [here](https://developer.dcsa.org/#/http/guides/api-guides/stats-api) + + For a changelog please click [here](https://github.com/dcsaorg/DCSA-OpenAPI/tree/master/rmo/notification/v1#v100B1). Please also [create a GitHub issue](https://github.com/dcsaorg/DCSA-OpenAPI/issues/new) if you have any questions/comments. + contact: + name: Digital Container Shipping Association (DCSA) + url: 'https://dcsa.org' + email: info@dcsa.org +tags: + - name: Notifications + description: Notification operations +servers: + - url: 'http://localhost:3000' +paths: + /v1/operational-reefer-notifications: + post: + tags: + - Notifications + summary: Send a new Operational Reefer Notification + operationId: operational-reefer-notifications + description: | + Creates a new [`Operational Reefer Notification`](#/OperationalReeferNotification). This endpoint of the consumer is called whenever a `Reefer` that is being subscribed to meets the agreed notification criteria. + parameters: + - name: API-Version + in: header + description: | + An API-Version header **MUST** be provided to the request (mandatory). The header **MUST** be a [SemVer](https://semver.org/) specifying the provider (the calling party) API version. + required: true + schema: + type: string + example: 1.0.0-Beta-1 + requestBody: + description: | + The payload used to create a [`Operational Reefer Notification`](#/OperationalReeferNotification) + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/OperationalReeferNotification' + examples: + alarmActivatedExample: + summary: | + A 'lite' notification for a reefer container with an activated alarm + description: | + A notification that an alarm has been triggered for a reefer container + value: + - specversion: '1.0' + id: 3cecb101-7a1a-43a4-9d62-e88a131651e2 + source: 'https://member.com/' + type: org.dcsa.operational-reefer-notification.v1 + time: '2024-01-03T17:31:00Z' + datacontenttype: application/json + data: + notificationType: ALARM + equipmentReference: APZU4812090 + geoLocation: + latitude: '48.858550' + longitude: '2.294492' + alarm: + alarmStatus: ACTIVE + alarmNumber: '100' + alarmSeverity: CRITICAL + deactivedExample: + summary: | + A 'lite' notification for a reefer container with a deactivated alarm + description: | + A notification that an alarm has been deactivated for a reefer container + value: + - specversion: '1.0' + id: 3cecb101-7a1a-43a4-9d62-e88a131651e2 + source: 'https://member.com/' + type: org.dcsa.operational-reefer-notification.v1 + time: '2024-01-03T17:31:00Z' + datacontenttype: application/json + data: + notificationType: ALARM + equipmentReference: APZU4812090 + geoLocation: + latitude: '48.858550' + longitude: '2.294492' + alarm: + alarmStatus: INACTIVE + alarmNumber: '100' + alarmSeverity: CRITICAL + responses: + '204': + description: | + No Content + headers: + API-Version: + description: | + [SemVer](https://semver.org/) used to indicate the version of the consumer (the responding party). This is optional to provide. + schema: + type: string + example: 1.0.0-Beta-1 + servers: + - url: 'http://localhost:3000' + parameters: [] +components: + schemas: + OperationalReeferNotification: + type: object + x-stoplight: + id: 621758c14a567 + title: Operational Reefer Notification + description: | + `CloudEvent` specific properties for the `Notification`. + properties: + specversion: + type: string + description: | + The version of the CloudEvents specification which the event uses. This enables the interpretation of the context. Compliant event producers MUST use a value of `1.0` when referring to this version of the specification. + + Currently, this attribute will only have the 'major' and 'minor' version numbers included in it. This allows for 'patch' changes to the specification to be made without changing this property's value in the serialization. Note: for 'release candidate' releases a suffix might be used for testing purposes. + enum: + - '1.0' + example: '1.0' + id: + type: string + maxLength: 100 + description: | + Identifies the event. Producers MUST ensure that `source` + `id` is unique for each distinct event. If a duplicate event is re-sent (e.g. due to a network error) it MAY have the same `id`. Consumers MAY assume that Events with identical `source` and `id` are duplicates. + example: 3cecb101-7a1a-43a4-9d62-e88a131651e2 + source: + type: string + maxLength: 4096 + description: | + Identifies the context in which an event happened. Often this will include information such as the type of the event source, the organization publishing the event or the process that produced the event. The exact syntax and semantics behind the data encoded in the URI is defined by the event producer. + + Producers MUST ensure that `source` + `id` is unique for each distinct event. + + An application MAY assign a unique `source` to each distinct producer, which makes it easy to produce unique IDs since no other producer will have the same source. The application MAY use UUIDs, URNs, DNS authorities or an application-specific scheme to create unique `source` identifiers. + + A source MAY include more than one producer. In that case the producers MUST collaborate to ensure that `source` + `id` is unique for each distinct event. + example: 'https://member.com/' + type: + type: string + description: | + This attribute contains a value describing the type of event related to the originating occurrence. Often this attribute is used for routing, observability, policy enforcement, etc. The format of this is producer defined and might include information such as the version of the type - see [Versioning of CloudEvents in the Primer](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/primer.md#versioning-of-cloudevents) for more information. + enum: + - org.dcsa.operational-reefer-notification.v1 + example: org.dcsa.operational-reefer-notification.v1 + time: + type: string + format: date-time + description: | + Timestamp of when the occurrence happened. If the time of the occurrence cannot be determined then this attribute MAY be set to some other time (such as the current time) by the CloudEvents producer, however all producers for the same `source` MUST be consistent in this respect. In other words, either they all use the actual time of the occurrence or they all use the same algorithm to determine the value used. + example: '2018-04-05T17:31:00Z' + datacontenttype: + type: string + description: | + Content type of `data` value. This attribute enables `data` to carry any type of content, whereby format and encoding might differ from that of the chosen event format. For example, an event rendered using the [JSON envelope](formats/json-format.md#3-envelope) format might carry an XML payload in `data`, and the consumer is informed by this attribute being set to "application/xml". The rules for how `data` content is rendered for different `datacontenttype` values are defined in the event format specifications; for example, the JSON event format defines the relationship in [section 3.1](formats/json-format.md#31-handling-of-data). + + For some binary mode protocol bindings, this field is directly mapped to the respective protocol's content-type metadata property. Normative rules for the binary mode and the content-type metadata mapping can be found in the respective protocol. + + In some event formats the `datacontenttype` attribute MAY be omitted. For example, if a JSON format event has no `datacontenttype` attribute, then it is implied that the `data` is a JSON value conforming to the "application/json" media type. In other words: a JSON-format event with no `datacontenttype` is exactly equivalent to one with `datacontenttype="application/json"`. + + When translating an event message with no `datacontenttype` attribute to a different format or protocol binding, the target `datacontenttype` SHOULD be set explicitly to the implied `datacontenttype` of the source. + enum: + - application/json + example: application/json + data: + type: object + description: | + `Reefer` specific properties for the `Notification` + required: + - notificationType + - equipmentReference + properties: + notificationType: + type: string + x-stoplight: + id: 04xq44dojym5x + description: |- + The type of notification being reported. Possible values are: + + * `ALARM` Reefer is in state of alarm that meets criteria for notification + * `GEOFENCE` Reefer has triggered a provided geofence for entry or exit + example: ALARM + reason: + type: string + maxLength: 5000 + description: This property can be used to explain `NotificationType`. + example: Reefer container is in alarm state + equipmentReference: + type: string + x-stoplight: + id: qh4d8ugkuck2a + description: |- + The unique identifier for the equipment, which should follow the BIC ISO Container Identification Number where possible. + According to ISO 6346, a container identification code consists of a 4-letter prefix and a 7-digit number (composed of a 3-letter owner code, a category identifier, a serial number, and a check-digit). + If a container does not comply with ISO 6346, it is suggested to follow [Recommendation #2: Containers with non-ISO identification](https://smdg.org/documents/smdg-recommendations) from SMDG. + pattern: ^\S+(\s+\S+)*$ + maxLength: 11 + example: APZU4812090 + geoLocation: + type: object + properties: + latitude: + $ref: '#/components/schemas/latitude' + longitude: + $ref: '#/components/schemas/longitude' + description: 'The latitude, longitude geo location of the reefer when the notification was generated.' + alarm: + type: object + x-stoplight: + id: 23fcnasr894y0 + description: Provided when alarm is activated deactivated on the reefer. + properties: + alarmStatus: + type: string + x-stoplight: + id: h63fl95ba6npl + description: |- + Indicates if the alarm is active or inactive. Possible values are: + * `ACTIVE` meaning the alarm has been activated. + * `INACTIVE` meaning the alarm is no longer active. + example: ACTIVE + alarmNumber: + type: string + description: Alarm Code provided by Manufacturer + example: '100' + alarmSeverity: + type: string + description: |- + An indicator of the severity of the alarm being reported. Possible values are: + * `CRITICAL` risk to cargo and the equipment, requires intervention + * `ALARM` possible risk to cargo, investigation required + * `WARNING` warning of an abnormal situation, little or no change to operational running + * `LOG` informational only, recorded in the datalog but no on the display. + example: CRITICAL + required: + - specversion + - id + - source + - type + - time + - datacontenttype + - data + latitude: + type: string + pattern: '^[+-]?[0-9]{1,3}\.[0-9]{1,6}$' + maxLength: 10 + description: | + Geographic coordinate that specifies the north–south position of a point on the Earth's surface. + example: '48.858550' + x-stoplight: + id: kawmon8dxjpd9 + longitude: + type: string + x-stoplight: + id: 4d9bda5935ebe + pattern: '^[+-]?[0-9]{1,3}\.[0-9]{1,6}$' + maxLength: 11 + description: | + Geographic coordinate that specifies the east–west position of a point on the Earth's surface. + example: '2.294492' diff --git a/rmo/v1/rmo_v1.0.0-Beta-1.yaml b/rmo/v1/rmo_v1.0.0-Beta-1.yaml new file mode 100644 index 000000000..2e0965c3a --- /dev/null +++ b/rmo/v1/rmo_v1.0.0-Beta-1.yaml @@ -0,0 +1,842 @@ +openapi: 3.0.0 +x-stoplight: + id: 29d30143d7267 +info: + version: 1.0.0-Beta-1 + title: DCSA OpenAPI specification for Reefer Monitoring Operational + description: |- + Exchange data uniformly on data collected from live reefers between operational supply chain partners such as carriers, terminals and vessel operators. + + For explanation to specific values or objects please refer to the [Information Model 2024.Q1](https://dcsa.org/wp-content/uploads/2024/01/DCSA-Information-Model-2023.Q4.pdf). + + ## Poll model + Polling data can be done using + + GET /v1/events + + Calling this endPoint will return a list of events that fulfill the query parameters specified. The list returned is sorted in ascending (`ASC`) order based on the creation date-time of the event (`eventCreatedDateTime`). **This endPoint is mandatory to implement.** + + ### Stats API + The Stats API offers crucial statistical information for both API providers and consumers to enhance their services and helps DCSA to understand and scale the ecosystem. We expect you to invoke the Stats API for every request made to the Reefer Monitoring Operational Notification API. Further details can be found [here](https://developer.dcsa.org/#/http/guides/api-guides/stats-api) + + + For a changelog please click [here](https://github.com/dcsaorg/DCSA-OpenAPI/blob/master/rmo/v1#v100B1). Please also [create a GitHub issue](https://github.com/dcsaorg/DCSA-OpenAPI/issues/new) if you have any questions/comments. + contact: + name: Digital Container Shipping Association (DCSA) + email: info@dcsa.org + url: 'https://dcsa.org' + license: + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' + name: Apache 2.0 +paths: + /v1/events: + get: + tags: + - Events + summary: Retrieve Reefer Information + description: Fetch the current monitoring data available for reefer container fleet + operationId: fetchReefer + parameters: + - $ref: ../../domain/event/event_domain_v3.2.0.yaml#/components/parameters/eventDateTime + - $ref: ../../domain/event/event_domain_v3.2.0.yaml#/components/parameters/equipmentReference + - schema: + type: boolean + in: query + name: activeControllerAlarms + description: Will filter by all live reefers with one or more active alarms + - name: API-Version + in: header + description: | + An API-Version header **MUST** be provided to the request (mandatory). The header **MUST** be a [SemVer](https://semver.org/) specifying the provider (the calling party) API version. + required: true + schema: + type: string + example: 1.0.0-Beta-1 + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/reeferResponse' + examples: + 'Reefer data related to equipmentReference: ''APZU4812090''': + description: | + To retrieve the reefer data for a specific `equipmentReference` the following request could be made: + + GET /v1/events?equipmentReference=APZU4812090 + value: + - alarms: + activeAlarmCount: 0 + activeAlarms: + - alarmDate: '2023-10-23T15:40:28Z' + alarmNumber: N999 + alarmSeverity: ALARM + controller: + dateTime: '2023-10-23T15:40:28Z' + hardwareVersion: 1.1.1 + maker: '900' + model: N99 + operatingState: '1' + serialNumber: '123456789' + softwareVersion: 1.1.1 + equipmentReference: APZU4812090 + equipmentOptions: + - N00 + - N05 + geoLocation: + latitude: '48.858550' + longitude: '2.294492' + isConnectedToPowerSource: true + lastDefrostDateTime: '2023-10-23T15:40:28Z' + measurements: + ambientTemperature: 12 + temperature: 5 + temperatureUnit: CEL + o2: 20 + co2: 25 + relativeHumidity: 98 + airExchange: 0 + airExchangeUnit: MQH + cargoProbe1Temperature: 6 + cargoProbe2Temperature: 6 + cargoProbe3Temperature: 6 + currentPhaseA: 15 + currentPhaseB: 15 + currentPhaseC: 15 + dischargePressure: 21 + dischargeTemperature: 10 + evaporatorTemperature: 10 + lineFrequency: 60 + lineVoltage: 400 + returnProbe1Temperature: 10 + returnProbe2Temperature: 10 + returnTemperature: 10 + suctionPressure: 60 + suctionTemperature: 10 + supplySensor1Temperature: 10 + supplySensor2Temperature: 10 + supplyTemperature: 10 + setpoints: + temperature: -15 + temperatureUnit: CEL + o2: 20 + co2: 25 + humidity: 96 + reeferSettings: + controlledAtmosphereMode: 'ON' + isDefrosting: false + efficiencySetting: 2 + unitModel: N00 + device: + deviceDateTime: '2023-12-10T10:34:12Z' + model: '100' + receivedDateTime: '2023-12-10T10:34:12Z' + isDeviceConnectedToPower: true + brand: '2' + inspection: + - inspectionType: REMOTE + inspectionDate: '2023-12-10T10:34:12Z' + expiryDate: '2023-12-10T10:34:12Z' + inspectionResult: PASSED + '404': + description: Not Found + content: + application/json: + example: + httpMethod: GET + requestUri: /v1/events + statusCode: 404 + statusCodeText: Not Found + statusCodeMessage: Either no container found or no events to report + errorDateTime: '2024-01-23T07:41:00+08:30' + errors: + - errorCodeText: No reefer data available + errorCodeMessage: Either no container found or no events to report for given reefer container + post: + summary: Provide Reefer Information + operationId: postReefer + responses: + '200': + description: OK + description: Provide the current monitoring data available for reefer container(s) by pushing to the container operator. + parameters: + - schema: + type: string + in: header + name: API-Version + description: SemVer used to indicate the version of the contract (API version) returned. + requestBody: + content: + application/json: + schema: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/reeferResponse' + description: Reefer Response Body being provided + tags: + - Events +tags: + - name: Events + description: Event operations +components: + schemas: + reeferResponse: + type: object + properties: + alarms: + $ref: '#/components/schemas/alarms' + controller: + $ref: '#/components/schemas/controller' + equipmentReference: + $ref: ../../domain/dcsa/dcsa_domain_v3.1.0.yaml#/components/schemas/equipmentReference + equipmentOptions: + $ref: '#/components/schemas/equipmentOptions' + geoLocation: + $ref: '#/components/schemas/geoLocation' + isConnectedToPowerSource: + type: boolean + description: |- + Indicates if the source is connected to power. + + COA UDM Key: P2 + lastDefrostDateTime: + $ref: '#/components/schemas/lastDefrostDateTime' + measurements: + $ref: '#/components/schemas/measurements' + setpoints: + $ref: '#/components/schemas/setpoints' + reeferSettings: + $ref: '#/components/schemas/reeferSettings' + unitModel: + $ref: '#/components/schemas/unitModel' + device: + $ref: '#/components/schemas/device' + inspection: + x-stoplight: + id: 9o118j7d9m8xh + type: array + description: Can contain a Physical and Remote Inspection detail as needed + items: + $ref: '#/components/schemas/inspection' + required: + - controller + - equipmentReference + - isConnectedToPowerSource + - measurements + - setpoints + - reeferSettings + - device + x-stoplight: + id: 5qb1b34xkxt0d + alarms: + type: object + properties: + activeAlarmCount: + type: integer + description: The number of active alarms from the controller + activeAlarms: + type: array + items: + type: object + properties: + alarmDate: + type: string + description: The datetime of when the alarm first appeared + format: date-time + alarmNumber: + type: string + description: Harmonised Alarm Code across all Manufacturers + alarmSeverity: + type: string + x-stoplight: + id: g00uxr7yazobi + description: |- + An indicator of the severity of the alarm being reported. The same alarm code may increase in severity over time. Possible values are: + * `CRITICAL` risk to cargo and the equipment, requires intervention + * `ALARM` possible risk to cargo, investigation required + * `WARNING` warning of an abnormal situation, little or no change to operational running + * `LOG` informational only, recorded in the datalog but no on the display. + example: CRITICAL + required: + - alarmDate + - alarmNumber + x-stoplight: + id: xjzk5aisqefp8 + controller: + type: object + description: |- + A reefer container electronic component, + which acquires information from sensors and operates the + refrigerated container through commands. Information on + measurements and state in a controller can be extracted + electronically via communication channels by an external + device. + properties: + dateTime: + $ref: '#/components/schemas/controllerDateTime' + hardwareVersion: + $ref: '#/components/schemas/controllerHardwareVersion' + maker: + $ref: '#/components/schemas/controllerMaker' + model: + $ref: '#/components/schemas/controllerModel' + operatingState: + $ref: '#/components/schemas/controllerOperatingState' + serialNumber: + $ref: '#/components/schemas/controllerSerialNumber' + softwareVersion: + $ref: '#/components/schemas/controllerSoftwareVersion' + required: + - dateTime + - maker + - model + - operatingState + x-stoplight: + id: up81j6hmb0hrj + controllerDateTime: + type: string + description: |- + The datetime from the controller device. + + COA UDM Key: P15 + format: date-time + example: '2023-12-10T10:34:12Z' + x-stoplight: + id: 3kygiwhuc6i0p + controllerHardwareVersion: + type: string + description: The hardware revision of the controller device + x-stoplight: + id: 83u27svagzl36 + controllerMaker: + type: string + description: |- + The manufacturers of source equipment such as reefer controllers. + + COA UDM Key: P13 + example: '100' + x-stoplight: + id: yr78q4gvhj7hl + controllerModel: + type: string + description: |- + The model of the controller from the maker. + + COA UDM Key: P14 + x-stoplight: + id: ohslmbgfc0vzb + controllerOperatingState: + type: string + description: |- + The controller operating state, specific to the type of controller. + + COA UDM Key: P12 + example: '2' + x-stoplight: + id: 6o6yydrdkuo9j + controllerSerialNumber: + type: string + description: The serial number of the controller device + x-stoplight: + id: q5vk9d7gcipru + controllerSoftwareVersion: + type: string + description: The software version running on the controller device + equipmentOptions: + type: array + description: List of equipment options available on the container + items: + type: string + x-stoplight: + id: gwi88rl9890an + geoLocation: + type: object + properties: + latitude: + $ref: '#/components/schemas/latitude' + longitude: + $ref: '#/components/schemas/longitude' + x-stoplight: + id: r0k5juxkfqndb + lastDefrostDateTime: + type: string + description: The end time of the past defrost period + format: date-time + x-stoplight: + id: blu8hqpl8k31n + latitude: + type: string + pattern: '^[+-]?[0-9]{1,3}\.[0-9]{1,6}$' + maxLength: 10 + description: | + Geographic coordinate that specifies the north–south position of a point on the Earth's surface. + example: '48.858550' + x-stoplight: + id: 46hg4w1wdk2ml + longitude: + type: string + pattern: '^[+-]?[0-9]{1,3}\.[0-9]{1,6}$' + maxLength: 11 + description: | + Geographic coordinate that specifies the east–west position of a point on the Earth's surface. + example: '2.294492' + x-stoplight: + id: oed8u0n72wdev + measurements: + type: object + title: Measurements + properties: + ambientTemperature: + $ref: '#/components/schemas/measuredAmbientTemperature' + temperature: + $ref: '#/components/schemas/measuredTemperature' + temperatureUnit: + $ref: '#/components/schemas/temperatureUnit' + o2: + $ref: '#/components/schemas/measuredO2' + co2: + $ref: '#/components/schemas/measuredCo2' + relativeHumidity: + $ref: '#/components/schemas/measuredHumidity' + airExchange: + $ref: '#/components/schemas/measuredAirExchange' + airExchangeUnit: + $ref: '#/components/schemas/airExchangeUnit' + cargoProbe1Temperature: + type: number + format: float + example: 6 + description: |- + The temperature of USDA Probe 1. + + COA UDM Key: P19 + cargoProbe2Temperature: + type: number + format: float + example: 6 + description: |- + The temperature of USDA Probe 2. + + COA UDM Key: P20 + cargoProbe3Temperature: + type: number + format: float + example: 6 + description: |- + The temperature of USDA Probe 3. + + COA UDM Key: P21 + cargoProbe4Temperature: + type: number + format: float + description: | + The temperature of Probe 4. + currentPhaseA: + $ref: '#/components/schemas/currentPhaseA' + currentPhaseB: + $ref: '#/components/schemas/currentPhaseB' + currentPhaseC: + $ref: '#/components/schemas/currentPhaseC' + dischargePressure: + $ref: '#/components/schemas/dischargePressure' + dischargeTemperature: + $ref: '#/components/schemas/dischargeTemperature' + evaporatorTemperature: + $ref: '#/components/schemas/evaporatorTemperature' + lineFrequency: + $ref: '#/components/schemas/lineFrequency' + lineVoltage: + $ref: '#/components/schemas/lineVoltage' + returnProbe1Temperature: + $ref: '#/components/schemas/returnProbe1Temperature' + returnProbe2Temperature: + $ref: '#/components/schemas/returnProbe2Temperature' + returnTemperature: + $ref: '#/components/schemas/returnTemperature' + suctionPressure: + $ref: '#/components/schemas/suctionPressure' + suctionTemperature: + $ref: '#/components/schemas/suctionTemperature' + supplySensor1Temperature: + $ref: '#/components/schemas/supplySensor1Temperature' + supplySensor2Temperature: + $ref: '#/components/schemas/supplySensor2Temperature' + supplyTemperature: + $ref: '#/components/schemas/supplyTemperature' + required: + - ambientTemperature + - temperature + - temperatureUnit + - o2 + - co2 + - relativeHumidity + - cargoProbe1Temperature + - cargoProbe2Temperature + - cargoProbe3Temperature + - returnTemperature + - supplySensor1Temperature + - supplySensor2Temperature + - supplyTemperature + x-stoplight: + id: jhptt1q0ha74p + measuredAmbientTemperature: + type: number + description: | + The measured value of the ambient temperature of the Reefer. + + COA UDM Key: P6 + format: float + example: -15 + x-stoplight: + id: h009y1xnv3yoq + measuredTemperature: + type: number + description: | + The measured value of the temperature of the Reefer. + + COA UDM Key: P22 + format: float + example: -15 + temperatureUnit: + enum: + - CEL + - FAH + description: | + The unit for temperature in Celsius or Fahrenheit + + - CEL (Celsius) + - FAH (Fahrenheit) + example: CEL + measuredO2: + type: number + description: |- + The measured value of the controlled atmosphere value in percent + + COA UDM Key: P10 + format: float + minimum: 0 + maximum: 100 + example: 75.3 + measuredCo2: + type: number + description: | + The measured value of the controlled atmosphere value in percent. + + COA UDM Key: P8 + format: float + minimum: 0 + maximum: 100 + example: 75.3 + measuredHumidity: + type: number + description: |- + The measured value of the controlled atmosphere humidity value. in percent + + + COA UDM Key: P7 + format: float + minimum: 0 + maximum: 100 + example: 95.6 + x-stoplight: + id: sbc345ti9vbqh + measuredAirExchange: + type: number + description: | + The measured value for the air exchange rate which is the rate at which outdoor air replaces indoor air within a Reefer container + format: float + minimum: 0 + example: 15.4 + x-stoplight: + id: cnxt83lyksrxy + airExchangeUnit: + enum: + - MQH + - FQH + description: | + The unit for `airExchange` in metrics- or imperial- units per hour + + - MQH (Cubic metre per hour) + - FQH (Cubic foot per hour) + + **NB:** This is a conditional field. If `airExchange` is specified then this field is required + example: MQH + x-stoplight: + id: dyvtso1h2dkn9 + currentPhaseA: + type: number + description: The phase A current or average current in Amps + format: float + x-stoplight: + id: 8ijzc1jwg0sfu + currentPhaseB: + type: number + description: The phase B current or average current in Amps + format: float + x-stoplight: + id: o81ugil8ilqhi + currentPhaseC: + type: number + description: The phase C current or average current in Amps + format: float + x-stoplight: + id: 0os5x4kg1ojl2 + dischargePressure: + type: number + description: The discharge pressure in BarRelative units + format: float + x-stoplight: + id: 8oe8wt29774ko + dischargeTemperature: + type: number + description: The discharge temperature + format: float + example: -15 + x-stoplight: + id: r1k1sejd5sh22 + evaporatorTemperature: + type: number + description: The evaporator temperature in CEL + format: float + x-stoplight: + id: uye0yfqcx66r6 + lineFrequency: + type: number + description: The mains power frequency in Hz + format: float + example: 50 + x-stoplight: + id: zf3uf41zsd9wh + lineVoltage: + type: number + description: The mains power voltage in volts + format: float + example: 400 + x-stoplight: + id: yoc50twu46d2c + returnProbe1Temperature: + type: number + description: |- + The return temperature of probe 1. + + COA UDM Key: P115 + format: float + example: -15 + x-stoplight: + id: zfwkcobgjx8th + returnProbe2Temperature: + type: number + description: |- + The return temperature of probe 2. + + COA UDM Key: P116 + format: float + example: -15 + x-stoplight: + id: jkfoarx6n270o + returnTemperature: + type: number + description: |- + The return temperature. + + COA UDM Key: P5 + format: float + example: -15 + x-stoplight: + id: d849ygq6ekh19 + suctionPressure: + type: number + description: The suction pressure in BarRelative units + format: float + x-stoplight: + id: k0csuto6i2ceh + suctionTemperature: + type: number + description: The suction temperature + format: float + example: -15 + x-stoplight: + id: cx93397p2p0oj + supplySensor1Temperature: + type: number + description: |- + The supply sensor 1 temperature. + + COA UDM Key: P16 + format: float + example: -15 + x-stoplight: + id: 71ph34qp9uuyj + supplySensor2Temperature: + type: number + description: |- + The supply sensor 2 temperature. + + COA UDM Key: P17 + format: float + example: -15 + x-stoplight: + id: c0r6a1lmx876v + supplyTemperature: + type: number + description: |- + The supply temperature. + + COA UDM Key: P4 + format: float + example: -15 + x-stoplight: + id: dytsdx2qw4a3p + setpoints: + type: object + properties: + temperature: + $ref: '#/components/schemas/measuredTemperature' + temperatureUnit: + $ref: '#/components/schemas/temperatureUnit' + o2: + $ref: '#/components/schemas/measuredO2' + co2: + $ref: '#/components/schemas/measuredCo2' + humidity: + type: number + description: | + The percentage of the controlled atmosphere humidity target value + format: float + minimum: 0 + maximum: 100 + example: 95.6 + required: + - temperature + - temperatureUnit + - o2 + - co2 + x-stoplight: + id: 4tefsnmhqojmi + reeferSettings: + type: object + properties: + controlledAtmosphereMode: + $ref: '#/components/schemas/controlledAtmosphereMode' + isDefrosting: + $ref: '#/components/schemas/isDefrosting' + efficiencySetting: + $ref: '#/components/schemas/efficiencySetting' + required: + - controlledAtmosphereMode + x-stoplight: + id: aqjjtj10pt6nm + controlledAtmosphereMode: + type: string + description: |- + The controlled atmosphere mode setting. + + COA UDM Key: P18 + x-stoplight: + id: ob3mgaauntpps + isDefrosting: + type: boolean + description: Indicates if the device is defrosting + x-stoplight: + id: 3ukn8rtdt80k3 + efficiencySetting: + type: number + description: The efficiency Setting (controller specific) COA UDM List 5.5.8 + x-stoplight: + id: ha53yg6py1bz5 + unitModel: + type: string + description: 'The unit model specific to the maker, COA UDM 5.5.3 code list' + x-stoplight: + id: s9ryg72pvxgup + device: + title: device + x-stoplight: + id: 1kvbmbk3mgnvb + type: object + description: |- + An IoT device which connects wirelessly to a + network and has an ability to transmit data. Types of devices + vary based on installation location (external/internal), + life cycle (single trip/permanent), etc. In this particular + document only, a “device” is part of the equipment of + a container. A device part of a refrigerated container is + connected to the controller + properties: + deviceDateTime: + type: string + x-stoplight: + id: 1s1tkfdzwmfwb + format: date-time + description: UTC time automatically set by a wireless device or similar + example: '2023-12-10T10:34:12Z' + model: + type: string + x-stoplight: + id: ib8g0rsr609ya + description: The model type name of the device + example: '100' + receivedDateTime: + type: string + x-stoplight: + id: 6s07i7gk87ux5 + description: The time the recording was received by the Data Holder cloud system + example: '2023-12-10T10:34:12Z' + isDeviceConnectedToPower: + type: boolean + x-stoplight: + id: bblp2oalsv19i + description: Indicates if the device is connected to power + example: true + brand: + type: string + x-stoplight: + id: rsu6qmilyac9c + description: The brand name of the device + example: '2' + required: + - deviceDateTime + - model + - receivedDateTime + - isDeviceConnectedToPower + inspection: + title: inspection + x-stoplight: + id: bzqic9cdj9u5d + type: object + description: Details about the 'Physical PTI' or 'Smart PTI' that takes place during a trip + properties: + inspectionType: + type: string + x-stoplight: + id: 6qoguglcvc7es + description: Would either be `PHYSICAL` PTI or a `REMOTE` PTI performed during a trip + example: REMOTE + inspectionDate: + type: string + x-stoplight: + id: l162gjdnt7i7c + format: date-time + example: '2023-12-10T10:34:12Z' + description: The date of the inspection + expiryDate: + type: string + x-stoplight: + id: yxv7hliq5782r + format: date-time + example: '2023-12-10T10:34:12Z' + description: 'The expiry date of the remote inspection ' + inspectionResult: + type: string + x-stoplight: + id: bzvehua6qi8h9 + description: indicates if the inspection `PASSED` or `FAILED' or requires a `CHECK` + example: PASSED + required: + - inspectionType + - inspectionDate + - inspectionResult