diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..e9765d32 --- /dev/null +++ b/404.html @@ -0,0 +1,1033 @@ + + + + + + + + + + + + + + + + + + + + + + + ONE Record API Specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/access-delegations/index.html b/access-delegations/index.html new file mode 100644 index 00000000..23c8fb47 --- /dev/null +++ b/access-delegations/index.html @@ -0,0 +1,1525 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Access Delegations - ONE Record API Specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Access Delegations

+ +

In ONE Record, parties can grant other parties access to their data (or parts of it). +The ONE Record standard allows parties to change or revoke these access rights to their data whenever they wish.

+

Before an organization can access a LogisticsObject of another organization, it needs to be authorized to do so and the server that hosts the logistics objects will determine whether to grant access. +Typically, when an participant creates a LogisticsObject and makes it available via its ONE Record API, the IoL participant will share the URI of that LogisticsObject with another IoL participant and grant them access by default.

+

For example, a freight forwarder creates a Shipment, grants read access to an airline, and then sends the URI of the Logistics Object via a ONE Record Notification or other channel to the airline.

+

It might happen that the Airline needs access to additional Logistics objects linked to the Shipment (i.e.: Piece). In this case, the Airline MAY request the access delegation directly from the freight forwarder (Example A1)

+

At this point, only the forwarder and the airline can access this specific LogisticsObjects, but no one else.

+

However, if a ground handling agent (GHA) also needs access to this logistics object, the airline MAY request an access delegation for the GHA (Example A2).

+

If, as in this presented scenario, the airline already has a delegation of access to the logistics object, the concept of Trust Chains takes effect.

+
+

Note

+

The party granting access is referred to as the Delegator and the party receiving access is the Delegate. +The party requesting access is referred to as the Requestor.

+
+

Guidelines for Access Delegations in ONE Record: +- Only the Holder of a Logistics Object MAY delegate access to logistics objects. +- Any authenticated User of a Logistics Object CAN request a AccessDelegation on a Logistics Object, which result in a AccessDelegationRequest with the status REQUEST_PENDING. +- The implementer of the ONE record server MUST ensure that the requestor gets sufficient access to the resulting AccessDelegationRequest to query the status of the AccessDelegationRequest and revoke the AccessDelegationRequest (see also section on revoking Action Requests +- The Holder of a Logistics Object decides about the AccessDelegationRequest and changes the requestor's permissions to a Logistics Object unless there is a business or technical reason to reject it.

+

Request Access Delegation

+

Endpoint

+
 POST {{baseURL}}/access-delegations
+
+

Request

+

The following HTTP header parameters MUST be present in the request:

+ + + + + + + + + + + + + + + + + + + + +
HeaderDescriptionExamples
AcceptThe content type that the ONE Record client wants the HTTP response to be formatted in.application/ld+json
Content-TypeThe content type that is contained with the HTTP body. Valid content types.application/ld+json
+

The HTTP request body must contain a valid AccessDelegation object in the format as specified by the Content-Type in the header.

+

The AccessDelegation is a data class of the ONE Record API ontology. +The properties and relationships to other data classes are visualized in the diagram.

+
classDiagram
+    direction LR
+
+    class LogisticsObject{                
+    }
+
+    class Organization{        
+    }  
+    class AccessDelegation{
+        + hasDescription: xsd:string [0..1]
+        + hasPermission[]: Permission [1..*]                
+        + isRequestedFor[]: Organization [1..*]
+        + notifyRequestStatusChange: xsd:boolean = FALSE
+        + hasLogisticsObject[]: LogisticsObject [1..*]        
+    }
+
+    AccessDelegation "1" --> "1..*" Permission   
+    AccessDelegation "1" --> "1..*" Organization: requestedFor
+    AccessDelegation "1" --> "1..*" LogisticsObject
+
+    class Permission{
+        <<Enumeration>>
+        GET_LOGISTICS_EVENT
+        GET_LOGISTICS_OBJECT
+        PATCH_LOGISTICS_OBJECT
+        POST_LOGISTICS_EVENT
+    }    
+

Response

+

A successful request MUST return a HTTP/1.1 201 Created status code and the following HTTP headers parameters MUST be present in the response:

+ + + + + + + + + + + + + + + + + + + + +
HeaderDescriptionExamples
LocationThe URI of the newly created AccessDelegationRequesthttps://1r.example.com/action-requests/b6c24b63-405c-5cc3-ac88-9b109bb939ba
TypeThe type of the newly created AccessDelegationRequest as a URIhttps://onerecord.iata.org/ns/api#AccessDelegationRequest
+

The following HTTP status codes MUST be supported:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescriptionResponse body
201Request for delegation was successfulNo response body
400Invalid Access Delegation objectError
401Not authenticatedError
403Not authorized to submit Delegation RequestError
415Unsupported Content TypeError
500Internal Server ErrorError
+

Security

+

To engage with the "Request Access Delegation" endpoint, a client needs proper authentication. If requests lack proper authentication, the ONE Record server should respond with a 401 "Not Authenticated" status.

+

Example A1

+

An organization requests an access delegation for itself for the Piece with the URI https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c

+

Request:

+

POST /access-delegations HTTP/1.1
+Content-Type: application/ld+json; version=2.0.0-dev
+Accept: application/ld+json; version=2.0.0-dev
+
+{
+    "@context": {
+        "cargo": "https://onerecord.iata.org/ns/cargo#",
+        "api": "https://onerecord.iata.org/ns/api#"
+    },
+    "@type": "api:AccessDelegation",
+    "api:hasDescription": "Require access to Piece for handling",
+    "api:hasPermission": [{
+            "@id": "api:GET_LOGISTICS_OBJECT"
+        }
+    ],
+    "api:isRequestedFor": [{
+        "@id": "https://1r.example.com/logistics-objects/Airline_XYZ"
+    }],
+    "api:notifyRequestStatusChange": false,
+    "api:hasLogisticsObject": [{
+        "@id": "https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c"
+    }]
+}
+
+(examples/AccessDelegation_example1.json)

+

Response: +

HTTP/1.1 201 Created
+Location: https://1r.example.com/action-requests/b6c24b63-405c-5cc3-ac88-9b109bb939ba
+Content-Type: application/ld+json; version=2.0.0-dev
+Type: https://onerecord.iata.org/ns/api#AccessDelegationRequest
+

+
+

Note

+

The Requestor linked the isRequestedBy property in the created AccessDelegationRequest +and the Delegate linked in the isRequestedFor property in the AccessDelegation are the same.

+
+

Example A2

+

An organization requests an access delegation for a business partner for the Piece with the URI https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c

+

Request:

+

POST /access-delegations HTTP/1.1
+Content-Type: application/ld+json; version=2.0.0-dev
+Accept: application/ld+json; version=2.0.0-dev
+
+{
+    "@context": {
+        "cargo": "https://onerecord.iata.org/ns/cargo#",
+        "api": "https://onerecord.iata.org/ns/api#"
+    },
+    "@type": "api:AccessDelegation",
+    "api:hasDescription": "Our GHA requires read access to Piece for handling",
+    "api:hasPermission": [{
+            "@id": "api:GET_LOGISTICS_OBJECT"
+        }
+    ],
+    "api:isRequestedFor": [{
+        "@id": "https://1r.example.com/logistics-objects/GHA_ABC"
+    }],
+    "api:notifyRequestStatusChange": false,
+    "api:hasLogisticsObject": [{
+        "@id": "https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c"
+    }]
+}
+
+(examples/AccessDelegation_example2.json)

+

Response: +

HTTP/1.1 201 Created
+Location: https://1r.example.com/action-requests/1d2d3807-5dd9-5b5b-acb6-26163a6d7411
+Content-Type: application/ld+json; version=2.0.0-dev
+Type: https://onerecord.iata.org/ns/api#AccessDelegationRequest
+

+
+

Note

+

The Requestor associated with the isRequestedBy property in the created AccessDelegationRequest +is different from the Delegate linked in the isRequestedFor property in the AccessDelegation. The Requestor must be derived from the API authentication mechanism identifying who is making the request.

+
+

Trust Chains

+

Trust chains are based on business partnerships and trust in the transport chain. +It ensures that the company who has shared a logistics object, always knows who MAY access the data and at any time, it can revoke all or part of the chain of trust.

+

Therefore, the concept described in the previous sections can be used by organizations to delegate access to their partners, which become 3rd parties. +In the example above, the airline can request that the forwarder gives access to their ground handler. +The forwarder will grant the access on the basis that they trust the airline who trusts their ground handler.

+

However, if the holder of the logistics object withdraws access delegation to a second party, it MUST be ensured that the third party's access delegation is also withdrawn.

+

See also the section about revoking Action Requests.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/action-requests/index.html b/action-requests/index.html new file mode 100644 index 00000000..bd96046f --- /dev/null +++ b/action-requests/index.html @@ -0,0 +1,2025 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Action Requests - ONE Record API Specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Action Requests

+ +

ONE Record uses a generic action request pattern to support the process of one organization requesting an action that must be approved by another organization. +Examples include SubscriptionRequest, where the subscriber asks the publisher to subscribe him/her on a LogisticsObject; or the ChangeRequest, +where a User of a LogisticsObject submits a Change of a LogisticsObject that must be approved and applied by the Holder of the LogisticsObject.

+

While the creation of Action Requests by submitting Change, Subscription or Access Delegation objects is described in the previous sections, this section describes the managing of Action Requests. +This enables users and holders to view and revoke action requests, and enables holders to change the status of an ActionRequest, i.e. to accept or reject.

+

Guidelines for Action Requests in ONE Record:

+ +

ActionRequest state diagram

+
    stateDiagram-v2
+
+    direction LR   
+
+    [*] --> REQUEST_PENDING
+
+    REQUEST_PENDING --> REQUEST_ACCEPTED: accepted by holder
+    REQUEST_PENDING --> REQUEST_REJECTED: rejected by holder
+    REQUEST_PENDING --> REQUEST_REVOKED: revocation requested
+
+    REQUEST_REVOKED --> [*]
+
+    REQUEST_ACCEPTED --> [*]        
+    REQUEST_ACCEPTED --> REQUEST_FAILED:  an error has occurred        
+
+    REQUEST_FAILED --> [*]
+
+    REQUEST_REJECTED --> [*]    
+

ActionRequest data model

+

The ActionRequest is a data class of the ONE Record API ontology. +The properties and relationships to other data classes are visualized in the following class diagram.

+
    classDiagram
+
+    direction LR   
+
+    class LogisticsObject{                
+    }
+
+    class Organization{        
+    }  
+
+    class AccessDelegation{
+        + hasDescription: xsd:string [0..1]
+        + hasPermission[]: Permission [1..*]                
+        + isRequestedFor[]: Organization [1..*]
+        + notifyRequestStatusChange: xsd:boolean = FALSE
+        + hasLogisticsObject[]: LogisticsObject [1..*]        
+    }
+
+    AccessDelegation "1" --> "1..*" Permission   
+    AccessDelegation "1" --> "1..*" Organization: requestedFor
+    AccessDelegation "1" --> "1..*" LogisticsObject
+
+    class ActionRequest {
+        <<Abstract>>         
+        + hasError[]: Error [*]
+        + isRequestedAt: xsd:dateTime         
+        + isRequestedBy: Organization            
+        + isRevokedBy: Organization [0..1]
+        + hasRequestStatus: RequestStatus = REQUEST_PENDING
+        + isRevokedAt: xsd:dateTime [0..1]                 
+    }
+    ActionRequest <|-- AccessDelegationRequest
+    ActionRequest <|-- ChangeRequest
+    ActionRequest <|-- SubscriptionRequest
+
+    ActionRequest "1" --> "0..*" Error     
+    ActionRequest "1" --> "1..*" Organization : requestedBy    
+    ActionRequest --> RequestStatus                
+    ActionRequest "1" --> "1..*" Organization : revokedBy
+
+    class AccessDelegationRequest{
+        + hasAccessDelegation: AccessDelegation        
+    }
+    AccessDelegationRequest "1" --> "1" AccessDelegation    
+
+    class ChangeRequest{        
+        + hasChange: Change        
+    }    
+    ChangeRequest "1" --> "1" Change
+
+    class SubscriptionRequest{
+        + hasSubscription: Subscription
+    }   
+    SubscriptionRequest "1" --> "1" Subscription
+
+    class Change{    
+        + hasDescription: xsd:string [0..1]    
+        + hasOperation[]: Operation [1..*]        
+        + hasLogisticsObject: LogisticsObject
+        + hasRevision: xsd:positiveInteger        
+        + notifyRequestStatusChange: xsd:boolean = FALSE
+    }
+    Change "1" --> "1" LogisticsObject
+    Change "1" --> "1..*" Operation
+
+    class Subscription{        
+        + hasContentType[]: xsd:string [*]
+        + hasDescription: xsd:string [0..1]
+        + expiresAt: xsd:dateTime [0..1]                                
+        + hasSubscriber: Organization        
+        + hasTopicType: TopicType
+        + notifyRequestStatusChange: xsd:boolean = FALSE          
+        + sendLogisticsObjectBody: xsd:boolean = FALSE        
+        + includeSubscriptionEventType[]: SubscriptionEventType [1..*]
+        + hasTopic: xsd:anyURI        
+    }    
+    Subscription "1" --> "1" Organization: hasSubscriber
+    Subscription --> TopicType
+    Subscription "1" --> "1..*" SubscriptionEventType
+
+    class RequestStatus{
+        <<Enumeration>>
+        REQUEST_PENDING
+        REQUEST_ACCEPTED
+        REQUEST_REJECTED
+        REQUEST_FAILED
+        REQUEST_REVOKED        
+    }
+
+    class SubscriptionEventType{
+        <<Enumeration>>
+        LOGISTICS_OBJECT_CREATED
+        LOGISTICS_OBJECT_UPDATED
+
+        LOGISTICS_EVENT_RECEIVED
+    }
+

Get Action Request Details

+

Endpoint

+
 GET {{baseURL}}/action-requests/{{actionRequestId}}
+
+

Request

+

The following HTTP header parameters MUST be present in the request:

+ + + + + + + + + + + + + + + +
HeaderDescriptionExamples
AcceptThe content type that a ONE Record client wants the HTTP response to be formatted in. This SHOULD include the version of the ONE Record API, otherwise the latest supported ONE Record API MAY be applied.
  • application/ld+json
  • application/ld+json; version=2.0.0-dev
  • application/ld+json; version=1.2
+

Response

+

A successful request MUST return a HTTP/1.1 200 OK status code. +The body of the response includes the Action Request in the RDF serialization format that has been requested in the Accept header of the request.

+

The following HTTP headers parameters MUST be present in the response:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HeaderDescriptionExample
Content-TypeThe content type that is contained with the HTTP body.application/ld+json
Content-LanguageDescribes the language(s) for which the requested resource is intended.en-US
TypeThe type of the Action Request as a URIhttps://onerecord.iata.org/ns/api#SubscriptionRequest
Last-Modifiedhe date and time of the most recent change to the Action Request. Syntax: Last-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT. See https://developer.mozilla.org/en-US/docs/Web/Tue, 21 Feb 2023 07:28:00 GMT
+

The following HTTP status codes MUST be supported:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescriptionResponse body
200The request to retrieve the Action Request has been successfulAction Request
301The URI of the Action Request has permanently changed.No response body
302The URI of the Action Request has temporarily moved.No response body
401Not authenticatedError
403Not authorized to retrieve the Action RequestError
404Action Request not foundError
415Unsupported Content TypeError
500Internal Server ErrorError
+

Security

+

To engage with the "Get Action Request Details" endpoint, a client needs proper authentication and authorization to access the designated resource. If requests lack proper authentication, the ONE Record server should respond with a 401 "Not Authenticated" status. Conversely, for requests without proper authorization, a 403 "Not Authorized" response should be provided.

+

Example A1

+

Each SubscriptionRequest MUST have a URI that can be accessed by the requestor (subscriber) +and the publisher to obtain the current status of the request and subscription details.

+

Request:

+
GET /action-requests/599fea49-7287-42af-b441-1fa618d2aaed HTTP/1.1
+Host: 1r.example.com
+Accept: application/ld+json; version=2.0.0-dev
+
+

Response:

+

HTTP/1.1 200 OK
+Content-Type: application/ld+json; version=2.0.0-dev
+Content-Language: en-US
+Location: https://1r.example.com/action-requests/599fea49-7287-42af-b441-1fa618d2aaed
+Type: https://onerecord.iata.org/ns/api#SubscriptionRequest
+Last-Modified: Tue, 21 Feb 2023 07:28:00 GMT
+
+{
+    "@context": {
+        "api": "https://onerecord.iata.org/ns/api#"
+    },
+    "@type": "api:SubscriptionRequest",
+    "@id": "https://1r.example.com/action-requests/599fea49-7287-42af-b441-1fa618d2aaed",
+    "api:hasSubscription": {
+        "@type": "api:Subscription",
+        "@id": "internal:84891422-0215-519b-b551-bfb41d0519cd",
+        "api:hasContentType": "application/ld+json",
+        "api:hasSubscriber": {
+            "@id": "https://1r.example.com/logistics-objects/957e2622-9d31-493b-8b8f-3c805064dbda"
+        },
+        "api:hasTopicType": {
+            "@id": "api:LOGISTICS_OBJECT_IDENTIFIER"
+        },
+        "api:includeSubscriptionEventType": [
+            {
+                "@id": "api:LOGISTICS_OBJECT_UPDATED"
+            },
+            {
+                "@id": "api:LOGISTICS_OBJECT_CREATED"
+            },
+            {
+                "@id": "api:LOGISTICS_EVENT_RECEIVED"
+            }
+        ],
+        "api:hasTopic": {
+            "@type": "http://www.w3.org/2001/XMLSchema#anyURI",
+            "@value": "https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c"
+        }
+    },
+    "api:isRequestedBy": {
+        "@id": "https://1r.example.com/logistics-objects/957e2622-9d31-493b-8b8f-3c805064dbda"
+    },
+    "api:hasRequestStatus": {
+        "@id": "api:REQUEST_PENDING"
+    },
+    "api:isRequestedAt": {
+        "@type": "http://www.w3.org/2001/XMLSchema#dateTime",
+        "@value": "2023-04-20T10:38:01.000Z"
+    }
+}
+
+(examples/SubscriptionRequest_example2.json)

+

Update an Action Request

+

This API action can be used the holder/publisher of a Logistics Object to approve or reject a pending ActionRequest.

+

For example, as a publisher, this API action is used to change the status of a received Subscription Request on a ONE Record server using the PATCH HTTP method.

+
+

Note

+

Although the updating the state of of a Subscription Request is specified in the ONE Record API specification, it is not required to expose an API endpoint for this API action to be compliant with the ONE Record standard. +The reason for this is that only the holder of the logistics object MAY accept or reject a subscription request with any business logic or technology.

+

Nevertheless, this API action specification is included for reference, because in many cases, the use of HTTP PATCH is the preferred solution to update resources with REST APIs.

+
+

Endpoint

+
 PATCH {{baseURL}}/action-requests/{{actionRequestId}}
+
+

Request

+

The following query parameters MUST be supported:

+ + + + + + + + + + + + + + + +
Query parameterDescriptionValid values
statusA parameter used to configure the status of an Action request. This operation modifies the status of the Action Request based on the value specified in the status parameter.
  • https://onerecord.iata.org/ns/api#REQUEST_ACCEPTED or REQUEST_ACCEPTED
  • https://onerecord.iata.org/ns/api#REQUEST_REJECTED or REQUEST_REJECTED
  • https://onerecord.iata.org/ns/api#REQUEST_REVOKED or REQUEST_REVOKED
+

The following HTTP header parameters MUST be present in the request:

+ + + + + + + + + + + + + + + + + + + + +
HeaderDescriptionExamples
AcceptThe content type that a ONE Record client wants the HTTP response to be formatted in. This SHOULD include the version of the ONE Record API, otherwise the latest supported ONE Record API MAY be applied.
  • application/ld+json
  • application/ld+json; version=2.0.0-dev
  • application/ld+json; version=1.2
Content-TypeThe content type that is contained with the HTTP body.
  • application/ld+json
  • application/ld+json; version=2.0.0-dev
  • application/ld+json; version=1.2
+

Response

+

A successful request MUST return a HTTP/1.1 204 No Content status code and the following HTTP headers parameters MUST be present in the response:

+ + + + + + + + + + + + + + + + + + + + +
HeaderDescriptionExample
LocationThe URI of the Action Requesthttps://1r.example.com/action-requests/6b948f9b-b812-46ed-be39-4501453da99b
TypeThe type of the Action Request as a URIhttps://onerecord.iata.org/ns/api#ChangeRequest
+

Otherwise, an Error object with ErrorDetail as response body MUST be returned with the following HTTP headers:

+ + + + + + + + + + + + + + + + + + + + +
HeaderDescriptionExample
Content-TypeThe content type that is contained with the HTTP body.application/ld+json
Content-LanguageDescribes the language(s) for which the requested resource is intended.en-US
+

The following HTTP status codes MUST be supported:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescriptionResponse body
204The Action Request was successfully updatedNo body required
400The update request body is invalidError
401Not authenticatedError
403Not authorized to update the Action RequestError
404Action Request not foundError
415Unsupported Content Type, response when the client sends a PATCH document format that the server does not support for the resource identified by the Request-URI.Error
422Unprocessable request, when the server understands the PATCH document and the syntax of the PATCH document appears to be valid, but the server is incapable of processing the request.Error
500Internal Server ErrorError
+

Security

+

Access to the Action Request update endpoint should be restricted to internal usage only, and it must not be made available to external entities.

+

Example B1

+

Request:

+
PATCH /action-requests/733ed391-ad11-4c02-a2bf-c77ee7997c28?status=https://onerecord.iata.org/ns/api#REQUEST_ACCEPTED HTTP/1.1
+Host: 1r.example.com
+Content-Type: application/ld+json; version=2.0.0-dev
+Accept: application/ld+json; version=2.0.0-dev
+
+

Response:

+
HTTP/1.1 204 No Content
+Content-Type: application/ld+json; version=2.0.0-dev
+Type: https://onerecord.iata.org/ns/api#SubscriptionRequest
+Location: https://1r.example.com/action-requests/733ed391-ad11-4c02-a2bf-c77ee7997c28
+
+

Revoke Action Request

+

This API action MUST be used to revoke an Action Request MUST be revoked only by the original requestor of the ActionRequest or the holder/publisher of the Logistics Object.

+

Endpoint

+
 DELETE {{baseURL}}/action-requests/{{actionRequestId}}
+
+

Request

+

Revoking an Action Rquest does not require any mandatory HTTP headers.

+

Response

+

A successful request MUST return a HTTP/1.1 204 No Content status code.

+

The following HTTP status codes MUST be supported:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeDescriptionResponse body
204The Action Request was successfully deletedNo body required
401Not authenticatedError
403Not authorized to update the Action RequestError
404Action Request not foundError
500Internal Server ErrorError
+

Security

+

To engage with the "Revoke Action Request" endpoint, a client needs proper authentication and authorization to access the designated resource. If requests lack proper authentication, the ONE Record server should respond with a 401 "Not Authenticated" status. Conversely, for requests without proper authorization, a 403 "Not Authorized" response should be provided.

+

Example C1

+

Request: +

DELETE /action-requests/449661ee-fecf-465d-8eae-15bdaccb7080 HTTP/1.1
+Host: 1r.example.com
+

+

Response: +

HTTP/1.1 204 No Content
+

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/api-features/index.html b/api-features/index.html new file mode 100644 index 00000000..29ea1f3f --- /dev/null +++ b/api-features/index.html @@ -0,0 +1,1251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Overview - ONE Record API Specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Overview

+ +

API Features

+

The following features summarize all of the ONE Record API features

+

Get ONE Record Server Information Anyone who has access to a ONE Record server can retrieve the technical server meta information that contains information about supported features, supported ONE Record API version, supported ONE Record data model version, etc.

+

Create and publish a Logistics Object - Anyone who controls a ONE Record server can create a new Logistics Object based on the ONE Record data model specification. Once created the Logistics Object is associated with a unique URI that makes the Logistics Object available on the network.

+

Read a Logistics Object - Logistics Objects can be retrieved by calling the URI of that Logistics Object - its Logistics Object URI. Access rights to that Logistics Object URI is managed by the Holder of the Logistics Object.

+

Update a Logistics Object - As a fundamental principle, only the Holder of a Logistics Object can make changes to it. Therefore, changes required by other parties are expressed as Change Requests that needs to be approved and executed by the actual holder.

+

Subscribe to a Logistics Object for updates - Once a Logistics Object has been created, the holder can propose subscriptions to other parties who will then be notified of any changes. Other parties may also request such a subscription at the discretion of the holder.

+

Create Logistics Event linked with Logistics Objects - Logistics Events like "arrival", "acceptance" etc. are central in the management of logistics and transport. Every participant in the network with sufficient access rights can submit any type of Logistics Event to any published Logistics Object.

+

Read Logistics Event linked to a Logistics Object - Every participant of the network with sufficient permissions, can also query the Logistics Events associated with a Logistics Object.

+

Manage access to a Logistics Object - Another fundamental principle of ONE Record is that only holders of Logistics Objects have fully control access rights to that Logistics Object. Therefore, only the holder of a Logistics Object can delegate permissions to users of the Logistics Object.

+

Delegate access to a Logistics Object to a third party - By default, most Logistics Objects are not public accessible. Most of the time, access is granted to specific parties. Should these parties need to delegate access to further stakeholders - because they require data access to fulfil their logistics activities- then there is a mechanism for requesting such access to the holder of the Logistics Object.

+

Manage and access versions of Logistics Objects - Each time a logistics object is updated by a change in data, this change is recorded in an audit trail. This automatically creates a new version of the Logistics Object. Each version of the logistics object SHOULD be found and retrieved.

+

API security - Although not strictly an API feature, ONE Record specifies security measures for implementation on web servers such that access to the server may be identified, authenticated and authorized.

+

API Endpoints

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP MethodsAPI EndpointAPI Function
GET/Retrieve ServerInformation
POST/logistics-objects/Create Logistics Object. This endpoint could be either internal or not implemented.
GET, PATCH/logistics-objects/{logisticsObjectId}Retrieve Logistics Object and links to related resources
GET/logistics-objects/{logisticsObjectId}/audit-trailRetrieve Audit Trail of a Logistics Object
GET, POST/logistics-objects/{logisticsObjectId}/logistics-eventsCreate or retrieve LogisticsEvents to a Logistics Object
GET/logistics-objects/{logisticsObjectId}/logistics-events/{LogisticsEvent URI}Retrieve a LogisticsEvent
GET, POST/subscriptionsCreate or retrieve Subscription information for a Logistics Object type or a specific LogisticsObjectIdentifier
GET, PATCH, DELETE/action-requestsCreate, retrieve, or update Action Request (i.e. SubscriptionRequests, ChangeRequests or AccessDelegationRequests)
POST/notificationsReceive Notifications
POST/access-delegationsCreate, retrieve, or update Access Delegation Request
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/assets/ONE-Record-API-Class-Diagram/index.html b/assets/ONE-Record-API-Class-Diagram/index.html new file mode 100644 index 00000000..1d1f9060 --- /dev/null +++ b/assets/ONE-Record-API-Class-Diagram/index.html @@ -0,0 +1,1272 @@ + + + + + + + + + + + + + + + + + + + + + + + ONE Record API Class Diagram - ONE Record API Specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

ONE Record API Class Diagram

+ +

ONE Record API Class Diagram

+

Version: 2.0.0 Status: Endorsed by COTB on December 2023

+
classDiagram   
+    direction LR   
+
+    class LogisticsObject{                
+    }
+
+    class Organization{        
+    }  
+
+    class AccessDelegation{
+        + hasDescription: xsd:string [0..1]
+        + hasPermission[]: Permission [1..*]                
+        + isRequestedFor[]: Organization [1..*]
+        + notifyRequestStatusChange: xsd:boolean = FALSE
+        + hasLogisticsObject[]: LogisticsObject [1..*]        
+    }
+
+    AccessDelegation "1" --> "1..*" Permission   
+    AccessDelegation "1" --> "1..*" Organization: requestedFor
+    AccessDelegation "1" --> "1..*" LogisticsObject
+
+    class ActionRequest {
+        <<Abstract>>         
+        + hasError[]: Error [*]
+        + isRequestedAt: xsd:dateTime         
+        + isRequestedBy: Organization            
+        + isRevokedBy: Organization [0..1]
+        + hasRequestStatus: RequestStatus = REQUEST_PENDING
+        + isRevokedAt: xsd:dateTime [0..1]                 
+    }
+    ActionRequest <|-- AccessDelegationRequest
+    ActionRequest <|-- ChangeRequest
+    ActionRequest <|-- SubscriptionRequest
+
+    ActionRequest "1" --> "0..*" Error     
+    ActionRequest "1" --> "1..*" Organization : requestedBy    
+    ActionRequest --> RequestStatus                
+    ActionRequest "1" --> "1..*" Organization : revokedBy
+
+    class AccessDelegationRequest{
+        + hasAccessDelegation: AccessDelegation        
+    }
+    AccessDelegationRequest "1" --> "1" AccessDelegation    
+
+    class ChangeRequest{        
+        + hasChange: Change        
+    }
+    ChangeRequest "1" --> "1" LogisticsObject
+    ChangeRequest "1" --> "1" Change
+
+    class SubscriptionRequest{
+        + hasSubscription: Subscription
+    }   
+    SubscriptionRequest "1" --> "1" Subscription
+
+    class AuditTrail{                
+        + hasChangeRequest[]: ChangeRequest [*]                
+        + hasLatestRevision: xsd:positiveInteger       
+    }
+    AuditTrail "1" --> "*" ChangeRequest
+
+    class Change{    
+        + hasDescription: xsd:string [0..1]    
+        + hasOperation[]: Operation [1..*]        
+        + hasLogisticsObject: LogisticsObject
+        + hasRevision: xsd:positiveInteger        
+        + notifyRequestStatusChange: xsd:boolean = FALSE
+    }
+    Change "1" --> "1" LogisticsObject
+    Change "1" --> "1..*" Operation
+
+    class Collection{    
+        + hasItem: Object [0..*]
+        + hasTotalItems: xsd:nonNegativeInteger [0..1]    
+    }
+
+    class Error{        
+        + hasErrorDetail[]: ErrorDetail [1..*]
+        + hasTitle: xsd:string
+    }
+    Error "1" --> "*" ErrorDetail
+
+    class ErrorDetail{
+        + hasCode: xsd:string  [0..1]
+        + hasMessage: xsd:string [0..1]
+        + hasProperty: xsd:anyURI [0..1]
+        + hasResource: xsd:anyURI [0..1]
+    }
+
+    class Notification{
+        + hasChangedProperty[]: xsd:anyURI [*]        
+        + hasEventType: NotificationEventType
+        + isTriggeredBy: ActionRequest [0..1]  
+        + hasLogisticsObject: LogisticsObject [0..1]
+        + hasLogisticsObjectType: xsd:anyURI [0..1]            
+    }
+    Notification "1"--> "0..1" LogisticsObject
+    Notification "1" --> "1" NotificationEventType
+    Notification "1" --> "0..1" ActionRequest    
+
+    class Operation{
+        + o: OperationObject
+        + op: PatchOperation
+        + p: xsd:anyURI
+        + s: xsd:string
+    }
+    Operation "1" --> "1" OperationObject
+    Operation --> PatchOperation
+
+    class OperationObject{
+        + hasDatatype: xsd:anyURI
+        + hasValue: xsd:string   
+    }
+
+    class ServerInformation{
+        + hasDataHolder: Organization                
+        + hasServerEndpoint: xsd:anyURI        
+        + hasSupportedApiVersion[]: xsd:string [1..*]
+        + hasSupportedContentType[]: xsd:string [1..*]        
+        + hasSupportedEncoding[]: xsd:string [*]
+        + hasSupportedLanguage[]: xsd:string [1..*]
+        + hasSupportedOntology[]: xsd:anyURI [1..*]
+        + hasSupportedOntologyVersion[]: xsd:anyURI [1..*]
+    }    
+    ServerInformation "1" --> "1" Organization
+
+    class Subscription{        
+        + hasContentType[]: xsd:string [*]
+        + hasDescription: xsd:string [0..1]
+        + expiresAt: xsd:dateTime [0..1]                                
+        + hasSubscriber: Organization        
+        + hasTopicType: TopicType  
+        + notifyRequestStatusChange: xsd:boolean = FALSE      
+        + sendLogisticsObjectBody: xsd:boolean = FALSE        
+        + includeSubscriptionEventType[]: SubscriptionEventType [1..*]
+        + hasTopic: xsd:anyURI        
+    }    
+    Subscription "1" --> "1" Organization: hasSubscriber
+    Subscription --> TopicType
+    Subscription "1" --> "1..*" SubscriptionEventType
+
+    class NotificationEventType{
+        <<Enumeration>>
+        LOGISTICS_OBJECT_CREATED
+        LOGISTICS_OBJECT_UPDATED
+
+        LOGISTICS_EVENT_RECEIVED
+
+        CHANGE_REQUEST_PENDING
+        CHANGE_REQUEST_ACCEPTED                
+        CHANGE_REQUEST_REJECTED
+        CHANGE_REQUEST_FAILED        
+        CHANGE_REQUEST_REVOKED
+
+
+        ACCESS_DELEGATION_REQUEST_PENDING
+        ACCESS_DELEGATION_REQUEST_ACCEPTED                
+        ACCESS_DELEGATION_REQUEST_REJECTED
+        ACCESS_DELEGATION_REQUEST_FAILED
+        ACCESS_DELEGATION_REQUEST_REVOKED
+
+        SUBSCRIPTION_REQUEST_PENDING
+        SUBSCRIPTION_REQUEST_ACCEPTED                
+        SUBSCRIPTION_REQUEST_REJECTED
+        SUBSCRIPTION_REQUEST_FAILED
+        SUBSCRIPTION_REQUEST_REVOKED
+    }
+    class PatchOperation{
+        <<Enumeration>>
+        ADD
+        DELETE
+    }
+    class Permission{
+        <<Enumeration>>                
+        GET_LOGISTICS_EVENT
+        GET_LOGISTICS_OBJECT
+        PATCH_LOGISTICS_OBJECT        
+        POST_LOGISTICS_EVENT        
+    }
+    class TopicType{
+        <<Enumeration>>
+        LOGISTICS_OBJECT_TYPE
+        LOGISTICS_OBJECT_URI
+    }
+    class RequestStatus{
+        <<Enumeration>>
+        REQUEST_PENDING
+        REQUEST_ACCEPTED
+        REQUEST_REJECTED
+        REQUEST_FAILED
+        REQUEST_REVOKED        
+    }
+    class SubscriptionEventType{
+        <<Enumeration>>
+        LOGISTICS_OBJECT_CREATED
+        LOGISTICS_OBJECT_UPDATED
+
+        LOGISTICS_EVENT_RECEIVED
+    }
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/assets/ONE-Record-API-Collections.postman_collection b/assets/ONE-Record-API-Collections.postman_collection new file mode 100644 index 00000000..731c489b --- /dev/null +++ b/assets/ONE-Record-API-Collections.postman_collection @@ -0,0 +1,2253 @@ +{ + "info": { + "_postman_id": "91bb2018-a47d-4110-82e0-4f5c229aa093", + "name": "ONE Record API Collections", + "description": "# ONE Record Example Collection\n\nThis collection contains all the examples described in the ONE Record API specification website([https://iata-cargo.github.io/ONE-Record/](https://))\n\n# Collection Variables\n\nA set of variables has been designed to ease the use of this collections. In order to run any call, please set the following variables according to your setup:\n\n- baseUrl : the url of the ONE Record server (i.e. [https://1r.example.com](https://1r.example.com))\n \n\n# Authentication\n\nIf ONE Record Server implements the authentication, you should add a bearer token for each API call. Please setup the Authorization tab according to your server implementation.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28309429", + "_collection_link": "https://crimson-crescent-500945.postman.co/workspace/One-Record-workspace~090d2458-3b0b-4449-8278-184b7711961d/collection/28309429-91bb2018-a47d-4110-82e0-4f5c229aa093?action=share&source=collection_link&creator=28309429" + }, + "item": [ + { + "name": "Server Information", + "item": [ + { + "name": "Server Information", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "" + ] + }, + "description": "This request retrieve the Server Information of the ONE Record server. For more information visit : [ONE Record Server Information](https://iata-cargo.github.io/ONE-Record/server-information/)" + }, + "response": [ + { + "name": "Example A1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json;charset=UTF-8" + }, + { + "key": "transfer-encoding", + "value": "chunked" + } + ], + "cookie": [], + "body": "" + } + ] + } + ], + "description": "This folder contains the API to integract with ONE Record Server Information" + }, + { + "name": "Logistics Objects", + "item": [ + { + "name": "Create logistics object", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{{Define your json request. See examples}}" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects" + ] + }, + "description": "This request is used to create a logistics object.\n\n## Examples:\n\nDescription of the examples:\n\n1. Creating a LogisticsObject of type Piece\n \n2. Creating a LogisticsObject of type Company with an embedded Logistics Object of type Person\n \n3. Creating a LogisticsObject of type Shipment that links the previously created Piece.\n\n4. Creating a LogisticsObject of type CustomsInformation\n \n\nNote:\n\nIn order to perform Example A3 please set the variable pieceId to an existing Cargo:Piece object Id" + }, + "response": [ + { + "name": "Example A1", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\"\n },\n \"@type\": \"cargo:Piece\",\n \"cargo:coload\": false,\n \"cargo:handlingInstructions\": [\n {\n \"@type\": \"cargo:HandlingInstructions\", \n \"cargo:handlingInstructionsType\": \"SPH\",\n \"cargo:description\": \"Valuable Cargo\",\n \"cargo:handlingInstructionsTypeCode\": \"VAL\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects" + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example A2", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\"\n },\n \"@type\": [\n \"cargo:Company\",\n \"cargo:Organization\",\n \"cargo:LogisticsAgent\",\n \"cargo:LogisticsObject\"\n ],\n \"cargo:name\": \"Acme Corporation\",\n \"cargo:shortName\": \"ACME\",\n \"cargo:contactPersons\": [\n {\n \"@type\": [\n \"cargo:Person\",\n \"cargo:Actor\",\n \"cargo:LogisticsAgent\",\n \"cargo:LogisticsObject\"\n ],\n \"cargo:firstName\": \"Jane\",\n \"cargo:lastName\": \"Doe\",\n \"cargo:salutation\": \"Ms\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects" + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example A3", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\"\n },\n \"@type\": \"cargo:Shipment\",\n \"cargo:goodsDescription\": \"Lots of awesome ONE Record information materials\",\n \"cargo:containedPieces\": [{\n \"@type\": \"cargo:Piece\",\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\n }]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects" + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example A4", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\"\n },\n \"@type\": \"cargo:CustomsInformation\",\n \"cargo:countryCode\": \"DE\",\n \"cargo:subjectCode\": \"ISS\",\n \"cargo:contentCode\": \"RA\",\n \"cargo:otherCustomsInformation\": \"01234-01\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects" + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + } + ] + }, + { + "name": "Get logistics object", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": null + } + ] + }, + "description": "This request is used to get logistics objects.\n\n## Examples\n\nDescription of the examples:\n\n1. Retreive the Piece object previously created\n2. Retreive a not existing Logistics Object\n3. Retreive the Shipment object previously created with the Piece embedded.\n \n\nNote:\n\nIn order to run this example, the variables \"pieceId\" and must have existing logistics objects Id." + }, + "response": [ + { + "name": "Example B1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example B2", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "notExistingLO", + "description": "Simulate a not existing Logistics Object" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example B3", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId?embedded=true", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId" + ], + "query": [ + { + "key": "embedded", + "value": "true" + } + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{shipmentId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + }, + { + "name": "Update logistics object", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{{Define your json request. See examples}}" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": null + } + ] + }, + "description": "This request is used to update a logistics object\n\n## Examples\n\nDescription of the examples:\n\n1. Modify a Piece object adding a \"goodsDescription\" and changing the \"coload\" from false to true\n2. Add the \"grossWeight\" to a Piece object.\n3. Modify the \"grossWeight\" of a Piece object.\n4. Delete the \"grossWeight\" of a Piece object.\n5. Add two CustomsInformation logistics objects to a Piece object.\n6. Execute a change request where the referenced Logistics Object is different from the one in the URL ( it must return 400 Bad Request)\n7. Execute a change request where the ADD operation uses a disallowed property ( it must return 400 Bad Request)\n \n\nNote:\n\nIn order to have the example working you need to:\n\n- setup the \"pieceId\" variable to an existing Piece Id ( Use the example A1 to create one).\n- setup the \"shipmentId\" to run example C7\n- setup the \"internalNodeId\" to the grossWeight id give by the server (Example C3)\n- setup the hasRevision value according to your revision number\n- setup the customsInformation and customsInformation2 to run Example C5. Use the Example A4 to create CustomsInformation logistics objects" + }, + "response": [ + { + "name": "Example C1", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\n \"api\": \"https://onerecord.iata.org/ns/api#\"\n },\n \"@type\": \"api:Change\",\n \"api:hasLogisticsObject\": {\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\n },\n \"api:hasDescription\": \"Update goods description and coload\",\n \"api:hasOperation\": [{\n \"@type\": \"api:Operation\",\n \"api:op\": { \"@id\": \"api:ADD\" },\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#goodsDescription\",\n \"api:o\": [{\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#string\",\n \"api:hasValue\": \"ONE Record Advertisement Materials\"\n }]\n },\n {\n \"@type\": \"api:Operation\",\n \"api:op\": { \"@id\": \"api:DELETE\" },\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#coload\",\n \"api:o\": [{\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#boolean\",\n \"api:hasValue\": \"false\"\n }]\n },\n {\n \"@type\": \"api:Operation\",\n \"api:op\": { \"@id\": \"api:ADD\" },\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#coload\",\n \"api:o\": [{\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#boolean\",\n \"api:hasValue\": \"true\"\n }]\n }\n ],\n \"api:hasRevision\": {\n \"@type\": \"http://www.w3.org/2001/XMLSchema#positiveInteger\",\n \"@value\": \"1\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example C2", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\n \"api\": \"https://onerecord.iata.org/ns/api#\"\n },\n \"@type\": \"api:Change\",\n \"api:hasLogisticsObject\": {\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\n },\n \"api:hasDescription\": \"Add grossWeight\",\n \"api:hasOperation\": [\n {\n \"@type\": \"api:Operation\",\n \"api:op\": {\n \"@id\": \"api:ADD\"\n },\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#grossWeight\",\n \"api:o\": [\n {\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"https://onerecord.iata.org/ns/cargo#Value\",\n \"api:hasValue\": \"_:b0\"\n }\n ]\n },\n {\n \"@type\": \"api:Operation\",\n \"api:op\": {\n \"@id\": \"api:ADD\"\n },\n \"api:s\": \"_:b0\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#unit\",\n \"api:o\": [\n {\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#string\",\n \"api:hasValue\": \"KGM\"\n }\n ]\n },\n {\n \"@type\": \"api:Operation\",\n \"api:op\": {\n \"@id\": \"api:ADD\"\n },\n \"api:s\": \"_:b0\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#value\",\n \"api:o\": [\n {\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#double\",\n \"api:hasValue\": \"20.0\"\n }\n ]\n }\n ],\n \"api:hasRevision\": {\n \"@type\": \"http://www.w3.org/2001/XMLSchema#positiveInteger\",\n \"@value\": \"2\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example C3", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"@context\": {\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\n \"api\": \"https://onerecord.iata.org/ns/api#\"\n },\n \"@type\": \"api:Change\",\n \"api:hasLogisticsObject\": {\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\n },\n \"api:hasDescription\": \"Change grossWeight\",\n \"api:hasOperation\": [{\n \"@type\": \"api:Operation\",\n \"api:op\": {\n \"@id\": \"api:DELETE\"\n },\n \"api:s\": \"{{internalNodeId}}\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#value\",\n \"api:o\": [{\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#double\",\n \"api:hasValue\": \"20.0\"\n }]\n },\n {\n \"@type\": \"api:Operation\",\n \"api:op\": {\n \"@id\": \"api:ADD\"\n },\n \"api:s\": \"{{internalNodeId}}\",\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#value\",\n \"api:o\": [{\n \"@type\": \"api:OperationObject\",\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#double\",\n \"api:hasValue\": \"25.0\"\n }]\n }\n ],\n \"api:hasRevision\": {\n \"@type\": \"http://www.w3.org/2001/XMLSchema#positiveInteger\",\n \"@value\": \"3\"\n }\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example C4", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:Change\",\r\n \"api:hasLogisticsObject\": {\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\r\n },\r\n \"api:hasDescription\": \"delete grossWeight\",\r\n \"api:hasOperation\": [{\r\n \"@type\": \"api:Operation\",\r\n \"api:op\": {\r\n \"@id\": \"api:DELETE\"\r\n },\r\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\r\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#grossWeight\",\r\n \"api:o\": [{\r\n \"@type\": \"api:OperationObject\",\r\n \"api:hasDatatype\": \"https://onerecord.iata.org/ns/cargo#Value\",\r\n \"api:hasValue\": \"{{internalNodeId}}\"\r\n }]\r\n },\r\n {\r\n \"@type\": \"api:Operation\",\r\n \"api:op\": {\r\n \"@id\": \"api:DELETE\"\r\n },\r\n \"api:s\": \"{{internalNodeId}}\",\r\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#unit\",\r\n \"api:o\": [{\r\n \"@type\": \"api:OperationObject\",\r\n \"api:hasDatatype\": \"http://www.w3.org/2001/XMLSchema#string\",\r\n \"api:hasValue\": \"KGM\"\r\n }]\r\n },\r\n {\r\n \"@type\": \"api:Operation\",\r\n \"api:op\": {\r\n \"@id\": \"api:DELETE\"\r\n },\r\n \"api:s\": \"{{internalNodeId}}\",\r\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#value\",\r\n \"api:o\": [{\r\n \"@type\": \"api:OperationObject\",\r\n \"api:hasDatatype\": \"https://www.w3.org/2001/XMLSchema#double\",\r\n \"api:hasValue\": \"20\"\r\n }]\r\n }\r\n ],\r\n \"api:hasRevision\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#positiveInteger\",\r\n \"@value\": \"3\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example C5", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:Change\",\r\n \"api:hasLogisticsObject\": {\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\r\n },\r\n \"api:hasDescription\": \"add CustomsInformations\",\r\n \"api:hasOperation\": [{\r\n \"@type\": \"api:Operation\",\r\n \"api:op\": {\r\n \"@id\": \"api:ADD\"\r\n },\r\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\r\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#customsInformation\",\r\n \"api:o\": [{\r\n \"@type\": \"api:OperationObject\",\r\n \"api:hasDatatype\": \"https://onerecord.iata.org/ns/cargo#CustomsInformation\",\r\n \"api:hasValue\": \"{{baseUrl}}/logistics-objects/{{customsInformation}}\"\r\n }]\r\n },\r\n {\r\n \"@type\": \"api:Operation\",\r\n \"api:op\": {\r\n \"@id\": \"api:ADD\"\r\n },\r\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\r\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#customsInformation\",\r\n \"api:o\": [{\r\n \"@type\": \"api:OperationObject\",\r\n \"api:hasDatatype\": \"https://onerecord.iata.org/ns/cargo#CustomsInformation\",\r\n \"api:hasValue\": \"{{baseUrl}}/logistics-objects/{{customsInformation2}}\"\r\n }]\r\n }\r\n ],\r\n \"api:hasRevision\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#positiveInteger\",\r\n \"@value\": \"4\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example C6", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:Change\",\r\n \"api:hasLogisticsObject\": [\r\n {\r\n \"@type\": \"cargo:LogisticsObject\",\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\r\n }\r\n ], \r\n \"api:hasDescription\": \"add CustomsInformations\",\r\n \"api:hasOperation\": [\r\n {\r\n \"@type\": \"api:Operation\",\r\n \"api:op\": { \"@id\": \"api:ADD\" },\r\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\r\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#customsInfos\",\r\n \"api:o\": [\r\n {\r\n \"@type\": \"api:OperationObject\",\r\n \"api:hasDatatype\": \"https://onerecord.iata.org/ns/cargo#CustomsInformation\",\r\n \"api:hasValue\": \"https://1r.example.com/logistics-objects/4d73acf0-3073-4ec9-8aee-b82d64ba3805\"\r\n }\r\n ]\r\n } \r\n ], \r\n \"api:hasRevision\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#positiveInteger\",\r\n \"@value\": \"4\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": "{{shipmentId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + }, + { + "name": "Example C7", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:Change\",\r\n \"api:hasLogisticsObject\": [\r\n {\r\n \"@type\": \"cargo:LogisticsObject\",\r\n \"@id\": \"https://1r.example.com/logistics-objects/{{pieceId}}\"\r\n }\r\n ], \r\n \"api:hasDescription\": \"add LogisticsEvent\",\r\n \"api:hasOperation\": [\r\n {\r\n \"@type\": \"api:Operation\",\r\n \"api:op\": { \"@id\": \"api:ADD\" },\r\n \"api:s\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\",\r\n \"api:p\": \"https://onerecord.iata.org/ns/cargo#hasLogisticsEvent\",\r\n \"api:o\": [\r\n {\r\n \"@type\": \"api:OperationObject\",\r\n \"api:hasDatatype\": \"https://onerecord.iata.org/ns/cargo#LogisticsEvent\",\r\n \"api:hasValue\": \"{{baseUrl}}/logistics-objects/{{pieceId}}/logistics-events/c9ab534e-3246-48d3-b34d-bb380bd98af7\"\r\n }\r\n ]\r\n } \r\n ], \r\n \"api:hasRevision\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#positiveInteger\",\r\n \"@value\": \"5\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticObjectId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticObjectId" + ], + "variable": [ + { + "key": "logisticObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": "Text", + "header": [], + "cookie": [], + "body": "" + } + ] + }, + { + "name": "Get Audit Trail", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/ld+json", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/audit-trail", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "audit-trail" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": null + } + ] + }, + "description": "This request is used to get the Audit Trail of a logistics object.\n\nThe example shows how to get the Audit Trail of a Cargo:Piece. Use the example A1 to create a Piece and add the id on the variable \"pieceId\"" + }, + "response": [ + { + "name": "Example D1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/ld+json", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/audit-trail", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "audit-trail" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + }, + { + "name": "Retrieve Historical Logistics object", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId?at={{historicalDate}}", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId" + ], + "query": [ + { + "key": "at", + "value": "{{historicalDate}}" + } + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": null + } + ] + }, + "description": "This request is used to get a Historical logistics object.\nThe example shows how to get an historical version of a Cargo:Piece. Use the example A1 to create a Piece and add the id on the variable \"pieceId\". Then, set \"historicalDate\" to a date following the standard YYYYMMDDThhmmssZ\n" + }, + "response": [ + { + "name": "Example E1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId?at={{historicalDate}}", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId" + ], + "query": [ + { + "key": "at", + "value": "{{historicalDate}}" + } + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + } + ], + "description": "This folder contains all the APIs to manipulate logistics objects in ONE Record. For more information visit : [ONE Record Logistics Objects](https://iata-cargo.github.io/ONE-Record/logistics-objects/)" + }, + { + "name": "Logistics Events", + "item": [ + { + "name": "Create a Logistics Event", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{{Add here your request body. See Examples}}" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": null + } + ] + }, + "description": "This endpoints allows to create Logistics Events.\n\n## Examples\n\nDescription of the examples:\n\n1. Add a Logistics Event on an existing Cargo:Shipment object.\n2. Adding a Logistics Event on a non existing Logistics Object.\n \n\nNote:\n\nIn order to use the examples please set the variable \"shipmentId\" to an existing Shipment Logistics Object and the variable \"companyId\" to an existing Company Logistics Object (See example Logistics Objects- Example A2 and Example A3)" + }, + "response": [ + { + "name": "Example A1", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\"\r\n },\r\n \"@type\": \"cargo:LogisticsEvent\",\r\n \"cargo:creationDate\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\",\r\n \"@value\": \"2023-04-01T10:38:01.000Z\"\r\n },\r\n \"cargo:eventDate\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\",\r\n \"@value\": \"2023-04-01T10:38:01.000Z\"\r\n },\r\n \"cargo:eventCode\": {\r\n \"@type\": \"cargo:CodeListElement\",\r\n \"cargo:code\": \"DEP\",\r\n \"cargo:codeListName\": \"Departure\"\r\n },\r\n \"cargo:eventName\": \"Consignment departed on a specific flight\",\r\n \"cargo:eventTimeType\": {\r\n \"@id\": \"cargo:ACTUAL\",\r\n \"@type\": \"cargo:EventTimeType\"\r\n },\r\n \"cargo:partialEventIndicator\": false,\r\n \"cargo:eventFor\": {\r\n \"@type\": \"cargo:Shipment\",\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{shipmentId}}\"\r\n },\r\n \"cargo:recordingOrganization\": {\r\n \"@type\": \"cargo:Company\",\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{companyId}}\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{shipmentId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example A2", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\"\r\n },\r\n \"@type\": \"cargo:LogisticsEvent\",\r\n \"cargo:creationDate\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\",\r\n \"@value\": \"2023-04-01T10:38:01.000Z\"\r\n },\r\n \"cargo:eventDate\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\",\r\n \"@value\": \"2023-04-01T10:38:01.000Z\"\r\n },\r\n \"cargo:eventCode\": {\r\n \"@type\": \"cargo:CodeListElement\",\r\n \"cargo:code\": \"DEP\",\r\n \"cargo:codeListName\": \"Departure\"\r\n },\r\n \"cargo:eventName\": \"Consignment departed on a specific flight\",\r\n \"cargo:eventTimeType\": {\r\n \"@id\": \"cargo:ACTUAL\",\r\n \"@type\": \"cargo:EventTimeType\"\r\n },\r\n \"cargo:partialEventIndicator\": false,\r\n \"cargo:linkedObject\": {\r\n \"@type\": \"cargo:Shipment\",\r\n \"@id\": \"Test\"\r\n },\r\n \"cargo:recordedBy\": {\r\n \"@type\": \"cargo:Company\",\r\n \"@id\": \"Test\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "NotExistingLO", + "description": "Setup to not existing logistics object" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + }, + { + "name": "Get a Logistics Event", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events/:logisticsEventId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events", + ":logisticsEventId" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": null + }, + { + "key": "logisticsEventId", + "value": null + } + ] + }, + "description": "This endpoints allows to get Logistics Events.\n\n## Examples\n\nDescription of the examples:\n\n1. Get an existing Logistics Event\n2. Get a non exiting Logistics Event\n \n\nNote:\n\nIn order to use the examples please set the variable \"shipmentId\" to an existing Shipment Logistics Object ( See Logistics Object - Example A3 ) and set the variable \"LEId\" to an existing Logistics Event (See example Logistics Event - Example A1)" + }, + "response": [ + { + "name": "Example B1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events/:logisticsEventId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events", + ":logisticsEventId" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{shipmentId}}" + }, + { + "key": "logisticsEventId", + "value": "{{LEId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example B2", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events/:logisticsEventId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events", + ":logisticsEventId" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{pieceId}}" + }, + { + "key": "logisticsEventId", + "value": "notExisingLE", + "description": "Setup to not exiting Logistics Event" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + }, + { + "name": "Get a Logistics Event of a Logistics Object", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events", + "" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": null + } + ] + }, + "description": "This endpoints allows to get Logistics Events.\n\n## Examples\n\nDescription of the examples:\n\n1. Get all Logistics Event of a Shipment Logistics Object\n2. Get all Logistics Event filtered by Event Type of a Shipment Logistics Object\n \n\nNote:\n\nIn order to use the examples please set the variable \"shipmentId\" to an existing Shipment Logistics Object ( See Logistics Object - Example A3 )" + }, + "response": [ + { + "name": "Example C1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events/", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events", + "" + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{shipmentId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example C2", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/logistics-objects/:logisticsObjectId/logistics-events/?eventType=DEP", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "logistics-objects", + ":logisticsObjectId", + "logistics-events", + "" + ], + "query": [ + { + "key": "eventType", + "value": "DEP" + } + ], + "variable": [ + { + "key": "logisticsObjectId", + "value": "{{shipmentId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + } + ] + }, + { + "name": "Subscriptions", + "item": [ + { + "name": "Get Subscription", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/subscriptions?topicType={{logisticsObjectType}}&topic={{logisticsObjectOrLogisticsObjectType}}", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ], + "query": [ + { + "key": "topicType", + "value": "{{logisticsObjectType}}", + "description": "Used by the publisher to specify if Subscription information for a specific Logistics Object or a data class should be in the response body.\nExample: \n- https://onerecord.iata.org/ns/api#LOGISTICS_OBJECT_IDENTIFIER\n- https://onerecord.iata.org/ns/api#LOGISTICS_OBJECT_TYPE" + }, + { + "key": "topic", + "value": "{{logisticsObjectOrLogisticsObjectType}}", + "description": "Used by the publisher to specify the data class or Logistics Object URI the Subscription information should be related to. topic MUST be a valid URI\nExample: \n- https://onerecord.iata.org/ns/cargo#Piece\n- https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c" + } + ] + }, + "description": "This endpoints allows to get Subscription. \n \n## Examples \nDescription of the examples:\n\n1. Request subscription information for specific Logistics Object URI.\n2. Request subscription information for a Logistics Object type\n3. Request subscription information for a not supported Logistics Object type\n4. Required parameter \"topic=\" is missing in the HTTP query parameters. \n Note: \n In order to use the examples please set the variable \"pieceId\" to an existing Piece Logistics Object ( See Logistics Object - Example A1 )" + }, + "response": [ + { + "name": "Example A1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/subscriptions?topicType=https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_IDENTIFIER&topic={{pieceId}}", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ], + "query": [ + { + "key": "topicType", + "value": "https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_IDENTIFIER" + }, + { + "key": "topic", + "value": "{{pieceId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example A2", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/subscriptions?topicType=https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_TYPE&topic=https://onerecord.iata.org/ns/cargo%23Shipment", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ], + "query": [ + { + "key": "topicType", + "value": "https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_TYPE" + }, + { + "key": "topic", + "value": "https://onerecord.iata.org/ns/cargo%23Shipment" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example A3", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/subscriptions?topicType=https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_TYPE&topic=https://onerecord.iata.org/ns/cargo%23ForkLift", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ], + "query": [ + { + "key": "topicType", + "value": "https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_TYPE" + }, + { + "key": "topic", + "value": "https://onerecord.iata.org/ns/cargo%23ForkLift" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example A4", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseUrl}}/subscriptions?topicType=https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_TYPE", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ], + "query": [ + { + "key": "topicType", + "value": "https://onerecord.iata.org/ns/api%23LOGISTICS_OBJECT_TYPE" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + }, + { + "name": "Subscribe to Logistics Objects", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{{Add a response body. See examples}}" + }, + "url": { + "raw": "{{baseUrl}}/subscriptions", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ] + }, + "description": "This endpoints allows to subscribe to a Logistics Object or a type of logistics objects .\n\n## Examples\n\nDescription of the examples:\n\n1. Subscribe to a specific Logistics Object\n2. Subscribe to all Shipment Logistics Objects\n \n\nNote: \nIn order to use the examples please set the variable \"pieceId\" to an existing Piece Logistics Object and \"companyId\" to an existing Company LO ( See Logistics Object - Example A1 and A2)" + }, + "response": [ + { + "name": "Example B1", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:Subscription\",\r\n \"api:hasContentType\": \"application/ld+json\",\r\n \"api:hasSubscriber\": {\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{companyId}}\"\r\n },\r\n \"api:hasTopicType\": {\r\n \"@id\": \"api:LOGISTICS_OBJECT_IDENTIFIER\"\r\n },\r\n \"api:includeSubscriptionEventType\": [\r\n {\r\n \"@id\": \"api:LOGISTICS_OBJECT_UPDATED\"\r\n },\r\n {\r\n \"@id\": \"api:LOGISTICS_OBJECT_CREATED\"\r\n },\r\n {\r\n \"@id\": \"api:LOGISTICS_EVENT_RECEIVED\"\r\n }\r\n ],\r\n \"api:hasTopic\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#anyURI\",\r\n \"@value\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/subscriptions", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example B2", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:Subscription\",\r\n \"api:hasContentType\": \"application/ld+json\",\r\n \"api:hasSubscriber\": {\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{companyId}}\"\r\n },\r\n \"api:hasTopicType\": {\r\n \"@id\": \"api:LOGISTICS_OBJECT_TYPE\"\r\n },\r\n \"api:includeSubscriptionEventType\": [\r\n {\r\n \"@id\": \"api:LOGISTICS_OBJECT_UPDATED\"\r\n },\r\n {\r\n \"@id\": \"api:LOGISTICS_OBJECT_CREATED\"\r\n },\r\n {\r\n \"@id\": \"api:LOGISTICS_EVENT_RECEIVED\"\r\n }\r\n ],\r\n \"api:hasTopic\": {\r\n \"@type\": \"http://www.w3.org/2001/XMLSchema#anyURI\",\r\n \"@value\": \"https://onerecord.iata.org/ns/cargo#Shipment\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/subscriptions", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "subscriptions" + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + } + ] + }, + { + "name": "Access Delegations", + "item": [ + { + "name": "Request Access Delegation", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{{Add here your request body. See Examples}}" + }, + "url": { + "raw": "{{baseUrl}}/access-delegations", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "access-delegations" + ] + }, + "description": "This endpoints allows to subscribe request Access Delegation on a Logistics Object.\n\n## Examples\n\nDescription of the examples:\n\n1. An organization requests an access delegation for a specific Piece Logistics Object\n2. An organization requests an access delegation for a business partner on a specific Piece Logistics Object\n \n\nNote: \nIn order to use the examples please set the variable \"pieceId\" to an existing Piece Logistics Object ( See Logistics Object - Example A1 ) and \"companyId\" and \"internalCompanyId\" to an existing Company Logistics Object. The \"internalCompanyID\" should be set to the company owning the server which will send the request." + }, + "response": [ + { + "name": "Example A1", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:AccessDelegation\",\r\n \"api:hasDescription\": \"Our GHA requires read access to Piece for handling\",\r\n \"api:hasPermission\": [{\r\n \"@id\": \"api:GET_LOGISTICS_OBJECT\"\r\n }\r\n ],\r\n \"api:isRequestedFor\": [{\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{internalCompanyId}}\"\r\n }],\r\n \"api:notifyRequestStatusChange\": false,\r\n \"api:hasLogisticsObject\": [{\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\r\n }]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/access-delegations", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "access-delegations" + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + }, + { + "name": "Example A2", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"@context\": {\r\n \"cargo\": \"https://onerecord.iata.org/ns/cargo#\",\r\n \"api\": \"https://onerecord.iata.org/ns/api#\"\r\n },\r\n \"@type\": \"api:AccessDelegation\",\r\n \"api:hasDescription\": \"Our GHA requires read access to Piece for handling\",\r\n \"api:hasPermission\": [{\r\n \"@id\": \"api:GET_LOGISTICS_OBJECT\"\r\n }\r\n ],\r\n \"api:isRequestedFor\": [{\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{companyId}}\"\r\n }],\r\n \"api:notifyRequestStatusChange\": false,\r\n \"api:hasLogisticsObject\": [{\r\n \"@id\": \"{{baseUrl}}/logistics-objects/{{pieceId}}\"\r\n }]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/access-delegations", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "access-delegations" + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + } + ] + }, + { + "name": "Action Requests", + "item": [ + { + "name": "Get Action Request Details", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/action-requests/:actionRequestId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "action-requests", + ":actionRequestId" + ], + "variable": [ + { + "key": "actionRequestId", + "value": null + } + ] + }, + "description": "This endpoints allows to get details of a specific Action Request\n\n## Examples\n\nDescription of the examples:\n\n1. Get details about a Subscription Request\n \n\nNote: \nIn order to use the examples please set the variable \"ARId\" to an existing Subscription Request. To create a Subscription Request use the Example B1 or B2 in Subscriptions." + }, + "response": [ + { + "name": "Example A1", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/action-requests/:actionRequestId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "action-requests", + ":actionRequestId" + ], + "variable": [ + { + "key": "actionRequestId", + "value": "{{ARId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + }, + { + "name": "Update an Action Request", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "url": { + "raw": "{{baseUrl}}/action-requests/{{actionRequestId}}?status={{acStatus}}", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "action-requests", + "{{actionRequestId}}" + ], + "query": [ + { + "key": "status", + "value": "{{acStatus}}" + } + ] + }, + "description": "This endpoints allows to update a specific Action Request\n\n## Examples\n\nDescription of the examples:\n\n1. Update a Subscription Request\n \n\nNote: \nIn order to use the examples please set the variable \"ARId\" to an existing Subscription Request. To create a Subscription Request use the Example B1 or B2 in Subscriptions." + }, + "response": [ + { + "name": "Example B1", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + }, + { + "key": "Accept", + "value": "application/ld+json; version=2.0.0-dev", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/action-requests/:actionRequestId?status=https://onerecord.iata.org/ns/api%23REQUEST_ACCEPTED", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "action-requests", + ":actionRequestId" + ], + "query": [ + { + "key": "status", + "value": "https://onerecord.iata.org/ns/api%23REQUEST_ACCEPTED" + } + ], + "variable": [ + { + "key": "actionRequestId", + "value": "{{ARId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + }, + { + "name": "Revoke Action Request", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{baseUrl}}/action-requests/{{actionRequestId}}", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "action-requests", + "{{actionRequestId}}" + ] + }, + "description": "This endpoints allows to delete a specific Action Request\n\n## Examples\n\nDescription of the examples:\n\n1. Delete a Subscription Request\n \n\nNote: \nIn order to use the examples please set the variable \"ARId\" to an existing Subscription Request. To create a Subscription Request use the Example B1 or B2 in Subscriptions." + }, + "response": [ + { + "name": "Example C1", + "originalRequest": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{baseUrl}}/action-requests/:actionRequestId", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "action-requests", + ":actionRequestId" + ], + "variable": [ + { + "key": "actionRequestId", + "value": "{{ARId}}" + } + ] + } + }, + "_postman_previewlanguage": null, + "header": null, + "cookie": [], + "body": null + } + ] + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "baseUrl", + "value": "http://localhost:8080", + "type": "string" + }, + { + "key": "pieceId", + "value": "7c24adc7-b334-45a4-9bb2-8c2421e62979", + "type": "string" + }, + { + "key": "companyId", + "value": "f22976dc-676d-472e-bd28-24604ed082dd", + "type": "string" + }, + { + "key": "shipmentId", + "value": "a76e06f0-0662-4602-817e-9ee4fac82b35", + "type": "string" + }, + { + "key": "internalNodeId", + "value": "neone:21312", + "type": "string" + }, + { + "key": "historicalDate", + "value": "20230807T143832Z", + "type": "string" + }, + { + "key": "LEId", + "value": "61454dfe-94c7-4659-b324-e0d7f45b50e6", + "type": "string" + }, + { + "key": "ARId", + "value": "ee31870a-b4c3-4e8e-938c-a7d098592dba", + "type": "string" + }, + { + "key": "customsInformation", + "value": "1ef90d88-fa69-432b-af2b-815d7071625c", + "type": "string" + }, + { + "key": "customsInformation2", + "value": "1ef90d88-fa69-432b-af2b-815d7071626c", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/assets/ONE-Record-API-Ontology.csv b/assets/ONE-Record-API-Ontology.csv new file mode 100644 index 00000000..b717dc44 --- /dev/null +++ b/assets/ONE-Record-API-Ontology.csv @@ -0,0 +1,50 @@ +Deprecated; OWL Class;OWL Property; Data Type; Cardinality; Allowed Values; Description +False;https://onerecord.iata.org/ns/api#DelegationRequest;https://onerecord.iata.org/ns/api#action;http://www.w3.org/2001/XMLSchema#string;0..1;DELEGATE,REVOKE;REVOKE or DELEGATE +False;https://onerecord.iata.org/ns/api#ChangeRequest;https://onerecord.iata.org/ns/api#callbackUrl;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;Callback URL to be used where the subscriber receives Notifications +False;https://onerecord.iata.org/ns/api#Notification;https://onerecord.iata.org/ns/api#changedProperties;http://www.w3.org/2001/XMLSchema#anyURI;0..N;;List of all changed properties as IRIs after a ChangeRequest was successfully applied, e.g. [https://onerecord.iata.org/ns/cargo#volumetricWeight, https://onerecord.iata.org/ns/cargo#goodsDescription] +False;https://onerecord.iata.org/ns/api#ErrorDetail;https://onerecord.iata.org/ns/api#code;http://www.w3.org/2001/XMLSchema#string;0..1;;Error code is a numeric or alphanumeric code that can be used to determine the source of the error and why it occured. +False;https://onerecord.iata.org/ns/api#Subscription;https://onerecord.iata.org/ns/api#contentTypes;http://www.w3.org/2001/XMLSchema#string;0..N;;Content types that the subscriber wants to receive in the notifications, e.g. application/ld+json +False;https://onerecord.iata.org/ns/api#ServerInformation;https://onerecord.iata.org/ns/api#dataHolder;https://onerecord.iata.org/ns/cargo#Organization;0..1;;Organization Identifier that links the Holder of the data hosted on the ONE Record server +False;https://onerecord.iata.org/ns/api#OperationObject;https://onerecord.iata.org/ns/api#datatype;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;Data type of the field to update, must be a valid URI, e.g. http://www.w3.org/2001/XMLSchema#int +False;https://onerecord.iata.org/ns/api#DelegationRequest;https://onerecord.iata.org/ns/api#delegates;https://onerecord.iata.org/ns/cargo#Organization;0..N;;Organization Identifier of the Organization that should receive the delegated permissions +False;https://onerecord.iata.org/ns/api#DelegationRequest;https://onerecord.iata.org/ns/api#description;http://www.w3.org/2001/XMLSchema#string;0..1;;Reason for the request (optional) +False;https://onerecord.iata.org/ns/api#Notification;https://onerecord.iata.org/ns/api#eventType;http://www.w3.org/2001/XMLSchema#string;0..1;CHANGE_REQUEST_ACCEPTED,CHANGE_REQUEST_FAILED,CHANGE_REQUEST_PENDING,CHANGE_REQUEST_REJECTED,DELEGATION_REQUEST_ACCEPTED,DELEGATION_REQUEST_FAILED,DELEGATION_REQUEST_PENDING,DELEGATION_REQUEST_REJECTED,LOGISTICS_EVENT_RECEIVED,LOGISTICS_OBJECT_CREATED,LOGISTICS_OBJECT_UPDATED,SUBSCRIPTION_REQUEST_ACCEPTED,SUBSCRIPTION_REQUEST_FAILED,SUBSCRIPTION_REQUEST_PENDING,SUBSCRIPTION_REQUEST_REJECTED;LOGISTICS_OBJECT_CREATED, LOGISTICS_OBJECT_UPDATED, LOGISTICS_EVENT_RECEIVED, CHANGE_REQUEST_PENDING, CHANGE_REQUEST_ACCEPTED, CHANGE_REQUEST_REJECTED, CHANGE_REQUEST_FAILED +False;https://onerecord.iata.org/ns/api#Subscription;https://onerecord.iata.org/ns/api#expiresAt;http://www.w3.org/2001/XMLSchema#dateTime;0..1;;Expiry date as date time of the subscription information that supports caching but does not require the ONE Record client to store the datetime when the Subscription object was received, if not given: the information does not expire +False;https://onerecord.iata.org/ns/api#ChangeRequest;https://onerecord.iata.org/ns/api#hasError;https://onerecord.iata.org/ns/api#Error;0..N;;Error object(s) if the processing was not successful +False;https://onerecord.iata.org/ns/api#Error;https://onerecord.iata.org/ns/api#hasErrorDetail;https://onerecord.iata.org/ns/api#ErrorDetail;0..N;;Error details +False;https://onerecord.iata.org/ns/api#Notification;https://onerecord.iata.org/ns/api#hasLogisticsObject;https://onerecord.iata.org/ns/cargo#LogisticsObject;0..1;;Link to the related LogisticsObject +False;https://onerecord.iata.org/ns/api#ChangeRequest;https://onerecord.iata.org/ns/api#hasOperation;https://onerecord.iata.org/ns/api#Operation;1..N;;Operation(s) to apply as PATCH on a Logistics Object +False;https://onerecord.iata.org/ns/api#SubscriptionRequest;https://onerecord.iata.org/ns/api#hasSubscription;https://onerecord.iata.org/ns/api#Subscription;0..1;;Contains a list links to the requestors Subscription objects with all subscription information +False;https://onerecord.iata.org/ns/api#AuditTrail;https://onerecord.iata.org/ns/api#latestRevision;http://www.w3.org/2001/XMLSchema#positiveInteger;0..1;;Latest revision of the Logistics Object. Starting with revision 0 +False;https://onerecord.iata.org/ns/api#ErrorDetail;https://onerecord.iata.org/ns/api#message;http://www.w3.org/2001/XMLSchema#string;0..1;;Message that describes the error +False;https://onerecord.iata.org/ns/api#Operation;https://onerecord.iata.org/ns/api#o;n8238ebcaaba547eb984dc94af5ca9d8eb109;0..1;;PATCH object to modify +False;https://onerecord.iata.org/ns/api#Operation;https://onerecord.iata.org/ns/api#op;n8238ebcaaba547eb984dc94af5ca9d8eb20;0..1;ADD,DELETE;Operation objects must have exactly one op (operation) member, this value indicates which operation is to be performed. The value must be one of ADD or DELETE, all other values result in an error +False;https://onerecord.iata.org/ns/api#Operation;https://onerecord.iata.org/ns/api#p;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;Operations objects must have exactly one p, predicate, member. The value of this member must be an URI, e.g. https://onerecord.iata.org/ns/cargo#goodsDescription +False;https://onerecord.iata.org/ns/api#DelegationRequest;https://onerecord.iata.org/ns/api#permissions;http://www.w3.org/2001/XMLSchema#string;0..N;GET,PATCH;GET or PATCH +False;https://onerecord.iata.org/ns/api#ErrorDetail;https://onerecord.iata.org/ns/api#property;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;Property of the object for which the error applies in IRI format, i.e. https://onerecord.iata.org/ns/cargo#volumetricWeight +False;https://onerecord.iata.org/ns/api#AuditTrail;https://onerecord.iata.org/ns/api#recordsChangeRequest;https://onerecord.iata.org/ns/api#ChangeRequest;0..N;;Recorded change requests in the Audit Trail of a Logistics Object +False;https://onerecord.iata.org/ns/api#DelegationRequest;https://onerecord.iata.org/ns/api#requestedAt;http://www.w3.org/2001/XMLSchema#dateTime;0..1;;Datetime when the request was created +False;https://onerecord.iata.org/ns/api#ChangeRequest;https://onerecord.iata.org/ns/api#requestedBy;https://onerecord.iata.org/ns/cargo#Organization;0..1;;Organization Identifier that represents the Organization that has requested +False;https://onerecord.iata.org/ns/api#ErrorDetail;https://onerecord.iata.org/ns/api#resource;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;URI of the object where the error occurred +False;https://onerecord.iata.org/ns/api#ChangeRequest;https://onerecord.iata.org/ns/api#revision;http://www.w3.org/2001/XMLSchema#positiveInteger;0..1;;Revision number of the Logistics Object, starting with 0 for changing the initial revision of a Logistics Object +False;https://onerecord.iata.org/ns/api#Operation;https://onerecord.iata.org/ns/api#s;http://www.w3.org/2001/XMLSchema#string;0..1;;Operation objects MUST have exactly one "s", subject, member. The value of this member MUST be one of IRI or blank node. +False;https://onerecord.iata.org/ns/api#Subscription;https://onerecord.iata.org/ns/api#secret;http://www.w3.org/2001/XMLSchema#string;0..1;;Either a secret or API Key that ensures that only companies with this subscription information can POST to the subscriber callback endpoint +False;https://onerecord.iata.org/ns/api#Subscription;https://onerecord.iata.org/ns/api#sendLogisticsObjectBody;http://www.w3.org/2001/XMLSchema#boolean;0..1;;Flag specifying if the publisher should send the whole logistics object or not in the notification object +False;https://onerecord.iata.org/ns/api#ServerInformation;https://onerecord.iata.org/ns/api#serverEndpoint;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;ONE Record API endpoint +False;https://onerecord.iata.org/ns/api#SubscriptionRequest;https://onerecord.iata.org/ns/api#status;http://www.w3.org/2001/XMLSchema#string;0..1;ACCEPTED,PENDING,REJECTED;PENDING, ACCEPTED or REJECTED +False;https://onerecord.iata.org/ns/api#Subscription;https://onerecord.iata.org/ns/api#includeSubscriptionEventType;https://onerecord.iata.org/ns/api#SubscriptionEventType;1..N;LOGISTICS_OBJECT_CREATED,LOGISTICS_OBJECT_UPDATED,LOGISTICS_EVENT_RECEIVED;An array used to indicate the specific types of notifications that the subscriber desires to receive from the publisher. The subscriber is required to specify their preferences on a per-type basis +False;https://onerecord.iata.org/ns/api#Subscription;https://onerecord.iata.org/ns/api#subscriber;https://onerecord.iata.org/ns/cargo#Organization;0..1;;Organization Identifier of the subscribing Organization +False;https://onerecord.iata.org/ns/api#ServerInformation;https://onerecord.iata.org/ns/api#supportedContentTypes;http://www.w3.org/2001/XMLSchema#string;0..N;;Supported content types of the server, MUST contain at least application/ld+json +False;https://onerecord.iata.org/ns/api#ServerInformation;https://onerecord.iata.org/ns/api#supportedEncodings;http://www.w3.org/2001/XMLSchema#string;0..N;;Optional list of supported encodings of the ONE Record server, e.g. gzip +False;https://onerecord.iata.org/ns/api#ServerInformation;https://onerecord.iata.org/ns/api#supportedLanguages;http://www.w3.org/2001/XMLSchema#string;0..N;;Supported languages of the ONE Record API, minimum is en-US (American English) +False;https://onerecord.iata.org/ns/api#ServerInformation;https://onerecord.iata.org/ns/api#supportedLogisticsObjectTypes;http://www.w3.org/2001/XMLSchema#anyURI;0..N;;Supported logistics object types on the server +False;https://onerecord.iata.org/ns/api#DelegationRequest;https://onerecord.iata.org/ns/api#targetCompanies;http://www.w3.org/2001/XMLSchema#string;0..N;;Parties that receive the delegated rights +False;https://onerecord.iata.org/ns/api#DelegationRequest;https://onerecord.iata.org/ns/api#targetLogisticsObjects;https://onerecord.iata.org/ns/cargo#LogisticsObject;0..N;;Identifiers of the logistics objects to which the access is requested +False;https://onerecord.iata.org/ns/api#Error;https://onerecord.iata.org/ns/api#title;http://www.w3.org/2001/XMLSchema#string;0..1;;Short summary of the error +False;https://onerecord.iata.org/ns/api#Notification;https://onerecord.iata.org/ns/api#topic;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;The Logistics Object type or specific Logistics Object to which the subscription belongs to e.g. https://onerecord.iata.org/ns/cargo#Piece or https://1r.example.com/7f01363f-0c6a-4414-be48-d3692e219b91 +False;https://onerecord.iata.org/ns/api#Subscription;https://onerecord.iata.org/ns/api#topicType;http://www.w3.org/2001/XMLSchema#string;0..1;LOGISTICS_OBJECT_IDENTIFIER,LOGISTICS_OBJECT_TYPE;Specifies if the topic is a LogisticsObject type or a Logistics Object Identifier +False;https://onerecord.iata.org/ns/api#Notification;https://onerecord.iata.org/ns/api#triggeredByChangeRequest;https://onerecord.iata.org/ns/api#ChangeRequest;0..1;;Optional URI to the ChangeRequest that triggered a Notification if the eventType is one of CHANGE_REQUEST_ACCEPTED, CHANGE_REQUEST_REJECT, or CHANGE_REQUEST_FAILED +False;https://onerecord.iata.org/ns/api#OperationObject;https://onerecord.iata.org/ns/api#value;http://www.w3.org/2001/XMLSchema#string;0..1;;Updated value for the field +False;https://onerecord.iata.org/ns/api#Notification;https://onerecord.iata.org/ns/api#hasLogisticsObjectType;http://www.w3.org/2001/XMLSchema#anyURI;0..1;;The type of cargo:LogisticsObject in the notification e.g. https://onerecord.iata.org/ns/cargo#Piece +False;https://onerecord.iata.org/ns/api#Collection;https://onerecord.iata.org/ns/api#hasItem;http://www.w3.org/2002/07/owl#Thing;0..N;;Item that is contained in a collection +False;https://onerecord.iata.org/ns/api#Collection;https://onerecord.iata.org/ns/api#hasTotalItems;http://www.w3.org/2001/XMLSchema#nonNegativeInteger;0..1;;The number of total items contained in a collection diff --git a/assets/ONE-Record-API-Ontology.ttl b/assets/ONE-Record-API-Ontology.ttl new file mode 100644 index 00000000..4eb8acd8 --- /dev/null +++ b/assets/ONE-Record-API-Ontology.ttl @@ -0,0 +1,1370 @@ +@prefix : . +@prefix dc: . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix cargo: . +@prefix terms: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports cargo: ; + dc:description "The ONE Record API vocabulary, described using W3C RDF Schema and the Web Ontology Language."@en ; + dc:title "ONE Record API Ontology"@en ; + terms:abstract "The ontology of the ONE Record API is the data model underlying for standard ONE Record API: https://github.com/IATA-Cargo/ONE-Record. ONE Record is a standard for data sharing and creates a single record view of the shipment. This standard defines a common data model for the data that is shared via standardized and secured web API."@en ; + terms:modified "2023-05-02" ; + terms:title "ONE Record API Ontology"@en ; + rdfs:comment """ +For a detailed Changelog, see CHANGELOG.md in API directory in GitHub"""@en ; + rdfs:isDefinedBy "https://www.iata.org/one-record/"^^xsd:anyURI ; + rdfs:label "ONE Record API Ontology"@en ; + owl:versionInfo "2.0.1-dev" . + +################################################################# +# Annotation properties +################################################################# + +### http://purl.org/dc/elements/1.1/description +dc:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/elements/1.1/title +dc:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/abstract +terms:abstract rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/modified +terms:modified rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +terms:title rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2002/07/owl#maxCardinality +owl:maxCardinality rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2002/07/owl#maxQualifiedCardinality +owl:maxQualifiedCardinality rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2002/07/owl#minCardinality +owl:minCardinality rdf:type owl:AnnotationProperty . + + +### http://www.w3.org/2002/07/owl#minQualifiedCardinality +owl:minQualifiedCardinality rdf:type owl:AnnotationProperty . + + +################################################################# +# Object Properties +################################################################# + +### https://onerecord.iata.org/ns/api#hasAccessDelegation +:hasAccessDelegation rdf:type owl:ObjectProperty ; + rdfs:domain :AccessDelegationRequest ; + rdfs:range :AccessDelegation ; + rdfs:label "has Access Delegation"@en . + + +### https://onerecord.iata.org/ns/api#hasChange +:hasChange rdf:type owl:ObjectProperty ; + rdfs:domain :ChangeRequest ; + rdfs:comment "Contains submitted Change object"@en ; + rdfs:label "has Change"@en . + + +### https://onerecord.iata.org/ns/api#hasChangeRequest +:hasChangeRequest rdf:type owl:ObjectProperty ; + rdfs:domain :AuditTrail ; + rdfs:range :ChangeRequest ; + rdfs:comment "Recorded change requests in the Audit Trail of a Logistics Object"@en ; + rdfs:label "has Change Request"@en . + + +### https://onerecord.iata.org/ns/api#hasDataHolder +:hasDataHolder rdf:type owl:ObjectProperty ; + rdfs:domain :ServerInformation ; + rdfs:range cargo:Organization ; + rdfs:comment "The data holder of the servers data."@en ; + rdfs:label "has data holder"@en . + + +### https://onerecord.iata.org/ns/api#hasError +:hasError rdf:type owl:ObjectProperty ; + rdfs:domain :ActionRequest ; + rdfs:range :Error ; + rdfs:comment "Error object(s) if the processing was not successful"@en ; + rdfs:label "has Error"@en . + + +### https://onerecord.iata.org/ns/api#hasErrorDetail +:hasErrorDetail rdf:type owl:ObjectProperty ; + rdfs:domain :Error ; + rdfs:range :ErrorDetail ; + rdfs:comment "Error details"@en ; + rdfs:label "has Error Detail"@en . + + +### https://onerecord.iata.org/ns/api#hasEventType +:hasEventType rdf:type owl:ObjectProperty ; + rdfs:domain :Notification ; + rdfs:range :NotificationEventType ; + rdfs:label "has Event Type"@en . + + +### https://onerecord.iata.org/ns/api#hasItem +:hasItem rdf:type owl:ObjectProperty ; + rdfs:domain :Collection ; + rdfs:comment "Item that is contained in a collection"@en ; + rdfs:label "has Item"@en . + + +### https://onerecord.iata.org/ns/api#hasLogisticsAgent +:hasLogisticsAgent rdf:type owl:ObjectProperty ; + rdfs:domain :AccessPermissions ; + rdfs:range cargo:LogisticsAgent . + + +### https://onerecord.iata.org/ns/api#hasLogisticsObject +:hasLogisticsObject rdf:type owl:ObjectProperty ; + rdfs:range cargo:LogisticsObject ; + rdfs:comment "A reference to a cargo:LogisticsObject." ; + rdfs:label "has Logistics Object"@en . + + +### https://onerecord.iata.org/ns/api#hasOperation +:hasOperation rdf:type owl:ObjectProperty ; + rdfs:domain :Change ; + rdfs:range :Operation ; + rdfs:comment "Operation(s) to apply as PATCH on a Logistics Object"@en ; + rdfs:label "has Operation"@en . + + +### https://onerecord.iata.org/ns/api#hasPermission +:hasPermission rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :AccessDelegation ; + rdfs:range :Permission ; + rdfs:label "has Permission"@en . + + +### https://onerecord.iata.org/ns/api#hasRequestStatus +:hasRequestStatus rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :ActionRequest ; + rdfs:range :RequestStatus ; + rdfs:comment "has Request Status" . + + +### https://onerecord.iata.org/ns/api#hasSubscriber +:hasSubscriber rdf:type owl:ObjectProperty ; + rdfs:domain :Subscription ; + rdfs:range cargo:Organization ; + rdfs:label "has Subscriber"@en . + + +### https://onerecord.iata.org/ns/api#hasSubscription +:hasSubscription rdf:type owl:ObjectProperty ; + rdfs:domain :SubscriptionRequest ; + rdfs:range :Subscription ; + rdfs:comment "Link to the requestors Subscription object with all subscription information"@en ; + rdfs:label "has Subscription"@en . + + +### https://onerecord.iata.org/ns/api#hasTopicType +:hasTopicType rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :Subscription ; + rdfs:range :TopicType . + + +### https://onerecord.iata.org/ns/api#isRequestedBy +:isRequestedBy rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :ActionRequest ; + rdfs:range cargo:Organization ; + rdfs:comment "Organization Identifier that represents the Organization that has requested the action"@en ; + rdfs:label "is Requested By"@en . + + +### https://onerecord.iata.org/ns/api#isRequestedFor +:isRequestedFor rdf:type owl:ObjectProperty ; + rdfs:domain :AccessDelegation ; + rdfs:range cargo:Organization ; + rdfs:label "is requested for"@en . + + +### https://onerecord.iata.org/ns/api#isRevokedBy +:isRevokedBy rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :ActionRequest ; + rdfs:range cargo:Organization ; + rdfs:label "is revoked by"@en . + + +### https://onerecord.iata.org/ns/api#isTriggeredBy +:isTriggeredBy rdf:type owl:ObjectProperty ; + rdfs:domain :Notification ; + rdfs:range :ActionRequest ; + rdfs:comment "Optional URI to the ChangeRequest that triggered a Notification if the eventType is one of CHANGE_REQUEST_ACCEPTED, CHANGE_REQUEST_REJECT, or CHANGE_REQUEST_FAILED"@en ; + rdfs:label "is triggered by"@en . + + +### https://onerecord.iata.org/ns/api#o +:o rdf:type owl:ObjectProperty ; + rdfs:domain :Operation ; + rdfs:range :OperationObject . + + +### https://onerecord.iata.org/ns/api#op +:op rdf:type owl:ObjectProperty ; + rdfs:domain :Operation ; + rdfs:range :PatchOperation . + + +### https://onerecord.iata.org/ns/api#includeSubscriptionEventType +:includeSubscriptionEventType rdf:type owl:ObjectProperty ; + rdfs:domain :Subscription ; + rdfs:range :SubscriptionEventType ; + rdfs:comment "An array used to indicate the specific types of notifications that the subscriber desires to receive from the publisher. The subscriber is required to specify their preferences on a per-type basis"@en ; + rdfs:label "Include SubscriptionEventType"@en . + + +################################################################# +# Data properties +################################################################# + +### https://onerecord.iata.org/ns/api#expiresAt +:expiresAt rdf:type owl:DatatypeProperty ; + rdfs:domain :Subscription ; + rdfs:range xsd:dateTime ; + rdfs:comment "Expiry date as date time of the subscription information that supports caching but does not require the ONE Record client to store the datetime when the Subscription object was received; if not given: the information does not expire"@en ; + rdfs:label "Expires at"@en . + + +### https://onerecord.iata.org/ns/api#hasChangedProperty +:hasChangedProperty rdf:type owl:DatatypeProperty ; + rdfs:domain :Notification ; + rdfs:range xsd:anyURI ; + rdfs:comment "List of all changed properties as IRIs after a ChangeRequest was successfully applied, e.g. [https://onerecord.iata.org/ns/cargo#hasVolumetricWeight, https://onerecord.iata.org/ns/cargo/#hasGoodsDescription]"@en ; + rdfs:label "Changed property"@en . + + +### https://onerecord.iata.org/ns/api#hasCode +:hasCode rdf:type owl:DatatypeProperty ; + rdfs:domain :ErrorDetail ; + rdfs:range xsd:string ; + rdfs:comment "Error code is a numeric or alphanumeric code that can be used to determine the source of the error and why it occured."@en ; + rdfs:label "Code"@en . + + +### https://onerecord.iata.org/ns/api#hasContentType +:hasContentType rdf:type owl:DatatypeProperty ; + rdfs:domain :Subscription ; + rdfs:range xsd:string ; + rdfs:comment "Content types that the subscriber wants to receive in the notifications, e.g. application/ld+json"@en ; + rdfs:label "Content type"@en ; + rdfs:seeAlso "https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types"@en . + + +### https://onerecord.iata.org/ns/api#hasDatatype +:hasDatatype rdf:type owl:DatatypeProperty ; + rdfs:domain :OperationObject ; + rdfs:range xsd:anyURI ; + rdfs:comment "Data type of the field to update, must be a valid URI, e.g. http://www.w3.org/2001/XMLSchema#int"@en ; + rdfs:label "Datatype"@en . + + +### https://onerecord.iata.org/ns/api#hasDescription +:hasDescription rdf:type owl:DatatypeProperty ; + rdfs:domain [ rdf:type owl:Class ; + owl:unionOf ( :AccessDelegation + :Change + :Subscription + ) + ] ; + rdfs:range xsd:string ; + rdfs:comment "Reason for the request (optional)"@en ; + rdfs:label "Description"@en . + + +### https://onerecord.iata.org/ns/api#hasLatestRevision +:hasLatestRevision rdf:type owl:DatatypeProperty ; + rdfs:domain :AuditTrail ; + rdfs:range xsd:positiveInteger ; + rdfs:comment "Latest revision of the Logistics Object. Starting with revision 0"@en ; + rdfs:label "Latest revision"@en . + + +### https://onerecord.iata.org/ns/api#hasLogisticsObjectType +:hasLogisticsObjectType rdf:type owl:DatatypeProperty ; + rdfs:domain :Notification ; + rdfs:range xsd:anyURI ; + rdfs:comment "The type of cargo:LogisticsObject in the notification e.g. https://onerecord.iata.org/ns/cargo#Piece" ; + rdfs:label "has Logistics Object Type"@en . + + +### https://onerecord.iata.org/ns/api#hasMessage +:hasMessage rdf:type owl:DatatypeProperty ; + rdfs:domain :ErrorDetail ; + rdfs:range xsd:string ; + rdfs:comment "Message that describes the error"@en ; + rdfs:label "Message"@en . + + +### https://onerecord.iata.org/ns/api#hasProperty +:hasProperty rdf:type owl:DatatypeProperty ; + rdfs:domain :ErrorDetail ; + rdfs:range xsd:anyURI ; + rdfs:comment "Property of the object for which the error applies in IRI format, i.e. https://onerecord.iata.org/ns/cargo#hasVolumetricWeight"@en ; + rdfs:label "Property"@en . + + +### https://onerecord.iata.org/ns/api#hasResource +:hasResource rdf:type owl:DatatypeProperty ; + rdfs:domain :ErrorDetail ; + rdfs:range xsd:anyURI ; + rdfs:comment "URI of the object where the error occurred"@en ; + rdfs:label "Resource"@en . + + +### https://onerecord.iata.org/ns/api#hasRevision +:hasRevision rdf:type owl:DatatypeProperty ; + rdfs:domain :ChangeRequest ; + rdfs:range xsd:positiveInteger ; + rdfs:comment "Revision number of the Logistics Object, starting with 0 for changing the initial revision of a Logistics Object"@en ; + rdfs:label "Revision"@en . + + +### https://onerecord.iata.org/ns/api#hasServerEndpoint +:hasServerEndpoint rdf:type owl:DatatypeProperty ; + rdfs:domain :ServerInformation ; + rdfs:range xsd:anyURI ; + rdfs:comment "ONE Record API endpoint"@en ; + rdfs:label "Server endpoint"@en . + + +### https://onerecord.iata.org/ns/api#hasSupportedApiVersion +:hasSupportedApiVersion rdf:type owl:DatatypeProperty ; + rdfs:domain :ServerInformation ; + rdfs:range xsd:string ; + rdfs:comment "Supported ONE Record API versions by the server, MUST include at least one supported version."@en ; + rdfs:label "Supported API version"@en . + + +### https://onerecord.iata.org/ns/api#hasSupportedContentType +:hasSupportedContentType rdf:type owl:DatatypeProperty ; + rdfs:domain :ServerInformation ; + rdfs:range xsd:string ; + rdfs:comment "Supported content types of the server, MUST contain at least application/ld+json"@en ; + rdfs:label "Supported content type"@en . + + +### https://onerecord.iata.org/ns/api#hasSupportedEncoding +:hasSupportedEncoding rdf:type owl:DatatypeProperty ; + rdfs:domain :ServerInformation ; + rdfs:range xsd:string ; + rdfs:comment "Optional list of supported encodings of the ONE Record server, e.g. gzip"@en ; + rdfs:label "Supported encoding"@en ; + rdfs:seeAlso "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding"@en . + + +### https://onerecord.iata.org/ns/api#hasSupportedLanguage +:hasSupportedLanguage rdf:type owl:DatatypeProperty ; + rdfs:domain :ServerInformation ; + rdfs:range xsd:string ; + rdfs:comment "Supported languages of the ONE Record API, minimum is en-US (American English)"@en ; + rdfs:label "Supported language"@en . + + +### https://onerecord.iata.org/ns/api#hasSupportedOntology +:hasSupportedOntology rdf:type owl:DatatypeProperty ; + rdfs:domain :ServerInformation ; + rdfs:range xsd:anyURI ; + rdfs:comment "Supported ontologies on the server, MUST be non-versioned IRIs"@en ; + rdfs:label "Supported ontology"@en . + + +### https://onerecord.iata.org/ns/api#hasSupportedOntologyVersion +:hasSupportedOntologyVersion rdf:type owl:DatatypeProperty ; + rdfs:domain :ServerInformation ; + rdfs:range xsd:anyURI ; + rdfs:comment "Supported ontology versions on the server, MUST be versioned IRIs"@en ; + rdfs:label "Supported ontology version"@en . + + +### https://onerecord.iata.org/ns/api#hasTitle +:hasTitle rdf:type owl:DatatypeProperty ; + rdfs:domain :Error ; + rdfs:range xsd:string ; + rdfs:comment "Short summary of the error"@en ; + rdfs:label "Title"@en . + + +### https://onerecord.iata.org/ns/api#hasTopic +:hasTopic rdf:type owl:DatatypeProperty ; + rdfs:domain [ rdf:type owl:Class ; + owl:unionOf ( :Notification + :Subscription + ) + ] ; + rdfs:range xsd:anyURI ; + rdfs:comment "The Logistics Object type or specific Logistics Object to which the subscription belongs to e.g. https://onerecord.iata.org/Piece or https://1r.example.com/7f01363f-0c6a-4414-be48-d3692e219b91"@en ; + rdfs:label "Topic"@en . + + +### https://onerecord.iata.org/ns/api#hasTotalItems +:hasTotalItems rdf:type owl:DatatypeProperty ; + rdfs:domain :Collection ; + rdfs:range xsd:nonNegativeInteger ; + rdfs:comment "The number of total items contained in a collection"@en ; + rdfs:label "Total items"@en . + + +### https://onerecord.iata.org/ns/api#hasValue +:hasValue rdf:type owl:DatatypeProperty ; + rdfs:domain :OperationObject ; + rdfs:range xsd:string ; + rdfs:comment "Updated value for the field"@en ; + rdfs:label "Value"@en . + + +### https://onerecord.iata.org/ns/api#isRequestedAt +:isRequestedAt rdf:type owl:DatatypeProperty ; + rdfs:domain :ActionRequest ; + rdfs:range xsd:dateTime ; + rdfs:comment "Datetime when the request was created"@en ; + rdfs:label "Requested at"@en . + + +### https://onerecord.iata.org/ns/api#isRevokedAt +:isRevokedAt rdf:type owl:DatatypeProperty ; + rdfs:domain :ActionRequest ; + rdfs:range xsd:dateTime ; + rdfs:comment "The datetime when the action request was revoked."@en ; + rdfs:label "Revoked at"@en . + + +### https://onerecord.iata.org/ns/api#notifyRequestStatusChange +:notifyRequestStatusChange rdf:type owl:DatatypeProperty ; + rdfs:domain [ rdf:type owl:Class ; + owl:unionOf ( :AccessDelegation + :Change + :Subscription + ) + ] ; + rdfs:range xsd:boolean ; + rdfs:comment "Flag specifying if the requestor wants to receive Notification from the publisher when the status of an action request changed, default=FALSE"@en ; + rdfs:label "notify RequestStatus Change"@en . + + +### https://onerecord.iata.org/ns/api#p +:p rdf:type owl:DatatypeProperty ; + rdfs:domain :Operation ; + rdfs:range xsd:anyURI ; + rdfs:comment "Operations objects must have exactly one p, predicate, member. The value of this member must be an URI, e.g. https://onerecord.iata.org/ns/cargo#hasGoodsDescription"@en ; + rdfs:label "p"@en . + + +### https://onerecord.iata.org/ns/api#s +:s rdf:type owl:DatatypeProperty ; + rdfs:domain :Operation ; + rdfs:range xsd:string ; + rdfs:comment "Operation objects MUST have exactly one \"s\", subject, member. The value of this member MUST be one of IRI or blank node."@en ; + rdfs:label "s"@en . + + +### https://onerecord.iata.org/ns/api#sendLogisticsObjectBody +:sendLogisticsObjectBody rdf:type owl:DatatypeProperty ; + rdfs:domain :Subscription ; + rdfs:range xsd:boolean ; + rdfs:comment "Flag specifying if the publisher should send the whole logistics object or not in the notification object"@en ; + rdfs:label "Send LogisticsObject body"@en . + + +################################################################# +# Classes +################################################################# + +### https://onerecord.iata.org/ns/api#AccessDelegation +:AccessDelegation rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:allValuesFrom cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasPermission ; + owl:allValuesFrom :Permission + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRequestedFor ; + owl:allValuesFrom cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasPermission ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Permission + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRequestedFor ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDescription ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :notifyRequestStatusChange ; + owl:allValuesFrom xsd:boolean + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :notifyRequestStatusChange ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:boolean + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDescription ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:comment "Access to a Logistics Object delegated to an Organization"@en ; + rdfs:label "Access Delegation"@en . + + +### https://onerecord.iata.org/ns/api#AccessDelegationRequest +:AccessDelegationRequest rdf:type owl:Class ; + rdfs:subClassOf :ActionRequest , + [ rdf:type owl:Restriction ; + owl:onProperty :hasAccessDelegation ; + owl:allValuesFrom :AccessDelegation + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasAccessDelegation ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :AccessDelegation + ] ; + rdfs:comment "Delegation Request to 3rd parties"@en ; + rdfs:label "Access Delegation Request"@en . + + +### https://onerecord.iata.org/ns/api#AccessPermissions +:AccessPermissions rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsAgent ; + owl:allValuesFrom cargo:LogisticsAgent + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:allValuesFrom cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasPermission ; + owl:allValuesFrom :Permission + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasPermission ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Permission + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsAgent ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:LogisticsAgent + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:LogisticsObject + ] ; + rdfs:comment "Access permissions granted to a logistics agent for a logistics object"@en ; + rdfs:label "Access Permissions"@en . + + +### https://onerecord.iata.org/ns/api#ActionRequest +:ActionRequest rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasError ; + owl:allValuesFrom :Error + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasRequestStatus ; + owl:allValuesFrom :RequestStatus + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRequestedBy ; + owl:allValuesFrom cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRevokedBy ; + owl:allValuesFrom cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasRequestStatus ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :RequestStatus + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRequestedBy ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRevokedBy ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRequestedAt ; + owl:allValuesFrom xsd:dateTime + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRevokedAt ; + owl:allValuesFrom xsd:dateTime + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRequestedAt ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:dateTime + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isRevokedAt ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:dateTime + ] ; + rdfs:comment "Superclass for all kinds of requests (i.e someone requsted something (e.g. subscription, access, etc.) at a publisher/holder of a logistics object)"@en ; + rdfs:label "Action Request"@en . + + +### https://onerecord.iata.org/ns/api#AuditTrail +:AuditTrail rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasChangeRequest ; + owl:allValuesFrom :ChangeRequest + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLatestRevision ; + owl:allValuesFrom xsd:positiveInteger + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLatestRevision ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:positiveInteger + ] ; + rdfs:comment "Audit trail of a Logistics Object"@en ; + rdfs:label "Audit Trail"@en . + + +### https://onerecord.iata.org/ns/api#Change +:Change rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:allValuesFrom cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasOperation ; + owl:allValuesFrom :Operation + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasOperation ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Operation + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDescription ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasRevision ; + owl:allValuesFrom xsd:positiveInteger + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :notifyRequestStatusChange ; + owl:allValuesFrom xsd:boolean + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasRevision ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:positiveInteger + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :notifyRequestStatusChange ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:boolean + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDescription ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:label "Change"@en . + + +### https://onerecord.iata.org/ns/api#ChangeRequest +:ChangeRequest rdf:type owl:Class ; + rdfs:subClassOf :ActionRequest , + [ rdf:type owl:Restriction ; + owl:onProperty :hasChange ; + owl:allValuesFrom :Change + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasChange ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Change + ] ; + rdfs:comment "Change Request containing updates on a Logistics Object"@en ; + rdfs:label "Change Request"@en . + + +### https://onerecord.iata.org/ns/api#Collection +:Collection rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasItem ; + owl:someValuesFrom owl:Thing + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasTotalItems ; + owl:allValuesFrom xsd:nonNegativeInteger + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasTotalItems ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:nonNegativeInteger + ] ; + rdfs:comment "Used as response of endpoints returning a collection of more than one graph, i.e. more than one not linked subjects."@en ; + rdfs:label "Collection"@en . + + +### https://onerecord.iata.org/ns/api#Error +:Error rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasErrorDetail ; + owl:allValuesFrom :ErrorDetail + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasErrorDetail ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :ErrorDetail + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasTitle ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasTitle ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:comment "Error model"@en ; + rdfs:label "Error"@en . + + +### https://onerecord.iata.org/ns/api#ErrorDetail +:ErrorDetail rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasCode ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasMessage ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasProperty ; + owl:allValuesFrom xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasResource ; + owl:allValuesFrom xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasCode ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasMessage ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasProperty ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasResource ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] ; + rdfs:comment "Error details that belong to an error"@en ; + rdfs:label "Error Detail"@en . + + +### https://onerecord.iata.org/ns/api#Notification +:Notification rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasEventType ; + owl:allValuesFrom :NotificationEventType + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:allValuesFrom cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isTriggeredBy ; + owl:allValuesFrom :ActionRequest + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasEventType ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :NotificationEventType + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :isTriggeredBy ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :ActionRequest + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasChangedProperty ; + owl:allValuesFrom xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObjectType ; + owl:allValuesFrom xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObjectType ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] ; + rdfs:comment "Notification sent by the publisher to the subscriber"@en ; + rdfs:label "Notification"@en . + + +### https://onerecord.iata.org/ns/api#NotificationEventType +:NotificationEventType rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Class ; + owl:oneOf ( :ACCESS_DELEGATION_REQUEST_ACCEPTED + :ACCESS_DELEGATION_REQUEST_FAILED + :ACCESS_DELEGATION_REQUEST_PENDING + :ACCESS_DELEGATION_REQUEST_REJECTED + :ACCESS_DELEGATION_REQUEST_REVOKED + :CHANGE_REQUEST_ACCEPTED + :CHANGE_REQUEST_FAILED + :CHANGE_REQUEST_PENDING + :CHANGE_REQUEST_REJECTED + :CHANGE_REQUEST_REVOKED + :LOGISTICS_EVENT_RECEIVED + :LOGISTICS_OBJECT_CREATED + :LOGISTICS_OBJECT_UPDATED + :SUBSCRIPTION_REQUEST_ACCEPTED + :SUBSCRIPTION_REQUEST_FAILED + :SUBSCRIPTION_REQUEST_PENDING + :SUBSCRIPTION_REQUEST_REJECTED + :SUBSCRIPTION_REQUEST_REVOKED + ) + ] ; + rdfs:label "Notification Event Type"@en . + + +### https://onerecord.iata.org/ns/api#SubscriptionEventType +:SubscriptionEventType rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Class ; + owl:oneOf ( :LOGISTICS_EVENT_RECEIVED + :LOGISTICS_OBJECT_CREATED + :LOGISTICS_OBJECT_UPDATED + ) + ] ; + rdfs:label "Subscription Event Type"@en . + + +### https://onerecord.iata.org/ns/api#Operation +:Operation rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :o ; + owl:allValuesFrom :OperationObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :op ; + owl:allValuesFrom :PatchOperation + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :o ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :OperationObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :op ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :PatchOperation + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :p ; + owl:allValuesFrom xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :s ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :p ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :s ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:comment "Operation Request contained in the PATCH body"@en ; + rdfs:label "Operation"@en . + + +### https://onerecord.iata.org/ns/api#OperationObject +:OperationObject rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasDatatype ; + owl:allValuesFrom xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasValue ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDatatype ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasValue ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] ; + rdfs:comment "Object to modify in the PATCH request"@en ; + rdfs:label "Operation Object"@en . + + +### https://onerecord.iata.org/ns/api#PatchOperation +:PatchOperation rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Class ; + owl:oneOf ( :ADD + :DELETE + ) + ] ; + rdfs:label "Patch Operation" . + + +### https://onerecord.iata.org/ns/api#Permission +:Permission rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Class ; + owl:oneOf ( :GET_LOGISTICS_EVENT + :GET_LOGISTICS_OBJECT + :PATCH_LOGISTICS_OBJECT + :POST_LOGISTICS_EVENT + ) + ] ; + rdfs:label "Permission"@en . + + +### https://onerecord.iata.org/ns/api#RequestStatus +:RequestStatus rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Class ; + owl:oneOf ( :REQUEST_ACCEPTED + :REQUEST_FAILED + :REQUEST_PENDING + :REQUEST_REJECTED + :REQUEST_REVOKED + ) + ] ; + rdfs:label "RequestStatus"@en . + + +### https://onerecord.iata.org/ns/api#ServerInformation +:ServerInformation rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasDataHolder ; + owl:allValuesFrom cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDataHolder ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSupportedEncoding ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSupportedApiVersion ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSupportedContentType ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSupportedLanguage ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSupportedOntology ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSupportedOntologyVersion ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasServerEndpoint ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] ; + rdfs:comment "Information about the ONE Record server"@en ; + rdfs:label "Server Information"@en . + + +### https://onerecord.iata.org/ns/api#Subscription +:Subscription rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasSubscriber ; + owl:allValuesFrom cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasTopicType ; + owl:allValuesFrom :TopicType + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :includeSubscriptionEventType ; + owl:allValuesFrom :SubscriptionEventType + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :includeSubscriptionEventType ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :SubscriptionEventType + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSubscriber ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:Organization + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasTopicType ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :TopicType + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasContentType ; + owl:allValuesFrom xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :notifyRequestStatusChange ; + owl:allValuesFrom xsd:boolean + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasTopic ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:anyURI + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :notifyRequestStatusChange ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:boolean + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :expiresAt ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:dateTime + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasDescription ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:string + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :sendLogisticsObjectBody ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:boolean + ] ; + rdfs:comment "Subscription information sent to the publisher"@en ; + rdfs:label "Subscription"@en . + + +### https://onerecord.iata.org/ns/api#SubscriptionRequest +:SubscriptionRequest rdf:type owl:Class ; + rdfs:subClassOf :ActionRequest , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSubscription ; + owl:allValuesFrom :Subscription + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasSubscription ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Subscription + ] ; + rdfs:comment "SubscriptionRequest initiated by subscribers to publisher (data holder) for themselves or for a third party subscriber."@en ; + rdfs:label "Subscription Request"@en . + + +### https://onerecord.iata.org/ns/api#TopicType +:TopicType rdf:type owl:Class ; + owl:equivalentClass [ rdf:type owl:Class ; + owl:oneOf ( :LOGISTICS_OBJECT_IDENTIFIER + :LOGISTICS_OBJECT_TYPE + ) + ] . + + +### https://onerecord.iata.org/ns/cargo#LogisticsAgent +cargo:LogisticsAgent rdf:type owl:Class . + + +### https://onerecord.iata.org/ns/cargo#LogisticsObject +cargo:LogisticsObject rdf:type owl:Class . + + +### https://onerecord.iata.org/ns/cargo#Organization +cargo:Organization rdf:type owl:Class . + + +################################################################# +# Individuals +################################################################# + +### https://onerecord.iata.org/ns/api#ACCESS_DELEGATION_REQUEST_ACCEPTED +:ACCESS_DELEGATION_REQUEST_ACCEPTED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "ACCESS_DELEGATION_REQUEST_ACCEPTED"@en . + + +### https://onerecord.iata.org/ns/api#ACCESS_DELEGATION_REQUEST_FAILED +:ACCESS_DELEGATION_REQUEST_FAILED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "ACCESS_DELEGATION_REQUEST_FAILED"@en . + + +### https://onerecord.iata.org/ns/api#ACCESS_DELEGATION_REQUEST_PENDING +:ACCESS_DELEGATION_REQUEST_PENDING rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "ACCESS_DELEGATION_REQUEST_PENDING"@en . + + +### https://onerecord.iata.org/ns/api#ACCESS_DELEGATION_REQUEST_REJECTED +:ACCESS_DELEGATION_REQUEST_REJECTED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "ACCESS_DELEGATION_REQUEST_REJECTED"@en . + + +### https://onerecord.iata.org/ns/api#ACCESS_DELEGATION_REQUEST_REVOKED +:ACCESS_DELEGATION_REQUEST_REVOKED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "ACCESS_DELEGATION_REQUEST_REVOKED"@en . + + +### https://onerecord.iata.org/ns/api#ADD +:ADD rdf:type owl:NamedIndividual , + :PatchOperation ; + rdfs:comment "Defines a :PatchOperation to be an operation that adds new triples."@en ; + rdfs:label "ADD"@en . + + +### https://onerecord.iata.org/ns/api#CHANGE_REQUEST_ACCEPTED +:CHANGE_REQUEST_ACCEPTED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:comment ":EventType for accepted :ChangeRequests"@en ; + rdfs:label "CHANGE_REQUEST_ACCEPTED"@en . + + +### https://onerecord.iata.org/ns/api#CHANGE_REQUEST_FAILED +:CHANGE_REQUEST_FAILED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:comment ":EventType for failed :ChangeRequests." ; + rdfs:label "CHANGE_REQUEST_FAILED"@en . + + +### https://onerecord.iata.org/ns/api#CHANGE_REQUEST_PENDING +:CHANGE_REQUEST_PENDING rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:comment ":EventType for pending :ChangeRequests." ; + rdfs:label "CHANGE_REQUEST_PENDING" . + + +### https://onerecord.iata.org/ns/api#CHANGE_REQUEST_REJECTED +:CHANGE_REQUEST_REJECTED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "CHANGE_REQUEST_PENDING" . + + +### https://onerecord.iata.org/ns/api#CHANGE_REQUEST_REVOKED +:CHANGE_REQUEST_REVOKED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "CHANGE_REQUEST_REVOKED"@en . + + +### https://onerecord.iata.org/ns/api#DELETE +:DELETE rdf:type owl:NamedIndividual , + :PatchOperation ; + rdfs:label "DELETE"@en . + + +### https://onerecord.iata.org/ns/api#GET_LOGISTICS_EVENT +:GET_LOGISTICS_EVENT rdf:type owl:NamedIndividual , + :Permission ; + rdfs:comment ":Permission to get a :LogisticsEvent"@en ; + rdfs:label "GET_LOGISTICS_EVENT"@en . + + +### https://onerecord.iata.org/ns/api#GET_LOGISTICS_OBJECT +:GET_LOGISTICS_OBJECT rdf:type owl:NamedIndividual , + :Permission ; + rdfs:comment ":Permission to get a :LogisticsObject"@en ; + rdfs:label "GET_LOGISTICS_OBJECT"@en . + + +### https://onerecord.iata.org/ns/api#LOGISTICS_EVENT_RECEIVED +:LOGISTICS_EVENT_RECEIVED rdf:type owl:NamedIndividual , + :NotificationEventType , + :SubscriptionEventType ; + rdfs:label "LOGISTICS_EVENT_RECEIVED"@en . + + +### https://onerecord.iata.org/ns/api#LOGISTICS_OBJECT_CREATED +:LOGISTICS_OBJECT_CREATED rdf:type owl:NamedIndividual , + :NotificationEventType , + :SubscriptionEventType ; + rdfs:label "LOGISTICS_OBJECT_CREATED"@en . + + +### https://onerecord.iata.org/ns/api#LOGISTICS_OBJECT_IDENTIFIER +:LOGISTICS_OBJECT_IDENTIFIER rdf:type owl:NamedIndividual , + :TopicType ; + rdfs:label "LOGISTICS_OBJECT_IDENTIFIER"@en . + + +### https://onerecord.iata.org/ns/api#LOGISTICS_OBJECT_TYPE +:LOGISTICS_OBJECT_TYPE rdf:type owl:NamedIndividual , + :TopicType ; + rdfs:label "LOGISTICS_OBJECT_TYPE"@en . + + +### https://onerecord.iata.org/ns/api#LOGISTICS_OBJECT_UPDATED +:LOGISTICS_OBJECT_UPDATED rdf:type owl:NamedIndividual , + :NotificationEventType , + :SubscriptionEventType ; + rdfs:label "LOGISTICS_OBJECT_UPDATED"@en . + + +### https://onerecord.iata.org/ns/api#PATCH_LOGISTICS_OBJECT +:PATCH_LOGISTICS_OBJECT rdf:type owl:NamedIndividual , + :Permission ; + rdfs:label "PATCH_LOGISTICS_OBJECT"@en . + + +### https://onerecord.iata.org/ns/api#POST_LOGISTICS_EVENT +:POST_LOGISTICS_EVENT rdf:type owl:NamedIndividual , + :Permission ; + rdfs:comment ":Permission to add a logistics event."@en ; + rdfs:label "POST_LOGISTICS_EVENT" . + + +### https://onerecord.iata.org/ns/api#REQUEST_ACCEPTED +:REQUEST_ACCEPTED rdf:type owl:NamedIndividual , + :RequestStatus ; + rdfs:label "REQUEST_ACCEPTED"@en . + + +### https://onerecord.iata.org/ns/api#REQUEST_FAILED +:REQUEST_FAILED rdf:type owl:NamedIndividual , + :RequestStatus ; + rdfs:label "REQUEST_FAILED"@en . + + +### https://onerecord.iata.org/ns/api#REQUEST_PENDING +:REQUEST_PENDING rdf:type owl:NamedIndividual , + :RequestStatus ; + rdfs:label "REQUEST_PENDING"@en . + + +### https://onerecord.iata.org/ns/api#REQUEST_REJECTED +:REQUEST_REJECTED rdf:type owl:NamedIndividual , + :RequestStatus ; + rdfs:label "REQUEST_REJECTED"@en . + + +### https://onerecord.iata.org/ns/api#REQUEST_REVOKED +:REQUEST_REVOKED rdf:type owl:NamedIndividual , + :RequestStatus ; + rdfs:label "REQUEST_REVOKED"@en . + + +### https://onerecord.iata.org/ns/api#SUBSCRIPTION_REQUEST_ACCEPTED +:SUBSCRIPTION_REQUEST_ACCEPTED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "SUBSCRIPTION_REQUEST_ACCEPTED"@en . + + +### https://onerecord.iata.org/ns/api#SUBSCRIPTION_REQUEST_FAILED +:SUBSCRIPTION_REQUEST_FAILED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "SUBSCRIPTION_REQUEST_FAILED"@en . + + +### https://onerecord.iata.org/ns/api#SUBSCRIPTION_REQUEST_PENDING +:SUBSCRIPTION_REQUEST_PENDING rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "SUBSCRIPTION_REQUEST_PENDING"@en . + + +### https://onerecord.iata.org/ns/api#SUBSCRIPTION_REQUEST_REJECTED +:SUBSCRIPTION_REQUEST_REJECTED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "SUBSCRIPTION_REQUEST_REJECTED"@en . + + +### https://onerecord.iata.org/ns/api#SUBSCRIPTION_REQUEST_REVOKED +:SUBSCRIPTION_REQUEST_REVOKED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "SUBSCRIPTION_REQUEST_REVOKED"@en . + + +[ owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger +] . + +[ owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger + ] . + +[ owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger + ] . + +[ owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger + ] . + +### Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi diff --git a/assets/ONE-Record-API-OpenAPI.yaml b/assets/ONE-Record-API-OpenAPI.yaml new file mode 100644 index 00000000..b38aa823 --- /dev/null +++ b/assets/ONE-Record-API-OpenAPI.yaml @@ -0,0 +1,14361 @@ +openapi: 3.0.1 +info: + title: ONE Record API Documentation + description: "This OpenAPI specification describes the API endpoint structure of\ + \ an ONE Record API implementation.

Note:
The included schemas\ + \ can only be used to generate JSON-LD in the extended document form.
However,\ + \ to be fully ONE Record compliant, any ONE Record API (and any compliant ONE\ + \ Record client)
MUST support at least the expanded, compacted, and\ + \ flattened document forms.

More information about the ONE Record specification\ + \ are available on [IATA Github repository](https://github.com/IATA-Cargo/ONE-Record)\ + \ and on the [ONE Record Developer Portal](https://onerecord.iata.org)." + contact: + name: IATA + url: https://onerecord.iata.org/ + email: onerecord@iata.org + license: + name: MIT License + url: https://opensource.org/licenses/MIT + version: 2.0.0 +servers: +- url: https://1r.example.com +tags: + - name: Server Information + - name: Logistics Objects + - name: Logistics Events + - name: Subscriptions + - name: Notifications + - name: Access Delegations + - name: Action Requests + +paths: + /: + get: + summary: Get Server Information + description: Return the information about the server + tags: + - Server Information + operationId: getServerInformation + responses: + "200": + description: The request to retrieve the ServerInformation has been successful + headers: + Last-Modified: + description: The date and time of the most recent change to the server information + required: true + style: simple + schema: + type: string + format: HTTP-date + example: "Tue, 21 Feb 2023 07:28:00 GMT" + content: + application/ld+json: + schema: + $ref: '#/components/schemas/ServerInformation' + "301": + description: The server has permanently moved to a new location + headers: + Location: + description: New location of the server + required: true + style: simple + schema: + type: string + format: uri + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Resource Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/Error' + "405": + description: Method not Allowd + content: + '*/*': + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /logistics-objects: + post: + tags: + - Logistics Objects + summary: "INTERNAL: Create a LogisticsObject" + description: Create a LogisticsObject in the ONE Record server + operationId: createLogisticsObject + requestBody: + content: + application/ld+json: + schema: + $ref: '#/components/schemas/LogisticsObject' + required: true + responses: + "201": + description: Logistics Object has been created + headers: + Type: + description: Type of the created LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + Location: + description: Location of the created LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "400": + description: Invalid Logistics Object + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "409": + description: LogisticsObject with provided ID already exists + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + + /logistics-objects/{logisticsObjectId}: + get: + tags: + - Logistics Objects + summary: Request a logistics object + description: Get all information contained into a LogisticsObject in the ONE Record server + operationId: getLogisticsObject + parameters: + - name: logisticsObjectId + in: path + required: true + schema: + type: string + - name: at + in: query + required: false + schema: + type: string + format: date-time + - name: embedded + in: query + required: false + schema: + type: boolean + responses: + "200": + description: The request to retrieve the Logistics Object has been successful + headers: + Type: + description: Type of the requested LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + Revision: + description: The revision of the requested Logistics Object + required: true + style: simple + schema: + type: integer + format: int64 + Last-Modified: + description: The date and time of the most recent change to the Logistics Object + required: true + style: simple + schema: + type: string + format: HTTP-date + example: "Tue, 21 Feb 2023 07:28:00 GMT" + Latest-Revision: + description: Latest revision number of the requested Logistics Object + required: true + style: simple + schema: + type: integer + format: int64 + Location: + description: Location of the created LogisticsObject + required: false + style: simple + schema: + type: string + format: uri + content: + application/ld+json: + schema: + $ref: '#/components/schemas/LogisticsObject' + "301": + description: The URI of the Logistics Object has permanently changed. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "302": + description: The URI of the Logistics Object has temporarily moved. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Logistics Object not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + patch: + tags: + - Logistics Objects + summary: Request a change for a given logistics object + description: Allow a third party to propose a change on a logistics object + operationId: updateLogisticsObject + parameters: + - name: logisticsObjectId + in: path + required: true + schema: + type: string + requestBody: + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Change' + required: true + responses: + "201": + description: The change was successfully requested + headers: + Type: + description: The type of the newly created resource as a URI + required: true + style: simple + schema: + type: string + format: uri + Location: + description: The URI of the submitted ChangeRequest + required: true + style: simple + schema: + type: string + format: uri + "400": + description: The update request body is invalid + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized to update the Logistics Object + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Logistics Object not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "422": + description: Unprocessable Request + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /logistics-objects/{logisticsObjectId}/audit-trail: + get: + tags: + - Logistics Objects + summary: Retrieves the audit trail (history) of a given logistics object + description: Retrieve the list of change request applied to the logistics object + operationId: getAuditTrail + parameters: + - name: logisticsObjectId + in: path + required: true + schema: + type: string + - name: updatedFrom + in: query + required: false + schema: + type: string + format: date-time + - name: updatedTo + in: query + required: false + schema: + type: string + format: date-time + - name: status + in: query + required: false + schema: + type: string + enum: [PENDING, ACCEPTED, REJECTED] + responses: + "200": + description: The request to retrieve the AuditTrail has been successful + content: + application/ld+json: + schema: + $ref: '#/components/schemas/AuditTrail' + "301": + description: The URI of the Logistics Object has permanently changed. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "302": + description: The URI of the Logistics Object has temporarily moved. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Logistics Object not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /logistics-objects/{logisticsObjectId}/logistics-events: + get: + tags: + - Logistics Events + summary: Retrieves the LogisticsEvents of a given LogisticsObject + description: Retrieve the list of LogisticsEvents of a given LogisticsObject + operationId: getLogisticsEvents + parameters: + - name: logisticsObjectId + in: path + required: true + schema: + type: string + - name: eventType + in: query + required: false + schema: + type: array + items: + type: string + example: [FOF,DEP] + - name: created_after + in: query + required: false + schema: + type: string + format: date-time + - name: created_before + in: query + required: false + schema: + type: string + format: date-time + - name: occurred_after + in: query + required: false + schema: + type: string + format: date-time + - name: occurred_before + in: query + required: false + schema: + type: string + format: date-time + responses: + "200": + description: The request to retrieve the Logistics Events has been successful + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Collection' + "301": + description: The URI of the Logistics Object has permanently changed. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "302": + description: The URI of the Logistics Object has temporarily moved. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Logistics Object not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Logistics Events + summary: Append a LogisticsEvent to the event log of a given LogisticsObject + description: Add a LogisticsEvent to a given LogisticsObject + operationId: appendLogisticsEvent + parameters: + - name: logisticsObjectId + in: path + required: true + schema: + type: string + requestBody: + content: + application/ld+json: + schema: + $ref: '#/components/schemas/LogisticsEvent' + required: true + responses: + "201": + description: Logistics Event has been created + headers: + Type: + description: Type of the created LogisticsEvent + required: true + style: simple + schema: + type: string + format: uri + Location: + description: Location of the created LogisticsEvent + required: true + style: simple + schema: + type: string + format: uri + "400": + description: Invalid Logistics Object + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: LogisticsObject not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal server error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /logistics-objects/{logisticsObjectId}/logistics-events/{logisticsEventsId}: + get: + tags: + - Logistics Events + summary: Retrieves a LogisticsEvents + description: Get a specific LogisticsEvents from a give LogisticsObject + operationId: getLogisticsEvent + parameters: + - name: logisticsObjectId + in: path + required: true + schema: + type: string + - name: logisticsEventsId + in: path + required: true + schema: + type: string + responses: + "200": + description: The request to retrieve the Logistics Event has been successful + headers: + Last-Modified: + description: The date and time of the most recent change to the Logistics Object + required: true + style: simple + schema: + type: string + format: HTTP-date + example: "Tue, 21 Feb 2023 07:28:00 GMT" + content: + application/ld+json: + schema: + $ref: '#/components/schemas/LogisticsEvent' + "301": + description: The URI of the Logistics Object has permanently changed. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "302": + description: The URI of the Logistics Object has temporarily moved. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Logistics Object or Logistics Event not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /subscriptions: + get: + tags: + - Subscriptions + summary: Get subscription information + description: Get a specific subscription object + operationId: getSubscription + parameters: + - name: topicType + in: query + required: true + schema: + type: string + - name: topic + in: query + required: true + schema: + type: string + responses: + "200": + description: The request to retrieve the Subscription Information has been successful + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Subscription' + "400": + description: The request is invalid + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + post: + tags: + - Subscriptions + summary: Request subscription + description: Send a subscription request for a Logistics Object + operationId: createSubscriptionRequest + requestBody: + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Subscription' + required: true + responses: + "201": + description: The Subscription Request has been created successfully + headers: + Type: + description: Type of the SubscriptionRequest + required: true + style: simple + schema: + type: string + format: uri + Location: + description: Location of the created SubscriptionRequest + required: true + style: simple + schema: + type: string + format: uri + "400": + description: The request is invalid + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /notifications: + post: + tags: + - Notifications + summary: Used as callback URL for receiving Notifications + description: Post a notification object to a specific host + operationId: receiveNotification + requestBody: + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Notification' + required: true + responses: + "204": + description: No Content + "400": + description: The request is invalid + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/Error' + "405": + description: Method not allowed + content: + '*/*': + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /access-delegations: + post: + tags: + - Access Delegations + summary: Request delegated access on LogisticsObjects + description: Request an access delegation on a given LogisticsObjects + operationId: createAccessDelegationRequest + requestBody: + content: + application/ld+json: + schema: + $ref: '#/components/schemas/AccessDelegation' + required: true + responses: + "201": + description: Access Delegation Request has been created + headers: + Type: + description: Type of the created Access Delegation Request + required: true + style: simple + schema: + type: string + format: uri + Location: + description: Location of the created Access Delegation Request + required: true + style: simple + schema: + type: string + format: uri + "400": + description: Invalid Access Delegation Object + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + /action-requests/{actionRequestId}: + get: + tags: + - Action Requests + summary: Retrieve an ActionRequest + description: Get any type of ActionRequest by the id + operationId: getActionRequest + parameters: + - name: actionRequestId + in: path + required: true + schema: + type: string + responses: + "200": + description: OK + headers: + Type: + description: Type of the retrieved Action Request + required: true + style: simple + schema: + type: string + format: uri + Last-Modified: + description: The date and time of the most recent change to the Action Request + required: true + style: simple + schema: + type: string + format: HTTP-date + example: "Tue, 21 Feb 2023 07:28:00 GMT" + content: + application/ld+json: + schema: + oneOf: + - $ref: '#/components/schemas/ActionRequest' + - $ref: '#/components/schemas/AccessDelegationRequest' + - $ref: '#/components/schemas/ChangeRequest' + - $ref: '#/components/schemas/SubscriptionRequest' + "301": + description: The URI of the Action Request has permanently changed. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "302": + description: The URI of the Action Request has temporarily moved. + headers: + Location: + description: New location of the LogisticsObject + required: true + style: simple + schema: + type: string + format: uri + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Logistics Object not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + patch: + tags: + - Action Requests + summary: "INTERNAL: Update an ActionRequest" + description: Update the status of an ActionRequest + operationId: updateActionRequest + parameters: + - name: actionRequestId + in: path + required: true + schema: + type: string + - name: status + in: query + required: true + schema: + type: string + enum: [https://onerecord.iata.org/ns/api#REQUEST_ACCEPTED, https://onerecord.iata.org/ns/api#REQUEST_REJECTED, https://onerecord.iata.org/ns/api#REQUEST_REVOKED] + responses: + "204": + description: The Action Request was successfully updated + headers: + Type: + description: Type of retrieved Action Request + required: true + style: simple + schema: + type: string + format: uri + "400": + description: The update request body is invalid + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Action Request not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "415": + description: Unsupported Content Type + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "422": + description: Unprocessable request + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - Action Requests + summary: Revoke an Action Request + description: Revoke an Action Request + operationId: revokeActionRequest + parameters: + - name: actionRequestId + in: path + required: true + schema: + type: string + responses: + "204": + description: The Action Request was successfully deleted + "401": + description: Not authenticated + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "403": + description: Not authorized + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "404": + description: Action Request not found + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Internal Server Error + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error' +components: + schemas: + AccessDelegation: + description: Access to a Logistics Object delegated to an Organization + properties: + https://onerecord.iata.org/ns/api#hasDescription: + description: Reason for the request (optional) + items: + maxItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasPermission: + description: Description not available + items: + $ref: '#/components/schemas/Permission' + minItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#AccessDelegation + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasLogisticsObject: + description: A reference to a cargo:LogisticsObject. + items: + $ref: '#/components/schemas/LogisticsObject' + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRequestedFor: + description: Description not available + items: + $ref: '#/components/schemas/Organization' + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#notifyRequestStatusChange: + description: Flag specifying if the requestor wants to receive Notification + from the publisher when the status of an action request changed, default=FALSE + items: + maxItems: 1 + minItems: 1 + type: boolean + type: array + '@id': + description: Resource Identifier + type: string + type: object + OperationObject: + description: Object to modify in the PATCH request + properties: + https://onerecord.iata.org/ns/api#hasValue: + description: Updated value for the field + items: + maxItems: 1 + minItems: 1 + type: string + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#OperationObject + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasDatatype: + description: Data type of the field to update, must be a valid URI, e.g. + http://www.w3.org/2001/XMLSchema#int + items: + maxItems: 1 + minItems: 1 + type: string + type: array + '@id': + description: Resource Identifier + type: string + type: object + Error: + description: Error model + properties: + https://onerecord.iata.org/ns/api#hasTitle: + description: Short summary of the error + items: + maxItems: 1 + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasErrorDetail: + description: Error details + items: + $ref: '#/components/schemas/ErrorDetail' + minItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#Error + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + AccessPermissions: + description: Access permissions granted to a logistics agent for a logistics + object + properties: + https://onerecord.iata.org/ns/api#hasPermission: + description: Description not available + items: + $ref: '#/components/schemas/Permission' + minItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#AccessPermissions + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasLogisticsObject: + description: A reference to a cargo:LogisticsObject. + items: + $ref: '#/components/schemas/LogisticsObject' + maxItems: 1 + minItems: 1 + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/api#hasLogisticsAgent: + description: Description not available + items: + $ref: '#/components/schemas/LogisticsAgent' + maxItems: 1 + minItems: 1 + type: array + type: object + Change: + description: Description not available + properties: + https://onerecord.iata.org/ns/api#hasRevision: + description: Revision number of the Logistics Object, starting with 0 for + changing the initial revision of a Logistics Object + items: + format: int32 + maxItems: 1 + minItems: 1 + type: integer + type: array + https://onerecord.iata.org/ns/api#hasDescription: + description: Reason for the request (optional) + items: + maxItems: 1 + type: string + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#Change + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasLogisticsObject: + description: A reference to a cargo:LogisticsObject. + items: + $ref: '#/components/schemas/LogisticsObject' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#notifyRequestStatusChange: + description: Flag specifying if the requestor wants to receive Notification + from the publisher when the status of an action request changed, default=FALSE + items: + maxItems: 1 + minItems: 1 + type: boolean + type: array + https://onerecord.iata.org/ns/api#hasOperation: + description: Operation(s) to apply as PATCH on a Logistics Object + items: + $ref: '#/components/schemas/Operation' + minItems: 1 + type: array + '@id': + description: Resource Identifier + type: string + type: object + Operation: + description: Operation Request contained in the PATCH body + properties: + https://onerecord.iata.org/ns/api#s: + description: Operation objects MUST have exactly one "s", subject, member. + The value of this member MUST be one of IRI or blank node. + items: + maxItems: 1 + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#p: + description: Operations objects must have exactly one p, predicate, member. + The value of this member must be an URI, e.g. https://onerecord.iata.org/ns/cargo#hasGoodsDescription + items: + maxItems: 1 + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#o: + description: Description not available + items: + $ref: '#/components/schemas/OperationObject' + maxItems: 1 + minItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#Operation + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#op: + description: Operation + items: + $ref: '#/components/schemas/PatchOperation' + maxItems: 1 + minItems: 1 + type: array + '@id': + description: Resource Identifier + type: string + type: object + ChangeRequest: + description: Change Request containing updates on a Logistics Object + properties: + https://onerecord.iata.org/ns/api#hasError: + description: Error object(s) if the processing was not successful + items: + $ref: '#/components/schemas/Error' + type: array + https://onerecord.iata.org/ns/api#isRequestedAt: + description: Datetime when the request was created + items: + format: date-time + maxItems: 1 + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#isRevokedAt: + description: The datetime when the action request was revoked. + items: + format: date-time + maxItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasRequestStatus: + description: has Request Status + items: + $ref: '#/components/schemas/RequestStatus' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasRevision: + description: Revision number of the Logistics Object, starting with 0 for + changing the initial revision of a Logistics Object + items: + format: int32 + type: integer + type: array + https://onerecord.iata.org/ns/api#isRequestedBy: + description: Organization Identifier that represents the Organization that + has requested the action + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRevokedBy: + description: Description not available + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasChange: + description: Contains submitted Change object + items: + $ref: '#/components/schemas/Change' + maxItems: 1 + minItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#ChangeRequest + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + Notification: + description: Notification sent by the publisher to the subscriber + properties: + https://onerecord.iata.org/ns/api#isTriggeredBy: + description: Optional URI to the ChangeRequest that triggered a Notification + if the eventType is one of CHANGE_REQUEST_ACCEPTED, CHANGE_REQUEST_REJECT, + or CHANGE_REQUEST_FAILED + items: + $ref: '#/components/schemas/ActionRequest' + maxItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasEventType: + description: Description not available + items: + $ref: '#/components/schemas/NotificationEventType' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasLogisticsObjectType: + description: The type of cargo:LogisticsObject in the notification e.g. + https://onerecord.iata.org/ns/cargo#Piece + items: + maxItems: 1 + type: string + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#Notification + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasLogisticsObject: + description: A reference to a cargo:LogisticsObject. + items: + $ref: '#/components/schemas/LogisticsObject' + maxItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasChangedProperty: + description: List of all changed properties as IRIs after a ChangeRequest + was successfully applied, e.g. [https://onerecord.iata.org/ns/cargo#hasVolumetricWeight, + https://onerecord.iata.org/ns/cargo/#hasGoodsDescription] + items: + type: string + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/api#hasTopic: + description: The Logistics Object type or specific Logistics Object to which + the subscription belongs to e.g. https://onerecord.iata.org/Piece or https://1r.example.com/7f01363f-0c6a-4414-be48-d3692e219b91 + items: + type: string + type: array + type: object + ErrorDetail: + description: Error details that belong to an error + properties: + https://onerecord.iata.org/ns/api#hasProperty: + description: Property of the object for which the error applies in IRI format, + i.e. https://onerecord.iata.org/ns/cargo#hasVolumetricWeight + items: + maxItems: 1 + type: string + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#ErrorDetail + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasCode: + description: Error code is a numeric or alphanumeric code that can be used + to determine the source of the error and why it occured. + items: + maxItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasResource: + description: URI of the object where the error occurred + items: + maxItems: 1 + type: string + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/api#hasMessage: + description: Message that describes the error + items: + maxItems: 1 + type: string + type: array + type: object + TopicType: + description: Description not available + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#TopicType + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + SubscriptionRequest: + description: SubscriptionRequest initiated by subscribers to publisher (data + holder) for themselves or for a third party subscriber. + properties: + https://onerecord.iata.org/ns/api#hasError: + description: Error object(s) if the processing was not successful + items: + $ref: '#/components/schemas/Error' + type: array + https://onerecord.iata.org/ns/api#isRequestedAt: + description: Datetime when the request was created + items: + format: date-time + maxItems: 1 + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#isRevokedAt: + description: The datetime when the action request was revoked. + items: + format: date-time + maxItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasRequestStatus: + description: has Request Status + items: + $ref: '#/components/schemas/RequestStatus' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRequestedBy: + description: Organization Identifier that represents the Organization that + has requested the action + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRevokedBy: + description: Description not available + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#SubscriptionRequest + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasSubscription: + description: Link to the requestors Subscription object with all subscription + information + items: + $ref: '#/components/schemas/Subscription' + maxItems: 1 + minItems: 1 + type: array + '@id': + description: Resource Identifier + type: string + type: object + ServerInformation: + description: Information about the ONE Record server + properties: + https://onerecord.iata.org/ns/api#hasSupportedEncoding: + description: Optional list of supported encodings of the ONE Record server, + e.g. gzip + items: + type: string + type: array + https://onerecord.iata.org/ns/api#hasSupportedLanguage: + description: Supported languages of the ONE Record API, minimum is en-US + (American English) + items: + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasSupportedOntologyVersion: + description: Supported ontology versions on the server, MUST be versioned + IRIs + items: + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasServerEndpoint: + description: ONE Record API endpoint + items: + maxItems: 1 + minItems: 1 + type: string + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#ServerInformation + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasSupportedOntology: + description: Supported ontologies on the server, MUST be non-versioned IRIs + items: + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasDataHolder: + description: The data holder of the servers data. + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + minItems: 1 + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/api#hasSupportedApiVersion: + description: Supported ONE Record API versions by the server, MUST include + at least one supported version. + items: + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasSupportedContentType: + description: Supported content types of the server, MUST contain at least + application/ld+json + items: + minItems: 1 + type: string + type: array + type: object + ActionRequest: + description: Superclass for all kinds of requests (i.e someone requsted something + (e.g. subscription, access, etc.) at a publisher/holder of a logistics object) + properties: + https://onerecord.iata.org/ns/api#hasError: + description: Error object(s) if the processing was not successful + items: + $ref: '#/components/schemas/Error' + type: array + https://onerecord.iata.org/ns/api#isRequestedAt: + description: Datetime when the request was created + items: + format: date-time + maxItems: 1 + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#isRevokedAt: + description: The datetime when the action request was revoked. + items: + format: date-time + maxItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasRequestStatus: + description: has Request Status + items: + $ref: '#/components/schemas/RequestStatus' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRequestedBy: + description: Organization Identifier that represents the Organization that + has requested the action + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRevokedBy: + description: Description not available + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#ActionRequest + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + NotificationEventType: + description: Description not available + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#NotificationEventType + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + SubscriptionEventType: + description: Description not available + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#SubscriptionEventType + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + AccessDelegationRequest: + description: Delegation Request to 3rd parties + properties: + https://onerecord.iata.org/ns/api#hasError: + description: Error object(s) if the processing was not successful + items: + $ref: '#/components/schemas/Error' + type: array + https://onerecord.iata.org/ns/api#isRequestedAt: + description: Datetime when the request was created + items: + format: date-time + maxItems: 1 + minItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#isRevokedAt: + description: The datetime when the action request was revoked. + items: + format: date-time + maxItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasAccessDelegation: + description: Description not available + items: + $ref: '#/components/schemas/AccessDelegation' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasRequestStatus: + description: has Request Status + items: + $ref: '#/components/schemas/RequestStatus' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRequestedBy: + description: Organization Identifier that represents the Organization that + has requested the action + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#isRevokedBy: + description: Description not available + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#AccessDelegationRequest + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + PatchOperation: + description: Description not available + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#PatchOperation + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + Permission: + description: Description not available + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#Permission + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + Collection: + description: Used as response of endpoints returning a collection of more than + one graph, i.e. more than one not linked subjects. + properties: + https://onerecord.iata.org/ns/api#hasTotalItems: + description: The number of total items contained in a collection + items: + format: int32 + maxItems: 1 + minItems: 1 + type: integer + type: array + https://onerecord.iata.org/ns/api#hasItems: + description: Item that is contained in a collection + items: + type: object + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#Collection + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + AuditTrail: + description: Audit trail of a Logistics Object + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#AuditTrail + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#hasChangeRequest: + description: Recorded change requests in the Audit Trail of a Logistics + Object + items: + $ref: '#/components/schemas/ChangeRequest' + type: array + https://onerecord.iata.org/ns/api#hasLatestRevision: + description: Latest revision of the Logistics Object. Starting with revision + 0 + items: + format: int32 + maxItems: 1 + minItems: 1 + type: integer + type: array + '@id': + description: Resource Identifier + type: string + type: object + Subscription: + description: Subscription information sent to the publisher + properties: + https://onerecord.iata.org/ns/api#hasTopicType: + description: Description not available + items: + $ref: '#/components/schemas/TopicType' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasSubscriber: + description: Description not available + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#includeSubscriptionEventType: + description: An array used to indicate the specific types of notifications + that the subscriber desires to receive from the publisher. The subscriber + is required to specify their preferences on a per-type basis + items: + $ref: '#/components/schemas/SubscriptionEventType' + minItems: 1 + type: array + https://onerecord.iata.org/ns/api#hasContentType: + description: Content types that the subscriber wants to receive in the notifications, + e.g. application/ld+json + items: + type: string + type: array + https://onerecord.iata.org/ns/api#expiresAt: + description: 'Expiry date as date time of the subscription information that + supports caching but does not require the ONE Record client to store the + datetime when the Subscription object was received; if not given: the + information does not expire' + items: + format: date-time + maxItems: 1 + type: string + type: array + https://onerecord.iata.org/ns/api#hasDescription: + description: Reason for the request (optional) + items: + maxItems: 1 + type: string + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#Subscription + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/api#notifyRequestStatusChange: + description: Flag specifying if the requestor wants to receive Notification + from the publisher when the status of an action request changed, default=FALSE + items: + maxItems: 1 + minItems: 1 + type: boolean + type: array + https://onerecord.iata.org/ns/api#sendLogisticsObjectBody: + description: Flag specifying if the publisher should send the whole logistics + object or not in the notification object + items: + maxItems: 1 + type: boolean + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/api#hasTopic: + description: The Logistics Object type or specific Logistics Object to which + the subscription belongs to e.g. https://onerecord.iata.org/Piece or https://1r.example.com/7f01363f-0c6a-4414-be48-d3692e219b91 + items: + maxItems: 1 + minItems: 1 + type: string + type: array + type: object + RequestStatus: + description: Description not available + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/api#RequestStatus + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + OtherIdentifier: + description: Other identifiers + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#OtherIdentifier + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#otherIdentifierType: + description: Identifier type or description + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#textualValue: + description: Textual value filled on use context (eg. characteristic colour, + contactDetail mail adress, etc.) + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + Address: + description: Address details + properties: + https://onerecord.iata.org/ns/cargo#country: + description: Country details. Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#streetAddressLines: + description: Street address including street name, street number, building + number, apartment etc + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#addressCode: + description: Address identifier using special coding systems e.g. US CBP + FIRMS code + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#cityCode: + description: UN/LOCODE city code (5 letter) or IATA city code (3 letter) + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Address + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#postalCode: + description: Postal / ZIP code + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#postOfficeBox: + description: Post Office box number / code + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#regionCode: + description: Region/ State / Department. Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + type: object + BookingPreferences: + description: BookingPreferences details + properties: + https://onerecord.iata.org/ns/cargo#includedViaPoints: + description: Locations or stations to included in the routing + items: + $ref: '#/components/schemas/Location' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#excludedViaPoints: + description: Locations of excluded Via Points + items: + $ref: '#/components/schemas/Location' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingPreferences + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#preferredTransportId: + description: When part of the Request it refers to the preferred Transport + ID from the customer. When part of the BookingOption (offer or actual + booking) it refers to the expected Transport ID or flight + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#priceReferenceId: + description: Reference to a price reference if existing (e.g. Allotment + number, contract reference, etc.) + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#aircraftPossibilityCode: + description: Type of aircraft to be used if any specific requirements (e.g. + Pure freighter, etc.) + items: + $ref: '#/components/schemas/AircraftPossibilityCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#maxSegments: + description: Maximum number of segments for the transportation of the goods. + 1 means direct flight + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + type: object + LogisticsAction: + description: 'Superclass: LogisticsAction is a specific task with a specific + result performed on one or more physical LOs by one party in the context of + an Activity' + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LogisticsAction + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionTimeType: + description: Enum stating the type of the Action + items: + $ref: '#/components/schemas/ActionTimeType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionStartTime: + description: DateTime holding the start time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#performedAt: + description: Reference to the Location the Action was performed at + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedActivity: + description: Reference to the Activity the Action was performed for + items: + $ref: '#/components/schemas/LogisticsActivity' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionEndTime: + description: DateTime holding the end time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + Check: + description: Action to describe a check + properties: + https://onerecord.iata.org/ns/cargo#checkedObject: + description: Reference to the checked Object + items: + $ref: '#/components/schemas/LogisticsObject' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checker: + description: Reference to the Actor performing the Check + items: + $ref: '#/components/schemas/Actor' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checkTotalResult: + description: Reference to the result of the Check + items: + $ref: '#/components/schemas/CheckTotalResult' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Check + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionTimeType: + description: Enum stating the type of the Action + items: + $ref: '#/components/schemas/ActionTimeType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionStartTime: + description: DateTime holding the start time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#performedAt: + description: Reference to the Location the Action was performed at + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedActivity: + description: Reference to the Activity the Action was performed for + items: + $ref: '#/components/schemas/LogisticsActivity' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#usedTemplate: + description: Reference to the Template used in the Check + items: + $ref: '#/components/schemas/CheckTemplate' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionEndTime: + description: DateTime holding the end time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + Adjustments: + description: Adjustments in the context of CASS records + properties: + https://onerecord.iata.org/ns/cargo#correctionSerialNumber: + description: Serial Number of the correction + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Adjustments + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#correctionNumber: + description: Number of the adjustment + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#reasonsForAdjustments: + description: A free text for user to include a reason for correction + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + Product: + description: Product details + properties: + https://onerecord.iata.org/ns/cargo#manufacturer: + description: Manufacturing company details and contacts + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherCharacteristics: + description: Charateristics of the product + items: + $ref: '#/components/schemas/Characteristic' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uniqueIdentifier: + description: Manufacturer's unique product identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Product + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#describedObjects: + description: Reference to the Items or Pieces in which the product can be + found. + items: + $ref: '#/components/schemas/PhysicalLogisticsObject' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#description: + description: Natural language description if required + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsCommodityDescription: + description: Commodity description + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsCommodityName: + description: If no Code provided, name of commodity + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsCode: + description: Harmonized Commodity code, refer to hsType used. 6 minimum + digits are expected. + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsType: + description: Reference identifying the type of standard code to be used + for the Commodity Classification (Brussels Tariff Nomenclature, EU Harmonized + System Code, UN Standard International Trade Classification). Mandatory + if the commodity code is more than 6 digits + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#commodityItemNumber: + description: Indicates the specific commodity on which the rate class code + is applied + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + SpecialHandlingCode: + description: 'Source of DGR codes: Dangerous Goods Regulations, 46th Edition' + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#SpecialHandlingCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + PieceGroup: + description: PieceGroup details + properties: + https://onerecord.iata.org/ns/cargo#pieceGroupGrossWeight: + description: Total gross weight of the piece group + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dryIceWeight: + description: Weight of dry ice + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceGroupId: + description: Identifier of the piece group, increasing integers + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#PieceGroup + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#pieceGroupCount: + description: Number of pieces in the piece group + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + type: object + CurrencyCode: + description: Open code list of currency codes based on ISO 4217 + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#CurrencyCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + RatingsType: + description: Restricted code list to describe whether a rating is Face, Published + or Actual + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#RatingsType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Item: + description: Item details + properties: + https://onerecord.iata.org/ns/cargo#weight: + description: Weight of the item + items: + $ref: '#/components/schemas/Value' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Item + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#dimensions: + description: Dimensions details + items: + $ref: '#/components/schemas/Dimensions' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#targetCountry: + description: Item target country. Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#ofProduct: + description: Reference to the Product describing the Item + items: + $ref: '#/components/schemas/Product' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#inPiece: + description: Reference to the Piece this Item or Piece is contained in + items: + $ref: '#/components/schemas/Piece' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#productionCountry: + description: Production country details. Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#itemQuantity: + description: Quantity of the item when applicable, with associated units + of measure + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#quantityForUnitPrice: + description: Product quantity for unit price - e.g. 12 (eggs for one USD + 1) + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#unitPrice: + description: Product price per unit in the base + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#lotNumber: + description: Production lot number / reference + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#batchNumber: + description: Production batch number / reference + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#expiryDate: + description: Product expiry date - e.g. for perishables goods or goods with + programmed obsolescence + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#productionDate: + description: Production date + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + type: object + ExternalReference: + description: Reference documents details + properties: + https://onerecord.iata.org/ns/cargo#originator: + description: Document originator details and contacts + items: + $ref: '#/components/schemas/Company' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#validUntil: + description: Validity end date (date of expiry) based on usage context + items: + format: date-time + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ExternalReference + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#createdAtLocation: + description: Location of the document, e.g. location where the document + was emitted + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#documentName: + description: 'If no DocumentType provided, name of the referenced document ' + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#documentIdentifier: + description: Unique document identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#documentVersion: + description: Document version number + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#referenceForObjects: + description: References to the LogisticsObjects referring to this external + reference + items: + $ref: '#/components/schemas/LogisticsObject' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#documentLink: + description: Link to the document, e.g. URL of the file where it is hosted + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#checksum: + description: Checksum of the document to validate its integrity + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#validFrom: + description: Validity start date based on usage context + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#documentType: + description: Type of the referenced document . Can refer UNEDIFACT 11 e.g. + 74 - Air Waybill, but not limited to + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ExecutionStatus: + description: Restricted code list for the execution status of activities + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ExecutionStatus + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Actor: + description: 'Superclass: Actors are Persons or entities acting like a single + person' + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Actor + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#associatedOrganization: + description: Reference to the Organization the Actor is associated with + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + PublicAuthority: + description: PublicAuthorities are Organizations of the state on public interests, + such as customs + properties: + https://onerecord.iata.org/ns/cargo#parentOrganization: + description: Reference to the parent Organization + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#basedAtLocation: + description: Reference to the Location where the Organization is based at + or headquartered + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#PublicAuthority + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#name: + description: Human-understandable name of object depending on the context + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shortName: + description: Short name of the Organization if any + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#subOrganization: + description: References to all sub-Organizations + items: + $ref: '#/components/schemas/Organization' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + EpermitConsignment: + description: Details of the pieces (Live animals) of the permit and specific + information such as quantity measured and used to date quota + properties: + https://onerecord.iata.org/ns/cargo#usedToDateQuotaQuantity: + description: total number of specimens exported in the current calendar + year and the current annuela quota for the species concerned (box 11a) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#EpermitConsignment + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#consignmentItems: + description: Reference to te pieces (Live Animals) of the permit + items: + $ref: '#/components/schemas/PieceLiveAnimals' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#epermit: + description: Reference to the Epermit of the consignment + items: + $ref: '#/components/schemas/LiveAnimalsEpermit' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#examiningQuantity: + description: Quatity measured by the examining authority (box 14) + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + DgDeclaration: + description: Dangerous goods declaration + properties: + https://onerecord.iata.org/ns/cargo#issuedForPiece: + description: Reference to the Piece the document was issued for + items: + $ref: '#/components/schemas/PieceDg' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#handlingInformation: + description: 'Free text. This may include items such as Control temperature + for substances stabilized by temperature control, name and telephone number + of a responsible person for infectious substances. ' + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#DgDeclaration + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#shipperDeclarationText: + description: Contains the shipper's declaration to comply with the regulations + text note. Free text . This field is mandatory for air (Air) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#aircraftLimitationInformation: + description: 'Contains the Special Handling Code related to the prescribed + limitation. Hardcoded to PASSENGER AND CARGO AIRCRAFT or CARGO AIRCRAFT + ONLY. This field is mandatory for air (Air) ' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#exclusiveUseIndicator: + description: Indicates an exclusive use shipment + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#complianceDeclarationText: + description: 'Contains the warning message complying with the regulations + text note. This field is mandatory for air (Air) ' + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + PrepaidCollectIndicator: + description: Restricted code list corresponding to cXML code list 1.5 Prepaid/Collect + Indicators + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#PrepaidCollectIndicator + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + DemurrageCode: + description: Restricted code list based on RP 1654 + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#DemurrageCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + RegulatedEntityCategoryCode: + description: Restricted code list of regulated entity categories, partially + corresponding to cXML code list 1.100 Customs, Security and Regulatory Control + Information Identifiers + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#RegulatedEntityCategoryCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + DgProductRadioactive: + description: 'Details of the radioactive products ' + properties: + https://onerecord.iata.org/ns/cargo#forProductDg: + description: Reference to the ProductDg this DgProductRadiosctive details + items: + $ref: '#/components/schemas/ProductDg' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#fissileExceptionReference: + description: Fissile exception reference, mandatory if Fissile Exception + Indicator is true. + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#DgProductRadioactive + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#isotopes: + description: DgRadioactiveIsotope. + items: + $ref: '#/components/schemas/DgRadioactiveIsotope' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportIndexNumeric: + description: Radioactive Transport-Index value of the package or all packed + in one. Conditionally mandator and applies to categories II-Yellow and + III-Yellow only; field only contains the value, if printed, TI must be + added as a prefix to the value to be printed in the Packing Instructions + column + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dgRaTypeCode: + description: 'The category of the package or all packed in one. Complete + text to be transmitted: I-White, II-Yellow, III-Yellow instead of I, II, + III' + items: + $ref: '#/components/schemas/RaTypeCode' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#fissileExceptionIndicator: + description: Indicates if Fissile is excepted + items: + maxItems: 1 + type: boolean + nullable: true + type: array + type: object + CarrierProduct: + description: Carrier product details + properties: + https://onerecord.iata.org/ns/cargo#productCode: + description: Carrier's product code + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#productDescription: + description: Carrier's product description + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CarrierProduct + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#serviceLevelCode: + description: Service level code + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + type: object + Booking: + description: Booking object refers to a confirmed booking + properties: + https://onerecord.iata.org/ns/cargo#bookingRequest: + description: Reference to the Booking Request + items: + $ref: '#/components/schemas/BookingRequest' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Booking + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#issuedForWaybill: + description: Reference to the Waybill object + items: + $ref: '#/components/schemas/Waybill' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#waybillPrefix: + description: Prefix used for the Waybill Number. Refer to IATA Airlines + Codes + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#updateBookingOptionRequests: + description: References to BookingOptionRequests that request to update + the Booking + items: + $ref: '#/components/schemas/BookingOptionRequest' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#activitySequences: + description: Information about the Activities that are part of the Service + and their sequence + items: + $ref: '#/components/schemas/ActivitySequence' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#waybillNumber: + description: House or Master Waybill unique identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#bookingStatus: + description: Status of the Booking + items: + $ref: '#/components/schemas/BookingStatus' + maxItems: 1 + nullable: true + type: array + type: object + RegulatedEntity: + description: Regulated Entity + properties: + https://onerecord.iata.org/ns/cargo#regulatedEntityExpiryDate: + description: Expiry date 4 digits month/year + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#RegulatedEntity + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#regulatedEntityIdentifier: + description: Regulated entity identifier as per IATA e-CSD/CSD Resolution + 65 + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#owningOrganization: + description: Reference to the Organization for which the RegulatedEntity + information is valid + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#regulatedEntityCategory: + description: Category code of the Regulated Entity + items: + $ref: '#/components/schemas/RegulatedEntityCategoryCode' + maxItems: 1 + nullable: true + type: array + type: object + PieceDg: + description: Dangerous Goods subtype of Piece + properties: + https://onerecord.iata.org/ns/cargo#overpackTypeCode: + description: 'Identifies the Logistic Unit package type. UN Recommendation + on Transport of Dangerous Goods, Model Regulations ' + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#overpackT1: + description: 'A single number assigned to a package, overpack or freight + container to provide control over radiation exposure. ' + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#goodsDescription: + description: Description of goods, for the BookingShipment the commodity + list defined by Modernizing Cargo Distribution MCD working group can be + used as a referential. + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#PieceDg + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contentProducts: + description: Reference to the Products describing the content of the Piece, + mandatory if no data on Item level is used + items: + $ref: '#/components/schemas/Product' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dimensions: + description: Dimensions details + items: + $ref: '#/components/schemas/Dimensions' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#ofShipment: + description: Reference to the Shipment the Piece is assigned to + items: + $ref: '#/components/schemas/Shipment' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#containedPieces: + description: Details of contained piece(s) + items: + $ref: '#/components/schemas/Piece' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packageMarkCoded: + description: Reference identifying how the package is marked. Field is hardcode + to "SSCC-18", "UPC" or "Other" + items: + $ref: '#/components/schemas/PackageMarkCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#volumetricWeight: + description: Volumetric weight details + items: + $ref: '#/components/schemas/VolumetricWeight' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#inPiece: + description: Reference to the Piece this Item or Piece is contained in + items: + $ref: '#/components/schemas/Piece' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packagingType: + description: 'Packaging details ' + items: + $ref: '#/components/schemas/PackagingType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#overpackIndicator: + description: 'Overpack indicator ' + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#nvdForCustoms: + description: When no value is declared for Customs, this field may be completed + with the value TRUE otherwise FALSE + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shippingMarks: + description: Shipping marks + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dgDeclaration: + description: Reference to the Dangerous Goods declaration + items: + $ref: '#/components/schemas/DgDeclaration' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#fulfillsUldTypeCode: + description: Text holding an ULD Type Code if the Piece fulfills it before + UnitComposition + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#nvdForCarriage: + description: When no value is declared for Carriage, this field may be completed + with the value TRUE otherwise FALSE + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#securityDeclarations: + description: Security details of the piece + items: + $ref: '#/components/schemas/SecurityDeclaration' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#allPackedInOneIndicator: + description: 'A statement identifying that the dangerous goods listed above + are all contained in the same outer packaging. Takes the form All packed + in one aaaa (description of packaging type) x nn (number of packages). + Applies to air transport only. (Air) ' + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadType: + description: Load type of the shipment or piece (Bulk, ULD, Pallet, Loose) + items: + $ref: '#/components/schemas/LoadType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedParties: + description: Information about other Parties involved depending on the context + of use + items: + $ref: '#/components/schemas/Party' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#qValueNumeric: + description: 'Most instances of all packed in one will require the addition + of the Q value which 1. Applies to air transport only. (Air) ' + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#stackable: + description: Stackable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packagedeIdentifier: + description: SSCC-18 code for the value of the package mark, company or + bar code, free text, pallet code, etc. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#grossWeight: + description: Weight details + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#coload: + description: Coload indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#containedItems: + description: Reference to the item(s) contained in the piece + items: + $ref: '#/components/schemas/Item' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contentProductionCountry: + description: Goods production country, mandatory when there are no Items. + Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#slac: + description: Shipper's Load And Count ( total contained piece count as + provided by shipper) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialHandlingCodes: + description: Three-letter special handling code (SPH) + items: + $ref: '#/components/schemas/SpecialHandlingCode' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#customsInformation: + description: Customs details + items: + $ref: '#/components/schemas/CustomsInformation' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#overpackCriticalitySafetyIndexNumeric: + description: 'Applies to fissile material only, other than fissile excepted. + A numeric value expressed to one decimal place preceded by the letters + CSI. ' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#upid: + description: Unique Piece Identifier (UPID) of the piece. Refer IATA Recommended + Practice 1689 + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#turnable: + description: Turnable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + type: object + DirectionType: + description: Restricted code list for the direction of a MovementTime + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#DirectionType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + StationRemarks: + description: StationRemarks details + properties: + https://onerecord.iata.org/ns/cargo#station: + description: 'Reference to the station (Airport), mandatory ' + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#StationRemarks + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#remarksText: + description: Details of the remarks, mandatory + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + ItemDg: + description: Dangerous Goods subtype of Item + properties: + https://onerecord.iata.org/ns/cargo#reportableQuantity: + description: Reportable quantities, To and from the USA only + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#weight: + description: Weight of the item + items: + $ref: '#/components/schemas/Value' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#supplementaryInfoPrefix: + description: Additional information that may be added in addition to the + proper shipping name to more fully describe the goods or to identify a + particular condition + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ItemDg + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#dimensions: + description: Dimensions details + items: + $ref: '#/components/schemas/Dimensions' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#netWeightMeasure: + description: The total net weight of dangerous goods transported of this + line item. For air transport the value must be the volume or mass in each + package. + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#ofProduct: + description: Reference to the Product describing the Item + items: + $ref: '#/components/schemas/Product' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#inPiece: + description: Reference to the Piece this Item or Piece is contained in + items: + $ref: '#/components/schemas/Piece' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#itemQuantity: + description: Quantity of the item when applicable, with associated units + of measure + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#unitPrice: + description: Product price per unit in the base + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#batchNumber: + description: Production batch number / reference + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#supplementaryInfoSuffix: + description: Additional information that may be added in addition to the + proper shipping to more fully describe the goods or to identify a particular + condition + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#productionDate: + description: Production date + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#targetCountry: + description: Item target country. Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#emergencyContact: + description: Contains the Emergency contact name (e.g. the name of the agency) + and phone number (min required) + items: + $ref: '#/components/schemas/Person' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#productionCountry: + description: Production country details. Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#quantityForUnitPrice: + description: Product quantity for unit price - e.g. 12 (eggs for one USD + 1) + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#lotNumber: + description: Production lot number / reference + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#expiryDate: + description: Product expiry date - e.g. for perishables goods or goods with + programmed obsolescence + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + type: object + ULDBasicPiece: + description: ULDBasicPiece details + properties: + https://onerecord.iata.org/ns/cargo#pieceGroupGrossWeight: + description: Total gross weight of the piece group + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldLoadingIndicator: + description: Indicator related to ULD loading (e.g. Main deck only) + items: + $ref: '#/components/schemas/ULDLoadingIndicator' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dryIceWeight: + description: Weight of dry ice + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceGroupId: + description: Identifier of the piece group, increasing integers + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ULDBasicPiece + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#slac: + description: Shipper's Load And Count ( total contained piece count as + provided by shipper) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#pieceGroupCount: + description: Number of pieces in the piece group + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + type: object + ParticipantIdentifier: + description: Open code list corresponding to cXML code list 1.36 Participant + Identifiers + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ParticipantIdentifier + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + BookingShipment: + description: Simplified shipment object that is to be used only for the distribution + scope where only a subset of data is known priori to operational phase. + properties: + https://onerecord.iata.org/ns/cargo#forBookingOptionRequest: + description: Reference to the BookingOptionRequest the information of the + LogisticsObject is detailling + items: + $ref: '#/components/schemas/BookingOptionRequest' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#temperatureInstructions: + description: Temperature instructions if a specific range + items: + $ref: '#/components/schemas/TemperatureInstructions' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingShipment + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#pieceGroups: + description: Reference to the Piece groups of the shipment + items: + $ref: '#/components/schemas/PieceGroup' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#consolidationIndicator: + description: Indication if the shipment is a consolidation + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialServiceRequests: + description: Special service requests + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#expectedCommodity: + description: Expected commodity of the shipment as per Commodity Code list. + Either this or expected HS code required + items: + $ref: '#/components/schemas/CommodityCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialHandlingCodes: + description: Three-letter special handling code (SPH) + items: + $ref: '#/components/schemas/SpecialHandlingCode' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#expectedHScode: + description: Expected commodity of the shipment as per HS code (at least + 6 digits). Either this or expectedCommodityCode required + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#textualHandlingInstructions: + description: Strings to provide free text handling instructions such as + SSR and OSI + items: + type: string + nullable: true + type: array + type: object + Person: + description: Person details + properties: + https://onerecord.iata.org/ns/cargo#employeeId: + description: Employee ID + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#middleName: + description: Middle name/ other name + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#firstName: + description: First name / given name + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#department: + description: Department / Division / Unit + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#jobTitle: + description: Job title / position + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Person + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#associatedOrganization: + description: Reference to the Organization the Actor is associated with + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#salutation: + description: 'Salutation ' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#documents: + description: Linked documents to the person, e.g. driver's license, ID, + etc. + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactRole: + description: Contact type - e.g. Emergency contact, Customs contact, Customer + contact + items: + $ref: '#/components/schemas/ContactRole' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#lastName: + description: Last name / family name / surname + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + BookingOption: + description: Booking details + properties: + https://onerecord.iata.org/ns/cargo#additionalInformation: + description: Additional infromation related to the Booking Option, e.g. + sales details + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#bookingTimes: + description: Information about the Booking Times of a privded Booking Option + items: + $ref: '#/components/schemas/BookingTimes' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#forBookingOptionRequest: + description: Reference to the BookingOptionRequest the information of the + LogisticsObject is detailling + items: + $ref: '#/components/schemas/BookingOptionRequest' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#stationRemarks: + description: Remarks related to specific stations in the routing (e.g. Embargo + in XXX) + items: + $ref: '#/components/schemas/StationRemarks' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#requestMatch: + description: Indicates if the Booking Option is a match to the Booking Option + Request preferences + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingOption + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#price: + description: Price of the Booking (if different from the offer) + items: + $ref: '#/components/schemas/Price' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#unitsPreference: + description: Reference to unit preferences of the request (e.g. kg or cm) + items: + $ref: '#/components/schemas/UnitsPreference' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportLegs: + description: Reference to the Transport Legs of the proposed routing + items: + $ref: '#/components/schemas/TransportLegs' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#forBookingRequest: + description: Reference to the Booking Request the of the Booking Option + items: + $ref: '#/components/schemas/BookingRequest' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#carrierProduct: + description: Reference to the Carrier product if known + items: + $ref: '#/components/schemas/CarrierProduct' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#statusBookingOption: + description: Status of the Booking Option + items: + $ref: '#/components/schemas/BookingOptionStatus' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#carrier: + description: Reference to the operating carrier + items: + $ref: '#/components/schemas/Carrier' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#offerValidFrom: + description: Date and time of beginning of offer validity + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#offerValidTo: + description: Date and time of end of offer validity + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#alternatives: + description: Description of the alternatives proposed that do not match + the Booking Option Request + items: + type: string + nullable: true + type: array + type: object + RaTypeCode: + description: Restricted code list based on cXML code list 1.84 Category Colour + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#RaTypeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Organization: + description: 'Superclass: Organizations represent a kind of Agent corresponding + to social instititutions such as companies, societies, etc' + properties: + https://onerecord.iata.org/ns/cargo#parentOrganization: + description: Reference to the parent Organization + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#basedAtLocation: + description: Reference to the Location where the Organization is based at + or headquartered + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Organization + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#name: + description: Human-understandable name of object depending on the context + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shortName: + description: Short name of the Organization if any + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#subOrganization: + description: References to all sub-Organizations + items: + $ref: '#/components/schemas/Organization' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + CheckTemplate: + description: | + CheckTemplate is the body of a check, holding links to multiple Question LOs and is provided by the party in charge of the template that is used + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#templatePurpose: + description: Purpose of the template + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CheckTemplate + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#involvedParties: + description: Information about other Parties involved depending on the context + of use + items: + $ref: '#/components/schemas/Party' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#name: + description: Human-understandable name of object depending on the context + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#date: + description: DateTime on which the CheckTemplate was released + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#usedInCheck: + description: Reference to the Check the template was used in + items: + $ref: '#/components/schemas/Check' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#version: + description: Version of the template + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#questions: + description: References to all Questions that are part of this template + items: + $ref: '#/components/schemas/Question' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#legacyTemplate: + description: Reference to an ExternalReference holding a legacy templats + outside of ONE Record, such as a photo or pdf of a checksheet + items: + $ref: '#/components/schemas/ExternalReference' + maxItems: 1 + nullable: true + type: array + type: object + EventTimeType: + description: Restricted code list for acceptable event times + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#EventTimeType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ContactRole: + description: Open code list for roles of a contact + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ContactRole + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + LogisticsService: + description: 'Superclass: LogisticsService is a sequence of Activities provided + by one Party to another' + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LogisticsService + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#activitySequences: + description: Information about the Activities that are part of the Service + and their sequence + items: + $ref: '#/components/schemas/ActivitySequence' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + TemperatureInstructions: + description: TemperatureInstructions details + properties: + https://onerecord.iata.org/ns/cargo#minTemperature: + description: Minimum temperature of the range + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#maxTemperature: + description: Maximum temperature of the range + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#TemperatureInstructions + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + SecurityDeclaration: + description: Security declaration details + properties: + https://onerecord.iata.org/ns/cargo#issuedBy: + description: Name of person (or employee ID) who issued the security status + items: + $ref: '#/components/schemas/Person' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#receivedFrom: + description: Regulated entity that tendered the consignment + items: + $ref: '#/components/schemas/RegulatedEntity' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#SecurityDeclaration + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#regulatedEntityAcceptor: + description: Information about the accepting regulated entity of the Security + Declaration + items: + $ref: '#/components/schemas/RegulatedEntity' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#issuedOn: + description: Date and time when the security status was issued + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#screeningMethods: + description: "Screening methods which have been used to secure the cargo\n\ + PHS – Physical Inspection and/or hand search \nVCK - Visual check \nXRY-\ + \ X-ray equipment \nEDS - Explosive detection system \nEDD - Explosive\ + \ detection dogs\nETD - Explosive trace detection equipment - particles\ + \ or vapor \nCMD - Cargo metal detection\nAOM - Subjected to any other\ + \ means: this entry should be followed by free text specifying what other\ + \ mean was used to secure the cargo" + items: + $ref: '#/components/schemas/ScreeningMethod' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#securityStatus: + description: 'Security status indicator (CXML 1.13) - e.g. SPX- Cargo Secure + for Passenger and All-Cargo Aircraft ' + items: + $ref: '#/components/schemas/SecurityStatus' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#issuedForPiece: + description: Reference to the Piece the document was issued for + items: + $ref: '#/components/schemas/Piece' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#additionalSecurityInformation: + description: Any additional information that may be required by an ICAO + Member State + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#groundsForExemption: + description: "Exemption code - e.g. BIOM- Bio-Medical Samples \nSMUS - small\ + \ undersized shipments MAIL - mail\nBIOM - bio-medical samples\nDIPL -\ + \ diplomatic bags or diplomatic mail\nLFSM - life-saving materials NUCL\ + \ - nuclear materials\nTRNS - transfer or transshipment" + items: + $ref: '#/components/schemas/ScreeningExemption' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#regulatedEntityIssuer: + description: Regulated entity issuing the Security Declaration + items: + $ref: '#/components/schemas/RegulatedEntity' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherRegulatedEntities: + description: Any other regulated entity that accepts custody of the cargo + and accepts the security status originally issued + items: + $ref: '#/components/schemas/RegulatedEntity' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherScreeningMethods: + description: Other methods used to secure the cargo + items: + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + Party: + description: Refers to a Company and its role in a specific context, e.g Company + A as shipper. Cargo-XML Code List 1.15 can be used as a reference with the + addition of "Notify Party" + properties: + https://onerecord.iata.org/ns/cargo#partyDetails: + description: Reference to the Agent described by the role of the Party + items: + $ref: '#/components/schemas/LogisticsAgent' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#partyRole: + description: Role fo the Company in the context. Can refer to Code List + 1.36 in the CXML Toolkit + items: + $ref: '#/components/schemas/ParticipantIdentifier' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Party + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + ServiceCode: + description: Restricted code list corresponding to cXML code list 1.38 Service + Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ServiceCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + BookingRequest: + description: A party, usually the freight forwarder, creates the BookingRequest + in order to confirm the booking to the Carrier + properties: + https://onerecord.iata.org/ns/cargo#forBookingOption: + description: Reference to the BookingOption the LogisticsObject is detailling + items: + $ref: '#/components/schemas/BookingOption' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#booking: + description: Reference to the Booking + items: + $ref: '#/components/schemas/Booking' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingRequest + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#waybillPrefix: + description: Prefix used for the Waybill Number. Refer to IATA Airlines + Codes + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#waybillNumber: + description: House or Master Waybill unique identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + Loading: + description: Action to describe onloading or offloading TransportMeans + properties: + https://onerecord.iata.org/ns/cargo#onTransportMeans: + description: Reference to the TransportMeans that is being onloaded or offloaded + items: + $ref: '#/components/schemas/TransportMeans' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Loading + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionTimeType: + description: Enum stating the type of the Action + items: + $ref: '#/components/schemas/ActionTimeType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionStartTime: + description: DateTime holding the start time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadedUnits: + description: References to LoadingUnits onloaded or offloaded + items: + $ref: '#/components/schemas/LoadingUnit' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadedPieces: + description: References to Pieces onloaded or offloaded + items: + $ref: '#/components/schemas/Piece' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#performedAt: + description: Reference to the Location the Action was performed at + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadedMaterials: + description: References to Materials onloaded or offloaded + items: + $ref: '#/components/schemas/LoadingMaterial' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedActivity: + description: Reference to the Activity the Action was performed for + items: + $ref: '#/components/schemas/LogisticsActivity' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionEndTime: + description: DateTime holding the end time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadingType: + description: Enum stating whether the LoadingAction describes onloading + or offloading + items: + $ref: '#/components/schemas/LoadingType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadingPositionIdentifier: + description: Short text stating the loading position in the TransportMeans + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + Piece: + description: Individual piece or virtual grouping of pieces + properties: + https://onerecord.iata.org/ns/cargo#goodsDescription: + description: Description of goods, for the BookingShipment the commodity + list defined by Modernizing Cargo Distribution MCD working group can be + used as a referential. + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Piece + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contentProducts: + description: Reference to the Products describing the content of the Piece, + mandatory if no data on Item level is used + items: + $ref: '#/components/schemas/Product' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dimensions: + description: Dimensions details + items: + $ref: '#/components/schemas/Dimensions' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#ofShipment: + description: Reference to the Shipment the Piece is assigned to + items: + $ref: '#/components/schemas/Shipment' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#containedPieces: + description: Details of contained piece(s) + items: + $ref: '#/components/schemas/Piece' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packageMarkCoded: + description: Reference identifying how the package is marked. Field is hardcode + to "SSCC-18", "UPC" or "Other" + items: + $ref: '#/components/schemas/PackageMarkCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#volumetricWeight: + description: Volumetric weight details + items: + $ref: '#/components/schemas/VolumetricWeight' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#inPiece: + description: Reference to the Piece this Item or Piece is contained in + items: + $ref: '#/components/schemas/Piece' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packagingType: + description: 'Packaging details ' + items: + $ref: '#/components/schemas/PackagingType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#nvdForCustoms: + description: When no value is declared for Customs, this field may be completed + with the value TRUE otherwise FALSE + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shippingMarks: + description: Shipping marks + items: + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#fulfillsUldTypeCode: + description: Text holding an ULD Type Code if the Piece fulfills it before + UnitComposition + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#nvdForCarriage: + description: When no value is declared for Carriage, this field may be completed + with the value TRUE otherwise FALSE + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#securityDeclarations: + description: Security details of the piece + items: + $ref: '#/components/schemas/SecurityDeclaration' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadType: + description: Load type of the shipment or piece (Bulk, ULD, Pallet, Loose) + items: + $ref: '#/components/schemas/LoadType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedParties: + description: Information about other Parties involved depending on the context + of use + items: + $ref: '#/components/schemas/Party' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#stackable: + description: Stackable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packagedeIdentifier: + description: SSCC-18 code for the value of the package mark, company or + bar code, free text, pallet code, etc. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#grossWeight: + description: Weight details + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#coload: + description: Coload indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#containedItems: + description: Reference to the item(s) contained in the piece + items: + $ref: '#/components/schemas/Item' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contentProductionCountry: + description: Goods production country, mandatory when there are no Items. + Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#slac: + description: Shipper's Load And Count ( total contained piece count as + provided by shipper) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialHandlingCodes: + description: Three-letter special handling code (SPH) + items: + $ref: '#/components/schemas/SpecialHandlingCode' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#customsInformation: + description: Customs details + items: + $ref: '#/components/schemas/CustomsInformation' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#upid: + description: Unique Piece Identifier (UPID) of the piece. Refer IATA Recommended + Practice 1689 + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#turnable: + description: Turnable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + type: object + LoadingUnit: + description: Common loading unit/container details + properties: + https://onerecord.iata.org/ns/cargo#inUnitComposition: + description: Description not available + items: + $ref: '#/components/schemas/UnitComposition' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#tareWeight: + description: Tare weight of the empty ULD + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#remarks: + description: Remarks or Supplement Information + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LoadingUnit + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + CommodityCode: + description: Restricted code list of accepted commodities in carrier bookings + when no HS code available + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#CommodityCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + DangerousGoodsCode: + description: 'Source: Dangerous Goods Regulations, 46th Edition' + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#DangerousGoodsCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Question: + description: Question holds one question and a link to an Answer The Question + is provided by the party in charge of the template used + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Question + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#shortText: + description: Short text of the Question + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#answerOptionsText: + description: Text restrictions to the Answer + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#answer: + description: Reference to the Answer to the Question + items: + $ref: '#/components/schemas/Answer' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#questionNumber: + description: Number of the Question within the template (alphanumeric) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checkTemplate: + description: Reference to the CheckTemplate the Question is from + items: + $ref: '#/components/schemas/CheckTemplate' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#answerOptionsValue: + description: Value restrictions to the answer + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#longText: + description: Long text of the question + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#questionSection: + description: Section of the CheckTemplate this Question is part of + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + MovementTime: + description: Times refering to Transport Movements, used to describe specfic + times such as Actual Departure time, etc. + properties: + https://onerecord.iata.org/ns/cargo#movementTimeType: + description: The type of time can be Actual, Estimated ot Scheduled + items: + $ref: '#/components/schemas/MovementTimeType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#direction: + description: Direction to indicate if it's Inbound or Outbound + items: + $ref: '#/components/schemas/DirectionType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#movementTimestamp: + description: Timestamp (date and time) of the movement time. If the movement + time is recorded asynchronously, the timestamp should reflect the actual + time, not when the data was created. + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#MovementTime + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#movementMilestone: + description: The milestone list still needs to be defined, it includes elements + from CXML Code List 1.92 but is not limited to those values, e.g. block-on + and block-off times might be added as a comparison to wheels off and touchdown. + items: + $ref: '#/components/schemas/MovementIndicator' + maxItems: 1 + nullable: true + type: array + type: object + WaybillType: + description: Restricted code list for Waybill types + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#WaybillType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ChargeIdentifier: + description: Restricted code list corresponding to cXML code list 1.33 Charge + Identifiers + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ChargeIdentifier + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ULDSpecificPiece: + description: ULDSpecificPiece details + properties: + https://onerecord.iata.org/ns/cargo#pieceGroupGrossWeight: + description: Total gross weight of the piece group + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldContourCode: + description: Contour code as per IATA ULD Regulation + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldType: + description: Type of ULD as per IATA ULD Regulation + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dryIceWeight: + description: Weight of dry ice + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceGroupId: + description: Identifier of the piece group, increasing integers + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ULDSpecificPiece + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#slac: + description: Shipper's Load And Count ( total contained piece count as + provided by shipper) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldSerialNumber: + description: Serial number that allows to uniquely identify the ULD + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#pieceGroupCount: + description: Number of pieces in the piece group + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + type: object + ULDChargeCode: + description: Restricted code list corresponding to cXML code list 1.44 ULD Charge + Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ULDChargeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + WeightUnitCode: + description: Restricted sub-code list of weight units from MeasurementUnitCode + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#WeightUnitCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + UnitsPreference: + description: UnitsPreference details + properties: + https://onerecord.iata.org/ns/cargo#weightUnit: + description: Preferred unit for weight + items: + $ref: '#/components/schemas/WeightUnitCode' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#UnitsPreference + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#temperatureUnit: + description: Preferred unit for temperature + items: + $ref: '#/components/schemas/TemperatureUnitCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dimensionsUnit: + description: Preferred unit for measurement and dimensions + items: + $ref: '#/components/schemas/DimensionsUnitCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#volumeUnit: + description: Preferred unit for volume + items: + $ref: '#/components/schemas/VolumeUnitCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#currency: + description: Preferred unit for currency + items: + $ref: '#/components/schemas/CurrencyCode' + maxItems: 1 + nullable: true + type: array + type: object + MovementIndicator: + description: NOT FINAL YET - Open code list corresponding to cXML code list + 1.92 Movement Indicators + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#MovementIndicator + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Dimensions: + description: Dimension details + properties: + https://onerecord.iata.org/ns/cargo#width: + description: Width + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Dimensions + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#height: + description: Height + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#length: + description: Length + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#volume: + description: Volume + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + type: object + LoosePiece: + description: LoosePiece details + properties: + https://onerecord.iata.org/ns/cargo#pieceGroupGrossWeight: + description: Total gross weight of the piece group + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceWeight: + description: Weight of a single piece + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceWidth: + description: Width of a single piece + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceLength: + description: Length of a single piece + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dryIceWeight: + description: Weight of dry ice + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceGroupId: + description: Identifier of the piece group, increasing integers + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LoosePiece + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#pieceGroupCount: + description: Number of pieces in the piece group + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#stackable: + description: Stackable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceHeight: + description: Height of a single piece + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#turnable: + description: Turnable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + type: object + DimensionsUnitCode: + description: Restricted sub-code list of length units from MeasurementUnitCode + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#DimensionsUnitCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + BookingOptionStatus: + description: Restricted code list containing the statuses of a booking option + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingOptionStatus + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ContactDetail: + description: Contact details + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ContactDetail + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#textualValue: + description: Textual value filled on use context (eg. characteristic colour, + contactDetail mail adress, etc.) + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#contactDetailType: + description: Type of the contact details, e.g. Phone number, Mail address + items: + $ref: '#/components/schemas/ContactDetailType' + maxItems: 1 + nullable: true + type: array + type: object + ProductDg: + description: Dangerous Goods subtype of Product + properties: + https://onerecord.iata.org/ns/cargo#manufacturer: + description: Manufacturing company details and contacts + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherCharacteristics: + description: Charateristics of the product + items: + $ref: '#/components/schemas/Characteristic' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hazardClassificationId: + description: Identifies the hazard class / division identification containing + a numeric field separated by a decimal + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packagingDangerLevelCode: + description: Packing group, If used must reference I, II or III + items: + $ref: '#/components/schemas/PackagingDangerLevelCode' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ProductDg + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#describedObjects: + description: Reference to the Items or Pieces in which the product can be + found. + items: + $ref: '#/components/schemas/PhysicalLogisticsObject' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#description: + description: Natural language description if required + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#additionalHazardClassificationId: + description: 'Identifies the subsidiary hazard class / division identification + containing a numeric field separated by a decimal. There may be , 1 or + 2 subsidiary risk classes or divisions. If there is more than one, each + should be separated by a comma. The subsidiary risk must be shown in parentheses. ' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#explosiveCompatibilityGroupCode: + description: Specifies the reference to the group which identifies the kind + of substances and articles that are deemed to be compatible. Mandatory + field in case of transport of explosive articles or substances + items: + $ref: '#/components/schemas/ExplosiveCompatibilityGroupCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsCode: + description: Harmonized Commodity code, refer to hsType used. 6 minimum + digits are expected. + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#commodityItemNumber: + description: Indicates the specific commodity on which the rate class code + is applied + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uniqueIdentifier: + description: Manufacturer's unique product identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#authorizationInformation: + description: 'Contains additional information relating to an approval, permission + or other specific detail applicable to the commodity (e.g. Dangerous Goods + in excepted quantities) ' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#properShippingName: + description: The name used to describe the particular article or substance + as shown in the UN Model Regulations Dangerous Goods List + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsCommodityDescription: + description: Commodity description + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dgRadioactiveMaterial: + description: Dg Radioactive Material + items: + $ref: '#/components/schemas/DgProductRadioactive' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsCommodityName: + description: If no Code provided, name of commodity + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#technicalName: + description: 'This is additional chemical name(s) required for some proper + shipping names. When added the technical must be shown in parentheses + immediately following the proper shipping name. ' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialProvisionId: + description: 'For Air Mode: Special Provision may show a single, double + or triple digit number preceded by the letter A, against appropriate entries + in the List of Dangerous Goods' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#unNumber: + description: Reference identifying the United Nations Dangerous Goods serial + number assigned within the UN to substances and articles contained in + a list of the dangerous goods most commonly carried. e.g. 1189 - Ethylene + glycol monomethyl ether acetate + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsType: + description: Reference identifying the type of standard code to be used + for the Commodity Classification (Brussels Tariff Nomenclature, EU Harmonized + System Code, UN Standard International Trade Classification). Mandatory + if the commodity code is more than 6 digits + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packingInstructionNumber: + description: 'The packing instruction number applicable to the UN number + / proper shipping name entry. A three-numeric value which may be preceded + by the letter Y. Mandatory field for air transport (Air) ' + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + MeasurementUnitCode: + description: 'Source: UNECE Rec. 20 Rev. 17e-2021' + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#MeasurementUnitCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Insurance: + description: Insurance details + properties: + https://onerecord.iata.org/ns/cargo#coveringOrganization: + description: 'Party covering the insurance ' + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#insuredShipments: + description: Reference to the shipments insured + items: + $ref: '#/components/schemas/Organization' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Insurance + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#insuredAmount: + description: Insured amount - amount covered by the insurance policy + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + LogisticsActivity: + description: 'Superclass: LogisticsActivity is a scheduled set of tasks that + is executed as part of one or more Services' + properties: + https://onerecord.iata.org/ns/cargo#checkActions: + description: References to CheckActions performed for the Activity + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LogisticsActivity + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedServices: + description: Reference to Services this Activity is executed for + items: + $ref: '#/components/schemas/LogisticsService' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#executionStatus: + description: Enum stating the status of the Activity + items: + $ref: '#/components/schemas/ExecutionStatus' + maxItems: 1 + nullable: true + type: array + type: object + WaybillLineItem: + description: Information from AWB Rate Description section as per bullet point + 18 - data elements 22A - 22Z from AWB + properties: + https://onerecord.iata.org/ns/cargo#grossWeightForRate: + description: Gross weight for which the rate description details apply + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#rateClassCodeBasic: + description: Rate Surcharge/Reduction - Basic Rate Class Code + items: + $ref: '#/components/schemas/BasicRateClassCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldType: + description: Type of ULD as per IATA ULD Regulation + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldTareWeightForRate: + description: Information about the ULD tare weight used for the rate descbribed + by the Line Item + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#WaybillLineItem + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#dimensionsForRate: + description: Information about the Dimensions used for the rate descbribed + by the Line Item + items: + $ref: '#/components/schemas/Dimensions' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#volumetricWeightForRate: + description: Volumetric weight used for the rate described by this line + item + items: + $ref: '#/components/schemas/VolumetricWeight' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#productionCountryForRate: + description: Production country for the rate described by this Line Item. + Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#rcp: + description: IATA 3-letter city code of the rate combination point as defined + in TACT + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldSerialNumber: + description: Serial number that allows to uniquely identify the ULD + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#slacForRate: + description: Slac used for the rate described by the Line item + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceCountForRate: + description: Number of pieces for which the rate description details apply + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#hsCodeForRate: + description: Harmonized Commodity code, refer to hsType used. 6 minimum + digits are expected. + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#rateCharge: + description: TACT Rate for rate description details + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#goodsDescriptionForRate: + description: Goods description used in the rate described by the Line Item + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#commodityItemNumberForRate: + description: commodityItemNumberForRate + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#uldOwnerCode: + description: Information about the ULD owner code described in a ULD specific + piece or used for a rate in a Line Item + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#rateClassCode: + description: Rate class code e.g. Q. Refer to CXML Code List 1.4 Rate Class + Codes + items: + $ref: '#/components/schemas/RateClassCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#chargeableWeightForRate: + description: Chargeable weight for which the rate description details apply + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldRateClassType: + description: ULD Rate information - ULD Rate Class Type + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#lineItemNumber: + description: Number of the line item + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#ratePercentage: + description: Rate Surcharge/Reduction - Percebtage of red. / surcharge + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + type: object + OtherChargeCode: + description: Restricted code list corresponding to cXML code list 1.2 Other + Charge Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#OtherChargeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Ranges: + description: Ranges details + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Ranges + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#maximumQuantity: + description: Maximum quantity + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#minimumQuantity: + description: Minimum quantity + items: + maxItems: 1 + type: number + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#rateClassCode: + description: Rate class code e.g. Q. Refer to CXML Code List 1.4 Rate Class + Codes + items: + $ref: '#/components/schemas/RateClassCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldRateClassType: + description: ULD Rate information - ULD Rate Class Type + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#unitBasis: + description: Specific commodity code linked to commodity + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Company: + description: Company details + properties: + https://onerecord.iata.org/ns/cargo#parentOrganization: + description: Reference to the parent Organization + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#basedAtLocation: + description: Reference to the Location where the Organization is based at + or headquartered + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Company + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#name: + description: Human-understandable name of object depending on the context + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#iataCargoAgentLocationIdentifier: + description: IATA CASS cargo agent 4 digit branch number / location identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shortName: + description: Short name of the Organization if any + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#iataCargoAgentCode: + description: IATA accredited cargo agent 7 digit number + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#subOrganization: + description: References to all sub-Organizations + items: + $ref: '#/components/schemas/Organization' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + GoodsTypeExtensionCode: + description: Restricted code list referring to the CITES source codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#GoodsTypeExtensionCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Geolocation: + description: Geolocation details - e.g. for drones, automated vehicles + properties: + https://onerecord.iata.org/ns/cargo#longitude: + description: Location longitude decimal + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#latitude: + description: Location latitude decimal + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#elevation: + description: Elevation from sea level - Change of data type to Value as + of ontology v1.1 + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Geolocation + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + OtherCharge: + description: Other Charge details from AWB as per bullet point 19 - data element + 23 from AWB + properties: + https://onerecord.iata.org/ns/cargo#otherChargeAmount: + description: Other Charge amount + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#chargePaymentType: + description: Indicates if charge is prepaid or collect (P, C) + items: + $ref: '#/components/schemas/PrepaidCollectIndicator' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#OtherCharge + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#otherChargeCode: + description: Refer to CargoXML Code List 1.2 for Other Charges + items: + $ref: '#/components/schemas/OtherChargeCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#entitlement: + description: Entitlement code to define if charges are Due carrier (C) or + Due agent (A). Refer to CXML Code List 1.3 + items: + $ref: '#/components/schemas/EntitlementCode' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + VolumeUnitCode: + description: Restricted sub-code list of volume units from MeasurementUnitCode + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#VolumeUnitCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + LogisticsAgent: + description: 'Superclass: LogisticsAgents describe acting entities in the logistics + supply chain such as persons and organizations' + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LogisticsAgent + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + LoadingMaterial: + description: LoadingMaterial describes transportable, complementary non-Piece + objects such as dry ice or nets + properties: + https://onerecord.iata.org/ns/cargo#manufacturer: + description: Manufacturing company details and contacts + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LoadingMaterial + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#description: + description: Natural language description if required + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#serialNumber: + description: Serial number that allows to uniquely identify the object + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#materialModel: + description: Model of the LoadingMaterial if any + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#materialType: + description: Type of the LoadingMaterial + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + CompositionType: + description: Restricted code list for Composing subtypes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CompositionType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ULD: + description: Unit Load Device details + properties: + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ULD + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#ownerCode: + description: Owner code of the ULD in aa, an or na format - owner can be + an airline or leasing company + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#serviceabilityCode: + description: 'Designator of serviceablity condition e.g. SER or DAM ' + items: + $ref: '#/components/schemas/ULDConditionCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldSerialNumber: + description: Serial number that allows to uniquely identify the ULD + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#odlnCode: + description: Contains two designator codes of ODLN or Operational Damage + Limit Notices. ODLN code is used to define type of damage after visually + check the serviceability of ULDs section 7, Standard Specifications 4/3 + or 4/4 in ULD Regulations + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#numberOfFittings: + description: Number of fittings + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#tareWeight: + description: Tare weight of the empty ULD + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#remarks: + description: Remarks or Supplement Information + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#ataDesignator: + description: US / ATA Unit Load Device type code e.g. M2 + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#damageFlag: + description: Indicates if the ULD is Damaged + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#demurrageCode: + description: Contains three designator of demurrage code, refer to RP 1654 + (BCC, HHH, XXX, ZZZ) + items: + $ref: '#/components/schemas/DemurrageCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#uldTypeCode: + description: Standard Unit Load Device type code e.g. AKE - Certified Container + - Contoured. Refer to IATA ULD Technical Manual + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#numberOfNets: + description: Number of nets + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#numberOfDoors: + description: Number of doors + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#inUnitComposition: + description: Description not available + items: + $ref: '#/components/schemas/UnitComposition' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#numberOfStraps: + description: Number of straps + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadingIndicator: + description: ULD height or loading limitation code. Refer CXML Code List + 1.47, e.g. R - ULD Height above 244 centimetres + items: + $ref: '#/components/schemas/ULDLoadingIndicator' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#sealNumber: + description: ULD seal number if applicable + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ActionTimeType: + description: Restricted code list for acceptable action times + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ActionTimeType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + StatusCode: + description: Restricted code list corresponding to cXML code list 1.18 Status + Codes, including DIS discrepancy codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#StatusCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + CustomsInformation: + description: Customs information details + properties: + https://onerecord.iata.org/ns/cargo#otherCustomsInformation: + description: Supplementary Customs, Security and Regulatory Control Information + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#country: + description: Country details. Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contentCode: + description: |- + Customs, Security and Regulatory Control Information Identifier. Coded indicator qualifying Customs related information: Item Number "I", Exemption Legend "L", System Downtime Reference "S", Unique Consignment Reference Number "U", Movement Reference Number "M" . + Refers to Code List 1.1 + Condition: At least one of the three elements (Country Code, Information Identifier or Customs, Security and Regulatory Control Information Identifier) must be completed + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CustomsInformation + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#subjectCode: + description: "Information Identifier. Code identifying a piece of information/entity\ + \ e.g. \"IMP\" for import, \"EXP\" for export, \"AGT\" for Agent, \"ISS\"\ + \ for The Regulated Agent Issuing the Security Status for a Consignment\ + \ etc. \nCondition: At least one of the three elements (Country Code,\ + \ Information Identifier or Customs, Security and Regulatory Control Information\ + \ Identifier) must be completed" + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#issuedForPiece: + description: Reference to the Piece the document was issued for + items: + $ref: '#/components/schemas/Piece' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#note: + description: Free text for customs remarks, not used in OCI Composition + Rules Table + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#issuedForShipment: + description: Reference to the shipment the document was issued for + items: + $ref: '#/components/schemas/Shipment' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + Ratings: + description: Ratings details + properties: + https://onerecord.iata.org/ns/cargo#ranges: + description: Reference to the ranges + items: + $ref: '#/components/schemas/Ranges' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#chargePaymentType: + description: Indicates if charge is prepaid or collect (P, C) + items: + $ref: '#/components/schemas/PrepaidCollectIndicator' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Ratings + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#forPrices: + description: Reference to the Prices based on this Ratings + items: + $ref: '#/components/schemas/Price' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#subTotal: + description: Subtotal of the charge + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#quantity: + description: Quantity for the charge if applicable + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#priceReferenceId: + description: Reference to a price reference if existing (e.g. Allotment + number, contract reference, etc.) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#rcp: + description: IATA 3-letter city code of the rate combination point as defined + in TACT + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#entitlement: + description: Entitlement code to define if charges are Due carrier (C) or + Due agent (A). Refer to CXML Code List 1.3 + items: + $ref: '#/components/schemas/EntitlementCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#chargeDescription: + description: Description of the charge e.g. Airfreight, fuel, etc. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherChargeCode: + description: Refer to CargoXML Code List 1.2 for Other Charges + items: + $ref: '#/components/schemas/OtherChargeCode' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#priceSpecification: + description: Specification of the price e.g. Street, Group, Spot, etc. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#billingChargeIdentifier: + description: Billing charge identifiers to be used for CASS. Refer to CargoXML + Code List 1.33 + items: + $ref: '#/components/schemas/ChargeIdentifier' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#chargeType: + description: Charge type related to amount total as per bullet points 2/21 + - data elements 24A - 3B from AWB + items: + $ref: '#/components/schemas/ChargeIdentifier' + maxItems: 1 + nullable: true + type: array + type: object + ScreeningMethod: + description: Restricted code list corresponding to cXML code list 1.102 Screening + Methods + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ScreeningMethod + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + LiveAnimalsEpermit: + description: Epermit for Live Animals details + properties: + https://onerecord.iata.org/ns/cargo#signatures: + description: List of all the signatures of the Epermit (applicant box 4, + issuing authority box 6, issuer box 13 and examining authority box 14) + items: + $ref: '#/components/schemas/EpermitSignature' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#permitTypeOtherDescription: + description: Description if TypeCode is Other (box 1) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transactionPurposeCode: + description: Code indicating the purpose of the transaction (box 5a) + items: + $ref: '#/components/schemas/TransactionPurposeCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#validUntil: + description: Validity end date (date of expiry) based on usage context + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LiveAnimalsEpermit + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#transportContractTypeCode: + description: Code specifying the transport document name (box 15) + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#copyIndicator: + description: Indicates if the permit is a copy (true) or an original (false) + (box 1) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#epermitNumber: + description: The original number is a unique number allocated to each document + by the relevant Management Authority. (box 1) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportContractId: + description: Reference to the Air Waybill or other transport contract document + (box 15) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#consignee: + description: Reference to the Organization that fulfills the role of the + consignee, for a LiveAnimalsEpermit it has to include complete name and + address (box 3) + items: + $ref: '#/components/schemas/Company' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialConditions: + description: Special conditions (box 5) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#consignments: + description: Reference to the pieces and properties linked to the Permit + (box 7 to 12) + items: + $ref: '#/components/schemas/EpermitConsignment' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transactionPurpose: + description: Purpose of the transaction in free text (box 5a) + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#permitTypeCode: + description: Code specifying the document name. (box 1) + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#validFrom: + description: Validity start date based on usage context + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + type: object + TransportMovement: + description: Activity to describe transports, replaces the TransportSegment + in v1.1 and above + properties: + https://onerecord.iata.org/ns/cargo#checkActions: + description: References to CheckActions performed for the Activity + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#co2Emissions: + description: References to CO2Emissions + items: + $ref: '#/components/schemas/CO2Emissions' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#seal: + description: Seal identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#TransportMovement + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#executionStatus: + description: Enum stating the status of the Activity + items: + $ref: '#/components/schemas/ExecutionStatus' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#fuelType: + description: e.g. Kerosene, Diesel, SAF, Electricity [renewable], Electricity + [non-renewable] + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#distanceMeasured: + description: Information about the measured distance + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#modeCode: + description: Mode of transport code, refer to UNECE Rec. 19 https://unece.org/fileadmin/DAM/cefact/recommendations/rec19/rec19_1cf19e.pdf + items: + $ref: '#/components/schemas/ModeCode' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#fuelAmountMeasured: + description: Information about the measured fuel amount + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedServices: + description: Reference to Services this Activity is executed for + items: + $ref: '#/components/schemas/LogisticsService' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#movementTimes: + description: Information about times related to the movement (milestone + list to be defined) + items: + $ref: '#/components/schemas/MovementTime' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#fuelAmountCalculated: + description: Information about the calculated fuel amount + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#modeQualifier: + description: Pre-Carriage, Main-Carriage or On-Carriage + items: + $ref: '#/components/schemas/ModeQualifier' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#departureLocation: + description: Reference to the depature Location + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#distanceCalculated: + description: Information about the calculated distance + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#arrivalLocation: + description: Reference to the arrival Location + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadingActions: + description: References to all actions of type Loading performed for the + TransportMovement + items: + $ref: '#/components/schemas/Loading' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportIdentifier: + description: Airline flight number, or rail/truck/maritime line id + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#operatingTransportMeans: + description: Reference to the TransportMeans operating the TransportMovement + items: + $ref: '#/components/schemas/TransportMeans' + maxItems: 1 + nullable: true + type: array + type: object + Carrier: + description: Company details of carriers + properties: + https://onerecord.iata.org/ns/cargo#parentOrganization: + description: Reference to the parent Organization + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#airlineCode: + description: IATA two-character airline code + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#basedAtLocation: + description: Reference to the Location where the Organization is based at + or headquartered + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Carrier + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#prefix: + description: IATA three-numeric airline prefix number + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#name: + description: Human-understandable name of object depending on the context + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#iataCargoAgentLocationIdentifier: + description: IATA CASS cargo agent 4 digit branch number / location identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shortName: + description: Short name of the Organization if any + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#iataCargoAgentCode: + description: IATA accredited cargo agent 7 digit number + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#subOrganization: + description: References to all sub-Organizations + items: + $ref: '#/components/schemas/Organization' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + PackageMarkCode: + description: Open code list of indicators of how a package is marked + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#PackageMarkCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ScreeningExemption: + description: Restricted code list corresponding to cXML code list 1.104 Screening + Exemptions + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ScreeningExemption + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ExplosiveCompatibilityGroupCode: + description: 'Source: DGR Table 3.1.A Compatibility group for explosives' + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ExplosiveCompatibilityGroupCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + SignatureTypeCode: + description: 'Source: CITES' + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#SignatureTypeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + AWBUseIndicator: + description: Restricted code list to describe Revenue, Service and Void AWBs + based on CASS 2.0 + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#AWBUseIndicator + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + VolumetricWeight: + description: Volumetric weight details + properties: + https://onerecord.iata.org/ns/cargo#conversionFactor: + description: Volume to weight conversion factor + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#chargeableWeight: + description: Chargeable weight + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#VolumetricWeight + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + Characteristic: + description: Product additional details + properties: + https://onerecord.iata.org/ns/cargo#characteristicType: + description: Product characteristics code - e.g. CLR - Color. Not restricted + to a list. + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Characteristic + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#textualValue: + description: Textual value filled on use context (eg. characteristic colour, + contactDetail mail adress, etc.) + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + TransportMeansServiceType: + description: Restricted code list of possible transport means in transport legs + in carrier bookings + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#TransportMeansServiceType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + EpermitSignature: + description: Signature details of the Epermit for Live Animals + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#EpermitSignature + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#signatoryRole: + description: 'Role of the signatory with regards to the ePermit: Applicant, + Permit issuer, Issuing Authority or Examining authority' + items: + $ref: '#/components/schemas/SignatoryRole' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#securityStampId: + description: Security Stamp ID + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#signatureStatement: + description: Signatory signature authentication text + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#signatoryCompany: + description: Signatory company name + items: + $ref: '#/components/schemas/Company' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#forEpermit: + description: Reference to the LiveAnimalsEpermit this Signature applies + to + items: + $ref: '#/components/schemas/LiveAnimalsEpermit' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#signatureDate: + description: Date and time of the signature + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#signatureTypeCode: + description: Code specifying a type of government action such as inspection, + detention, fumigation, security. + items: + $ref: '#/components/schemas/SignatureTypeCode' + maxItems: 1 + nullable: true + type: array + type: object + Shipment: + description: Shipment details + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#totalVolumetricWeight: + description: Volumetric weight of the whole shipment + items: + $ref: '#/components/schemas/VolumetricWeight' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#goodsDescription: + description: Description of goods, for the BookingShipment the commodity + list defined by Modernizing Cargo Distribution MCD working group can be + used as a referential. + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Shipment + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#waybill: + description: Reference to the Waybill of the shipment + items: + $ref: '#/components/schemas/Waybill' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedParties: + description: Information about other Parties involved depending on the context + of use + items: + $ref: '#/components/schemas/Party' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#totalDimensions: + description: Dimensions of the whole shipment + items: + $ref: '#/components/schemas/Dimensions' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#incoterms: + description: Standard codes as defined by UNCEFACT and ICC that correspond + to international rules for the interpretation of the most commonly used + trade terms in different countries. UNECE recommendation n. 5 Incoterms + 2. + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieces: + description: References to the Pieces that are part of this Shipment + items: + $ref: '#/components/schemas/Piece' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialHandlingCodes: + description: Three-letter special handling code (SPH) + items: + $ref: '#/components/schemas/SpecialHandlingCode' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#totalGrossWeight: + description: Total gross weight of the whole shipment + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#customsInformation: + description: Customs details + items: + $ref: '#/components/schemas/CustomsInformation' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#insurance: + description: Insurance details + items: + $ref: '#/components/schemas/Insurance' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#textualHandlingInstructions: + description: Strings to provide free text handling instructions such as + SSR and OSI + items: + type: string + nullable: true + type: array + type: object + TransactionPurposeCode: + description: Restricted code list of purpose-of-transaction-codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#TransactionPurposeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ActivitySequence: + description: Embedded object to create a sequence of Activities in the context + of a Service + properties: + https://onerecord.iata.org/ns/cargo#sequenceNumber: + description: Short text to detail sequence number (alphanumeric) + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ActivitySequence + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#activity: + description: Reference to the Activity that is performed as part of a Service + items: + $ref: '#/components/schemas/LogisticsActivity' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + UnitComposition: + description: Activity to describe composition and decomposition of LoadingUnits + properties: + https://onerecord.iata.org/ns/cargo#checkActions: + description: References to CheckActions performed for the Activity + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#UnitComposition + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedServices: + description: Reference to Services this Activity is executed for + items: + $ref: '#/components/schemas/LogisticsService' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#compositionIdentifier: + description: Short text holding the process number if necessary + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#executionStatus: + description: Enum stating the status of the Activity + items: + $ref: '#/components/schemas/ExecutionStatus' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#compositionActions: + description: References to all CompositionActions performed for the UnitComposition + items: + $ref: '#/components/schemas/Composing' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadingUnit: + description: Reference to the LoadingUnit composed in the Unit Composition + or referenced in Composing actions + items: + $ref: '#/components/schemas/LoadingUnit' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#slac: + description: Shipper's Load And Count ( total contained piece count as + provided by shipper) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + TemperatureUnitCode: + description: Restricted sub-code list of temperature units from MeasurementUnitCode + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#TemperatureUnitCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Composing: + description: Action to describe build-up or break-down of LoadingUnits + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#composedPieces: + description: References to the Pieces being built-up or broken-down + items: + $ref: '#/components/schemas/Piece' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Composing + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionTimeType: + description: Enum stating the type of the Action + items: + $ref: '#/components/schemas/ActionTimeType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionStartTime: + description: DateTime holding the start time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#performedAt: + description: Reference to the Location the Action was performed at + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#compositionType: + description: Enum stating whether the CompositionAction describes build-up + or break-down + items: + $ref: '#/components/schemas/CompositionType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedActivity: + description: Reference to the Activity the Action was performed for + items: + $ref: '#/components/schemas/LogisticsActivity' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadingUnit: + description: Reference to the LoadingUnit composed in the Unit Composition + or referenced in Composing actions + items: + $ref: '#/components/schemas/LoadingUnit' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#composedMaterials: + description: References to the Materials being built-up or broken-down + items: + $ref: '#/components/schemas/LoadingMaterial' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionEndTime: + description: DateTime holding the end time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + IotDevice: + description: IoT Device details + properties: + https://onerecord.iata.org/ns/cargo#manufacturer: + description: Manufacturing company details and contacts + items: + $ref: '#/components/schemas/Company' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#IotDevice + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#description: + description: Natural language description if required + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#name: + description: Human-understandable name of object depending on the context + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#connectedSensors: + description: Reference to the sensors linked to the device + items: + $ref: '#/components/schemas/Sensor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#deviceModel: + description: Commercial denomination of the device + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#serialNumber: + description: Serial number that allows to uniquely identify the object + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedToObject: + description: Reference to the PhysicalLogisticsObject the IotDevice is attached + to + items: + $ref: '#/components/schemas/PhysicalLogisticsObject' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + BookingOptionRequest: + description: 'Request object, refers to the Quote request or Booking request ' + properties: + https://onerecord.iata.org/ns/cargo#bookingShipmentDetails: + description: Reference to the BookingShipment if required + items: + $ref: '#/components/schemas/BookingShipment' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingOptionRequest + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#involvedParties: + description: Information about other Parties involved depending on the context + of use + items: + $ref: '#/components/schemas/Party' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#timePreferences: + description: Schedule preferences of the request + items: + $ref: '#/components/schemas/BookingTimes' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#bookingToUpdate: + description: Reference to the Booking to update + items: + $ref: '#/components/schemas/Booking' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#unitsPreference: + description: Reference to unit preferences of the request (e.g. kg or cm) + items: + $ref: '#/components/schemas/UnitsPreference' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportLegs: + description: Reference to the Transport Legs of the proposed routing + items: + $ref: '#/components/schemas/TransportLegs' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#carrierProduct: + description: Reference to the Carrier product if known + items: + $ref: '#/components/schemas/CarrierProduct' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#bookingPreference: + description: Reference to the Booking preferences + items: + $ref: '#/components/schemas/BookingPreferences' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#bookingOptions: + description: Reference to all Booking Options + items: + $ref: '#/components/schemas/BookingOption' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#knownShipper: + description: Indication if shipper is a Known Shipper as per TSA grant + items: + maxItems: 1 + type: boolean + nullable: true + type: array + type: object + EntitlementCode: + description: Restricted code list corresponding to cXML code list 1.3 Entitlement + Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#EntitlementCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + AircraftPossibilityCode: + description: Restricted code list corresponding to cXML code list 1.46 Aircraft + Possibility Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#AircraftPossibilityCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ChargeCode: + description: Restricted code list corresponding to cXML code list 1.1 Charge + Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ChargeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + SignatoryRole: + description: Restricted code list indicating the role of the signatory in CITES + context + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#SignatoryRole + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ModeCode: + description: Restricted Code List of mode codes, UNECE Recommendation No. 19 + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ModeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Storage: + description: Activity to describe storing processes + properties: + https://onerecord.iata.org/ns/cargo#checkActions: + description: References to CheckActions performed for the Activity + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Storage + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedServices: + description: Reference to Services this Activity is executed for + items: + $ref: '#/components/schemas/LogisticsService' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#storingIdentifier: + description: Short text holding the process number if necessary + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#executionStatus: + description: Enum stating the status of the Activity + items: + $ref: '#/components/schemas/ExecutionStatus' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#storingActions: + description: References to all StoringActions performed for the Storing + Activity + items: + $ref: '#/components/schemas/Storing' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + Price: + description: Price associated to the offer/booking + properties: + https://onerecord.iata.org/ns/cargo#forBookingOption: + description: Reference to the BookingOption the LogisticsObject is detailling + items: + $ref: '#/components/schemas/BookingOption' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#chargeCode: + description: Charge code, refer to CargoXML Code List 1.1 + items: + $ref: '#/components/schemas/ChargeCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Price + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#ratings: + description: Rating used for pricing + items: + $ref: '#/components/schemas/Ratings' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#grandTotal: + description: Total price + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + Value: + description: Unit of measurement details + properties: + https://onerecord.iata.org/ns/cargo#unit: + description: Unit of measurement as per MeasurementUnitCode codelist. If + the code is not present, create an instance of MeasurementUnitCode based + on UNECE Rec. 20 Rev. 17e-2021 + items: + $ref: '#/components/schemas/MeasurementUnitCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#numericalValue: + description: Numerical value + items: + maxItems: 1 + type: number + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Value + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + type: object + ULDLoadingIndicator: + description: Restricted code list corresponding to cXML code list 1.47 ULD Loading + Indicators + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ULDLoadingIndicator + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + TransportLegs: + description: TransportLegs details + properties: + https://onerecord.iata.org/ns/cargo#departureDate: + description: Departure date and time of the leg + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#co2Emissions: + description: References to CO2Emissions + items: + $ref: '#/components/schemas/CO2Emissions' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#TransportLegs + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#arrivalDate: + description: Arrival date and time of the leg + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportMeansServiceType: + description: Type of transport means service, e.g. Aircraftor Truck + items: + $ref: '#/components/schemas/TransportMeansServiceType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#legNumber: + description: Leg number + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#departureLocation: + description: Reference to the depature Location + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportMeansType: + description: Type of transport means, e.g. 744, RFS + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#arrivalLocation: + description: Reference to the arrival Location + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#transportIdentifier: + description: Airline flight number, or rail/truck/maritime line id + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + LoadType: + description: Restricted code list for the Load Type of a piece or shipment + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LoadType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + CheckTotalResult: + description: CheckTotalResult holds the result of a Check and should be provided + by the party executing and accounting for the check result + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#resultOfCheck: + description: Description not available + items: + $ref: '#/components/schemas/Check' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checkRemark: + description: Free text remarks to the check result + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#certifiedByActor: + description: Reference to the Actor certifying the result of the Check if + required + items: + $ref: '#/components/schemas/Person' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CheckTotalResult + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#passed: + description: Boolean indicating whether the Check was passed + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#resultValue: + description: Information about a result Value of any kind of the Check + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + Sensor: + description: Sensor details and measurements, linked to Connected Devices + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#measurements: + description: Reference to the Measurements recorded by the Sensor + items: + $ref: '#/components/schemas/Measurement' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Sensor + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#description: + description: Natural language description if required + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#name: + description: Human-understandable name of object depending on the context + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#partOfIotDevice: + description: Reference to the IoT Device to which the sensor is linked + items: + $ref: '#/components/schemas/IotDevice' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#serialNumber: + description: Serial number that allows to uniquely identify the object + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#sensorType: + description: Type of sensor as described in Interactive Cargo Recommended + Practice + items: + $ref: '#/components/schemas/SensorType' + maxItems: 1 + nullable: true + type: array + type: object + Measurement: + description: Measurements details for Sensors, either generic or geolocation + measurements are recorded + properties: + https://onerecord.iata.org/ns/cargo#measurementTimestamp: + description: Timestamp for the measurement + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#measurementValue: + description: Information about all non-Geolocation values of the measurement + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Measurement + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#recordedGeolocation: + description: Reference to the Geolocation recorded of the measurement + items: + $ref: '#/components/schemas/Geolocation' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + DgRadioactiveIsotope: + description: Details of the radioactive isotope contained in the product + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contentOfDgProductRadioactive: + description: Reference to the DgProductRadioactive this Isotope is contained + in + items: + $ref: '#/components/schemas/DgProductRadioactive' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#DgRadioactiveIsotope + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#specialFormIndicator: + description: A notation that the material is special form + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#isotopeId: + description: Id of each radionuclide or for mixtures of radionuclides. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#physicalChemicalForm: + description: A description of the physical and chemical form of the material. + items: + $ref: '#/components/schemas/RadioactiveMaterialClassification' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#activityLevelMeasure: + description: Numeric expression of the activity of a radioactive Item + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#criticalitySafetyIndexNumeric: + description: Applies to fissile material only, other than fissile excepted. + A numeric value expressed to one decimal place preceded by the letters + CSI. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#lowDispersibleIndicator: + description: A notation that the material is low dispersible radioactive + material. + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#isotopeName: + description: 'The name or symbol of each radionuclide or for mixtures of + radionuclides, an appropriate general description, or a list of the most + restrictive radionuclides. ' + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + PackagingDangerLevelCode: + description: Restricted code lists for indication of the relative degree of + danger presented by substances within a class or division + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#PackagingDangerLevelCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + RadioactiveMaterialClassification: + description: Restricted code list based on DGR 10.3.3 + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#RadioactiveMaterialClassification + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + BookingTimes: + description: Previsouly called Schedule. This object refers to times used for + the Booking Option Request (preferences part of the request) or the Booking + Option (times sur as LAT where there is a commitment from the carrier) + properties: + https://onerecord.iata.org/ns/cargo#latestAcceptanceTime: + description: Latest Acceptance time as per CargoIQ definition (requested, + proposed or actual) + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#totalTransitTime: + description: Total transit time as per CargoIQ definition, expressed as + a duration + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#latestArrivalTime: + description: Latest arrival time at destination + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#timeOfAvailability: + description: Time of availability of the shipment as per CargoIQ definition + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingTimes + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#earliestAcceptanceTime: + description: Earliest acceptance date time (requested or proposed) + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + type: object + ContactDetailType: + description: Open code list for types of contact details + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ContactDetailType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + CO2Emissions: + description: CO2 Calculation + properties: + https://onerecord.iata.org/ns/cargo#methodName: + description: Name of the CO2 calculation method + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CO2Emissions + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#calculationFor: + description: Reference to the TransportMovement or TransportLegs the CO2Emissions + have been calculated for + items: + $ref: '#/components/schemas/LogisticsObject' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#calculatedEmissions: + description: CO2 emissions calculated + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#methodVersion: + description: Version used for the calculation + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + LogisticsObject: + description: Logistics Object parent class, containing all common properties + for logistics objects. + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LogisticsObject + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + Waybill: + description: Waybill details + properties: + https://onerecord.iata.org/ns/cargo#declaredValueForCarriage: + description: The value of a shipment declared for carriage purposes + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shipment: + description: Reference to the Shipment + items: + $ref: '#/components/schemas/Shipment' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Waybill + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#destinationCurrencyRate: + description: Conversion rate applied + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#billingDetails: + description: Reference to the BillingDetails of the Waybill + items: + $ref: '#/components/schemas/BillingDetails' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shippingRefNo: + description: Optional shipping reference number if any + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shippingInfo: + description: The shipper or its Agent may enter the appropriate optional + shipping + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherCharges: + description: Information about Other Charges applying to this Waybill + items: + $ref: '#/components/schemas/OtherCharge' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#customsOriginCode: + description: "Code indicating the origin of goods for Customs purposes (e.g.\ + \ For goods in free circulation in the EU) \nList to be provided by local\ + \ authorities" + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#carrierDeclarationPlace: + description: Location of individual or company involved in the movement + of a consignment or Coded representation of a specific airport/city code + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#accountingInformation: + description: Indicates the details of accounting information. Free text + e.g. PAYMENT BY CERTIFIED CHEQUE etc. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#declaredValueForCustoms: + description: The value of a shipment declared for customs purposes + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#carrierDeclarationDate: + description: Date upon which the certification is made by the carrier + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#destinationCharges: + description: Charges levied at destination accruing to the last carrier, + in destination currency + items: + $ref: '#/components/schemas/CurrencyValue' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#carrierChargeCode: + description: One letter charge code as per bullet point 12 - data element + 13 from AWB + items: + $ref: '#/components/schemas/ChargeCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#houseWaybills: + description: Refers to the Waybill(s) contained + items: + $ref: '#/components/schemas/Waybill' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#consignorDeclarationSignature: + description: Name of consignor signatory + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedParties: + description: Information about other Parties involved depending on the context + of use + items: + $ref: '#/components/schemas/Party' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#weightValuationIndicator: + description: Indicator whether the payment for the Weight/Valuation is to + be made at origin (prepaid) or at destination (collect) as per bullet + point 13 - data element 14a/14b from AWB + items: + $ref: '#/components/schemas/PrepaidCollectIndicator' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherChargesIndicator: + description: Indicator whether the payment of Other Charges is to be made + at origin (prepaid) or at destination (collect) as per bullet point 13 + - data element 15a/15b from AWB + items: + $ref: '#/components/schemas/PrepaidCollectIndicator' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#modularCheckNumber: + description: The check is a Modular 7 validation on the AWB number, recorded + as a boolean. + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#waybillType: + description: 'Type of the Waybill: House, Direct or Master' + items: + $ref: '#/components/schemas/WaybillType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#departureLocation: + description: Reference to the depature Location + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#masterWaybill: + description: Reference to the master Waybill if it is contained in one + items: + $ref: '#/components/schemas/Waybill' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#arrivalLocation: + description: Reference to the arrival Location + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#waybillPrefix: + description: Prefix used for the Waybill Number. Refer to IATA Airlines + Codes + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#referredBookingOption: + description: Refers to the Booking + items: + $ref: '#/components/schemas/Booking' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#carrierDeclarationSignature: + description: Contains the authentication of the Carrier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#serviceCode: + description: One letter service code as per bullet point 18.4 - data element + 22Z from AWB + items: + $ref: '#/components/schemas/ServiceCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#waybillNumber: + description: House or Master Waybill unique identifier + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#waybillLineItems: + description: Information about rates applying to this Waybill handled as + line item + items: + $ref: '#/components/schemas/WaybillLineItem' + nullable: true + type: array + type: object + StoringType: + description: Restricted code list for Storing subtypes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#StoringType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Storing: + description: Action to describe store-in or store-out + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Storing + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contactPersons: + description: References to Actors (Person, NonHumanActor) acting as contacts + items: + $ref: '#/components/schemas/Actor' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionTimeType: + description: Enum stating the type of the Action + items: + $ref: '#/components/schemas/ActionTimeType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionStartTime: + description: DateTime holding the start time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contactDetails: + description: Information about contactDetails + items: + $ref: '#/components/schemas/ContactDetail' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#performedAt: + description: Reference to the Location the Action was performed at + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#storedObjects: + description: Reference to the Objects being stored in or stored out + items: + $ref: '#/components/schemas/PhysicalLogisticsObject' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#storingType: + description: Enum stating whether the StoringAction describes the store-in + or the store-out + items: + $ref: '#/components/schemas/StoringType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#servedActivity: + description: Reference to the Activity the Action was performed for + items: + $ref: '#/components/schemas/LogisticsActivity' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#actionEndTime: + description: DateTime holding the end time of the Action; Type is indicated + through ActionType property + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#storagePlaceIdentifier: + description: Short text stating the exact place of storage + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + type: object + SecurityStatus: + description: Restricted code list corresponding to cXML code list 1.103 Security + Statuses + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#SecurityStatus + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + BookingStatus: + description: Restricted code list containing the possible statuses of a booking + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BookingStatus + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + VolumePieceGroup: + description: VolumePieceGroup details + properties: + https://onerecord.iata.org/ns/cargo#pieceGroupGrossWeight: + description: Total gross weight of the piece group + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#totalVolume: + description: Total volume fo the volume piece group + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dryIceWeight: + description: Weight of dry ice + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceGroupId: + description: Identifier of the piece group, increasing integers + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#VolumePieceGroup + type: string + nullable: false + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#stackable: + description: Stackable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#pieceGroupCount: + description: Number of pieces in the piece group + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + type: object + PieceLiveAnimals: + description: LiveAnimals subclass of Piece + properties: + https://onerecord.iata.org/ns/cargo#exportTradeCountry: + description: Country of last re-export (box 12a). Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#goodsDescription: + description: Description of goods, for the BookingShipment the commodity + list defined by Modernizing Cargo Distribution MCD working group can be + used as a referential. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#speciesScientificName: + description: Species scientific name (box 7) + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#ofShipment: + description: Reference to the Shipment the Piece is assigned to + items: + $ref: '#/components/schemas/Shipment' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#volumetricWeight: + description: Volumetric weight details + items: + $ref: '#/components/schemas/VolumetricWeight' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#associatedEpermit: + description: Reference to the permits associated with the Live Animals + items: + $ref: '#/components/schemas/EpermitConsignment' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packagingType: + description: 'Packaging details ' + items: + $ref: '#/components/schemas/PackagingType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#fulfillsUldTypeCode: + description: Text holding an ULD Type Code if the Piece fulfills it before + UnitComposition + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#goodsTypeCode: + description: Appendix number of the convention (I, II or III) (box 1) + items: + $ref: '#/components/schemas/GoodsTypeCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specimenDescription: + description: Description of specimens, including age and sex if LA (box + 9) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#originReferencePermitTypeCode: + description: Document type code of origin reference permit or re-export + reference Certificate (box 12/12a) + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#goodsTypeExtensionCode: + description: Appendix number of the convention (I, II or III) (box 1) + items: + $ref: '#/components/schemas/GoodsTypeExtensionCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#originTradeCountry: + description: country of origin (box 12). Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#originReferencePermitDateTime: + description: Issuing date for Origin reference permit or re-export reference + Certificate (box 12) + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#upid: + description: Unique Piece Identifier (UPID) of the piece. Refer IATA Recommended + Practice 1689 + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#PieceLiveAnimals + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#contentProducts: + description: Reference to the Products describing the content of the Piece, + mandatory if no data on Item level is used + items: + $ref: '#/components/schemas/Product' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#originReferencePermitId: + description: identifier of Origin reference permit or re-export reference + Certificate (box 12/12a) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#dimensions: + description: Dimensions details + items: + $ref: '#/components/schemas/Dimensions' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#quantityAnimals: + description: Quantity including units (box 11) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#containedPieces: + description: Details of contained piece(s) + items: + $ref: '#/components/schemas/Piece' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packageMarkCoded: + description: Reference identifying how the package is marked. Field is hardcode + to "SSCC-18", "UPC" or "Other" + items: + $ref: '#/components/schemas/PackageMarkCode' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#inPiece: + description: Reference to the Piece this Item or Piece is contained in + items: + $ref: '#/components/schemas/Piece' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#nvdForCustoms: + description: When no value is declared for Customs, this field may be completed + with the value TRUE otherwise FALSE + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#speciesCommonName: + description: Species common name (box 8) + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#shippingMarks: + description: Shipping marks + items: + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#categoryCode: + description: Operations code ID. Refers to the number of the registered + captive-breeding or artifical propagation operation (box 12b) + items: + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#acquisitionDateTime: + description: Defined in Resolution Conf. 13.6 and is required for pre-Convention + specimens (box 12b) + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#nvdForCarriage: + description: When no value is declared for Carriage, this field may be completed + with the value TRUE otherwise FALSE + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#securityDeclarations: + description: Security details of the piece + items: + $ref: '#/components/schemas/SecurityDeclaration' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#loadType: + description: Load type of the shipment or piece (Bulk, ULD, Pallet, Loose) + items: + $ref: '#/components/schemas/LoadType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedParties: + description: Information about other Parties involved depending on the context + of use + items: + $ref: '#/components/schemas/Party' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#stackable: + description: Stackable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#packagedeIdentifier: + description: SSCC-18 code for the value of the package mark, company or + bar code, free text, pallet code, etc. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#grossWeight: + description: Weight details + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#coload: + description: Coload indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#containedItems: + description: Reference to the item(s) contained in the piece + items: + $ref: '#/components/schemas/Item' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#contentProductionCountry: + description: Goods production country, mandatory when there are no Items. + Refer ISO 3166-2 + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#slac: + description: Shipper's Load And Count ( total contained piece count as + provided by shipper) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specialHandlingCodes: + description: Three-letter special handling code (SPH) + items: + $ref: '#/components/schemas/SpecialHandlingCode' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#specimenTypeCode: + description: Description of specimens, CITES type code (box 9) + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#customsInformation: + description: Customs details + items: + $ref: '#/components/schemas/CustomsInformation' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#annualQuotaQuantity: + description: total number of specimens exported in the current calendar + year and the current annuela quota for the species concerned (box 11a) + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#otherIdentifiers: + description: Details about any other identifier, depending on the context + of use + items: + $ref: '#/components/schemas/OtherIdentifier' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#turnable: + description: Turnable indicator for the pieces (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + type: object + RateClassCode: + description: Restricted code list corresponding to cXML code list 1.4 Rate Class + Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#RateClassCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + PackagingType: + description: 'Packaging details ' + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#PackagingType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#description: + description: Natural language description if required + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#appliedOnPieces: + description: Piece on which the Packaging type is applicable + items: + $ref: '#/components/schemas/Piece' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#typeCode: + description: 'Packaging type identifier as per UNECE Rec 21 Annex V and + VI e.g. 1A - Drum, steel - Packaging material code. Identifies the Logistic + Unit package type. UN Recommendation on Transport of Dangerous Goods, + Model Regulations ' + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + PhysicalLogisticsObject: + description: 'Superclass: PhysicalLogisticObjects represent the digital twin + of an object in the logistics suppy chain that physically exist' + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#PhysicalLogisticsObject + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + LoadingType: + description: Restricted code list for Loading subtypes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LoadingType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + SensorType: + description: Open code list for sensor types + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#SensorType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ShipmentSecurityStatus: + description: Restricted code list indicating whether a shipment is secured or + not secured + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ShipmentSecurityStatus + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + ModeQualifier: + description: Open code list for transport modes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#ModeQualifier + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + GoodsTypeCode: + description: 'Source: CITES' + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#GoodsTypeCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + BasicRateClassCode: + description: Restricted sub-code list corresponding to elements of cXML code + list 1.4 Rate Class Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#BasicRateClassCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + TransportMeans: + description: Transport means details + properties: + https://onerecord.iata.org/ns/cargo#typicalFuelConsumption: + description: Typical fuel comsumption (e.g. 2 L / 1 nm) + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#TransportMeans + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#typicalCo2Coefficient: + description: Required for some CO2 calculations + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#transportOrganization: + description: Company operating the transport means + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#vehicleType: + description: Vehicle or container type. Refer UNECE28, e.g. 4.. - Aircraft, + type unknown.For Air refer to IATA Standard Schedules Information Manua + in section ATA/IATA Aircraft Types + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#operatedTransportMovement: + description: Transport Movement on which the Transport Means is used + items: + $ref: '#/components/schemas/TransportMovement' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#vehicleRegistration: + description: Vehicle identification - e.g. aircraft registration number + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#vehicleModel: + description: Model or make of the vehicle (e.g. A33-3) + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#vehicleSize: + description: Size of the vehicle - free text + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + BillingDetails: + description: In the context of CASS2. process, BillingDetails object is used + to integrate specific Billing and Settlement data requirements + properties: + https://onerecord.iata.org/ns/cargo#nbCorrections: + description: Number of corrections to CASS records + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#vatIndicator: + description: Indicate if subject to VAT (boolean) + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#awbUseIndicator: + description: It must either contain the values of R for Revenue AWB, V for + Void AWB or S for Service AWB. + items: + $ref: '#/components/schemas/AWBUseIndicator' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#awbDeliveryDate: + description: The Date AWB Delivery is also used as the AWB Execution date + which will determine which billing period it will be processed and billed + in. + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#adjustments: + description: Information about Adjustments performed on the BillingDetails + items: + $ref: '#/components/schemas/Adjustments' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#commissionIndicator: + description: Indicates if commission is applied. Boolean + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#discount: + description: This is used as a discount to the “official” transportation + charge on AWB to arrive at actual selling price + items: + maxItems: 1 + type: number + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#BillingDetails + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#exchangeRate: + description: The Rate at which the Air Waybill Amount has been multiplied + to arrive at the amount of settlement. + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#taxDueAirline: + description: Tax due Airline (as per AWB, or VAT/GST as per invoice). Total + VAT/TAX amount payable by agent to airline + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#awbAcceptanceDate: + description: The Date AWB Acceptance should be the same as the Date AWB + Delivery. (beginning of the process) + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#taxDueAgent: + description: Tax due Agent (VAT/GST on Commission). Total VAT/TAX amount + payable by airline to agent + items: + $ref: '#/components/schemas/CurrencyValue' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#awbExecutionDate: + description: The AWB execution date determines which billing period the + document will be processed and billed in. + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#commission: + description: The commission amount in favour of the Cargo Agent/Associate, + applicable for the shipment concerned + items: + maxItems: 1 + type: number + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#detailedWaybill: + description: Reference to the Waybill + items: + $ref: '#/components/schemas/Waybill' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#commissionPercentage: + description: The commission percentage in favour of the Cargo Agent/Associate, + applicable for the shipment concerned + items: + maxItems: 1 + type: number + nullable: true + type: array + type: object + NonHumanActor: + description: Non-human actors are actors which are not a person, such as robots + properties: + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#NonHumanActor + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#associatedOrganization: + description: Reference to the Organization the Actor is associated with + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + MovementTimeType: + description: Restricted code list for MovementTime subtypes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#MovementTimeType + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Answer: + description: Answer holds the answer to one Question and is provided by the + executioner of the check + properties: + https://onerecord.iata.org/ns/cargo#answerValue: + description: Information about an answer Value of any kind of the Answer + items: + $ref: '#/components/schemas/Value' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Answer + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#text: + description: Text for the Answer + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#question: + description: Reference to the Question the Answer is for + items: + $ref: '#/components/schemas/Question' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#givenAtLocation: + description: Reference to the Location from which the Question was answered, + relevant for split checks with documentary and physical elements + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#answerActor: + description: Reference to the Actor giving the Answer + items: + $ref: '#/components/schemas/Actor' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + type: object + CodeListElement: + description: Embedded object to transmit codes from non-RDF code lists in 1R + in a semi-structured way. Code lists may be externally maintained codes (such + as HS codes) or carrier-specific codes. If a code is present in RDF-form as + Named Individual (like in the 1R core code lists ontology), it suffices to + put in its IRI + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Integer indicating the level of a code if a codelists is hierarchical, + for example HS-Codes + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Official name of the code list without version number when + direct reference is not possible, for example "UN/LOCODE" when referring + to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CodeListElement + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Version of the code list, for example "223-1" for UN/LOCODE. + Used if the property codeListName is used or the version is not apparent + from the resource referred to in property codeListReference. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description or long version of the code, for example "Switzerland" + for Switzerland when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: URL to access the code list the code is taken from, for example + "https://unece.org/trade/cefact/unlocode-code-list-country-and-territory" + for UN/LOCODE. + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Code or short version of a code, for example "CH" for Switzerland + when referring to the UN/LOCODE code list + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + LogisticsEvent: + description: Event details + properties: + https://onerecord.iata.org/ns/cargo#eventFor: + description: Refers to the URI of the linked object(s) + items: + $ref: '#/components/schemas/LogisticsObject' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#eventLocation: + description: Location of event + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#eventDate: + description: Date and time of the event + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#eventCode: + description: Movement or milestone code. Can hold a named individual of + the StatusCode core code list (corresponding to cXML code list 1.18), + but can also be referring to different code lists. + items: + $ref: '#/components/schemas/CodeListElement' + maxItems: 1 + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#LogisticsEvent + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#creationDate: + description: DateTime at which the LogisticsEvent was posted + items: + format: date-time + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#recordingOrganization: + description: Organization recording the LogisticsEvent + items: + $ref: '#/components/schemas/Organization' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#eventName: + description: If no EventCode provided, event name - e.g. Security clearance + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#eventTimeType: + description: Indicates type of event e.g. Scheduled, Estimated, Actual + items: + $ref: '#/components/schemas/EventTimeType' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#partialEventIndicator: + description: Boolean indicating that the LogisticsEvent is only applicable + for parts of the LogisticObject it was recorded for, for example for some + Pieces of a Shipment + items: + maxItems: 1 + type: boolean + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#recordingActor: + description: Reference to the Actor recording the LogisticsEvent + items: + $ref: '#/components/schemas/Actor' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + CurrencyValue: + description: Embedded object to transmit currencies + properties: + https://onerecord.iata.org/ns/cargo#numericalValue: + description: Numerical value + items: + maxItems: 1 + type: number + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#CurrencyValue + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#currencyUnit: + description: Information about the currency used in a CurrencyValue. Create + an instance of CurrencyCode based on ISO 4217 + items: + $ref: '#/components/schemas/CurrencyCode' + maxItems: 1 + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + type: object + ULDConditionCode: + description: Restricted code list corresponding to cXML code list 1.21 ULD Condition + Codes + properties: + https://onerecord.iata.org/ns/cargo#codeLevel: + description: Description not available + items: + format: int32 + maxItems: 1 + type: integer + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeListName: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/coreCodeLists#ULDConditionCode + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#codeListVersion: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#codeDescription: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#codeListReference: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#code: + description: Description not available + items: + maxItems: 1 + type: string + nullable: true + type: array + type: object + Location: + description: Location describes a physical location, e.g. an airport, a warehouse + or a truck deck + properties: + https://onerecord.iata.org/ns/cargo#address: + description: Address details + items: + $ref: '#/components/schemas/Address' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#onsiteActions: + description: References to the Actions happening at the Location + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#skeletonIndicator: + description: Indicator whether a logistics object is a skeleton object + items: + maxItems: 1 + type: boolean + nullable: true + type: array + '@type': + description: Type of the resource + items: + enum: + - https://onerecord.iata.org/ns/cargo#Location + type: string + nullable: false + type: array + https://onerecord.iata.org/ns/cargo#events: + description: Events object + items: + $ref: '#/components/schemas/LogisticsEvent' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#involvedInActions: + description: References to the Actions the object is involved in + items: + $ref: '#/components/schemas/LogisticsAction' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#locationCodes: + description: Location code of airport, freight terminal, seaport, rail station. + UN/LOCODE city code (5 letter) or IATA airport code (3 letter) + items: + $ref: '#/components/schemas/CodeListElement' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#checks: + description: References to the CheckActions performed on the object + items: + $ref: '#/components/schemas/Check' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#locationType: + description: Location type - e.g. Airport, Freight terminal, Rail station, + Seaport, etc + items: + maxItems: 1 + type: string + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#geolocation: + description: Geolocation details + items: + $ref: '#/components/schemas/Geolocation' + maxItems: 1 + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#externalReferences: + description: References to all associated ExternalReferences + items: + $ref: '#/components/schemas/ExternalReference' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#attachedIotDevices: + description: References to all connected IotDevices + items: + $ref: '#/components/schemas/IotDevice' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#locationName: + description: Full name of the location + items: + maxItems: 1 + type: string + nullable: true + type: array + '@id': + description: Resource Identifier + type: string + https://onerecord.iata.org/ns/cargo#subLocations: + description: References to Sublocations that describe the Location in more + detail + items: + $ref: '#/components/schemas/Location' + nullable: true + type: array + https://onerecord.iata.org/ns/cargo#subLocationOf: + description: Reference to the Location this is a Sublocation of + items: + $ref: '#/components/schemas/Location' + maxItems: 1 + nullable: true + type: array + type: object diff --git a/assets/images/favicon.png b/assets/images/favicon.png new file mode 100644 index 00000000..1cf13b9f Binary files /dev/null and b/assets/images/favicon.png differ diff --git a/assets/javascripts/bundle.fe8b6f2b.min.js b/assets/javascripts/bundle.fe8b6f2b.min.js new file mode 100644 index 00000000..cf778d42 --- /dev/null +++ b/assets/javascripts/bundle.fe8b6f2b.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Fi=Object.create;var gr=Object.defineProperty;var ji=Object.getOwnPropertyDescriptor;var Wi=Object.getOwnPropertyNames,Dt=Object.getOwnPropertySymbols,Ui=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty,no=Object.prototype.propertyIsEnumerable;var oo=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))xr.call(t,r)&&oo(e,r,t[r]);if(Dt)for(var r of Dt(t))no.call(t,r)&&oo(e,r,t[r]);return e};var io=(e,t)=>{var r={};for(var o in e)xr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Dt)for(var o of Dt(e))t.indexOf(o)<0&&no.call(e,o)&&(r[o]=e[o]);return r};var yr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Di=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Wi(t))!xr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=ji(t,n))||o.enumerable});return e};var Vt=(e,t,r)=>(r=e!=null?Fi(Ui(e)):{},Di(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var ao=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var co=yr((Er,so)=>{(function(e,t){typeof Er=="object"&&typeof so!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(H){return!!(H&&H!==document&&H.nodeName!=="HTML"&&H.nodeName!=="BODY"&&"classList"in H&&"contains"in H.classList)}function p(H){var mt=H.type,ze=H.tagName;return!!(ze==="INPUT"&&a[mt]&&!H.readOnly||ze==="TEXTAREA"&&!H.readOnly||H.isContentEditable)}function c(H){H.classList.contains("focus-visible")||(H.classList.add("focus-visible"),H.setAttribute("data-focus-visible-added",""))}function l(H){H.hasAttribute("data-focus-visible-added")&&(H.classList.remove("focus-visible"),H.removeAttribute("data-focus-visible-added"))}function f(H){H.metaKey||H.altKey||H.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(H){o=!1}function h(H){s(H.target)&&(o||p(H.target))&&c(H.target)}function w(H){s(H.target)&&(H.target.classList.contains("focus-visible")||H.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(H.target))}function A(H){document.visibilityState==="hidden"&&(n&&(o=!0),te())}function te(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function ie(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(H){H.target.nodeName&&H.target.nodeName.toLowerCase()==="html"||(o=!1,ie())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",A,!0),te(),r.addEventListener("focus",h,!0),r.addEventListener("blur",w,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var Yr=yr((Rt,Kr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Rt=="object"&&typeof Kr=="object"?Kr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Rt=="object"?Rt.ClipboardJS=r():t.ClipboardJS=r()})(Rt,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ii}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(_){return!1}}var h=function(_){var M=f()(_);return u("cut"),M},w=h;function A(V){var _=document.documentElement.getAttribute("dir")==="rtl",M=document.createElement("textarea");M.style.fontSize="12pt",M.style.border="0",M.style.padding="0",M.style.margin="0",M.style.position="absolute",M.style[_?"right":"left"]="-9999px";var j=window.pageYOffset||document.documentElement.scrollTop;return M.style.top="".concat(j,"px"),M.setAttribute("readonly",""),M.value=V,M}var te=function(_,M){var j=A(_);M.container.appendChild(j);var D=f()(j);return u("copy"),j.remove(),D},ie=function(_){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},j="";return typeof _=="string"?j=te(_,M):_ instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(_==null?void 0:_.type)?j=te(_.value,M):(j=f()(_),u("copy")),j},J=ie;function H(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?H=function(M){return typeof M}:H=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},H(V)}var mt=function(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=_.action,j=M===void 0?"copy":M,D=_.container,Y=_.target,ke=_.text;if(j!=="copy"&&j!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&H(Y)==="object"&&Y.nodeType===1){if(j==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(j==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(ke)return J(ke,{container:D});if(Y)return j==="cut"?w(Y):J(Y,{container:D})},ze=mt;function Ie(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ie=function(M){return typeof M}:Ie=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},Ie(V)}function _i(V,_){if(!(V instanceof _))throw new TypeError("Cannot call a class as a function")}function ro(V,_){for(var M=0;M<_.length;M++){var j=_[M];j.enumerable=j.enumerable||!1,j.configurable=!0,"value"in j&&(j.writable=!0),Object.defineProperty(V,j.key,j)}}function Ai(V,_,M){return _&&ro(V.prototype,_),M&&ro(V,M),V}function Ci(V,_){if(typeof _!="function"&&_!==null)throw new TypeError("Super expression must either be null or a function");V.prototype=Object.create(_&&_.prototype,{constructor:{value:V,writable:!0,configurable:!0}}),_&&br(V,_)}function br(V,_){return br=Object.setPrototypeOf||function(j,D){return j.__proto__=D,j},br(V,_)}function Hi(V){var _=Pi();return function(){var j=Wt(V),D;if(_){var Y=Wt(this).constructor;D=Reflect.construct(j,arguments,Y)}else D=j.apply(this,arguments);return ki(this,D)}}function ki(V,_){return _&&(Ie(_)==="object"||typeof _=="function")?_:$i(V)}function $i(V){if(V===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return V}function Pi(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(V){return!1}}function Wt(V){return Wt=Object.setPrototypeOf?Object.getPrototypeOf:function(M){return M.__proto__||Object.getPrototypeOf(M)},Wt(V)}function vr(V,_){var M="data-clipboard-".concat(V);if(_.hasAttribute(M))return _.getAttribute(M)}var Ri=function(V){Ci(M,V);var _=Hi(M);function M(j,D){var Y;return _i(this,M),Y=_.call(this),Y.resolveOptions(D),Y.listenClick(j),Y}return Ai(M,[{key:"resolveOptions",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Ie(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function(ke){return Y.onClick(ke)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,ke=this.action(Y)||"copy",Ut=ze({action:ke,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Ut?"success":"error",{action:ke,text:Ut,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return w(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,ke=!!document.queryCommandSupported;return Y.forEach(function(Ut){ke=ke&&!!document.queryCommandSupported(Ut)}),ke}}]),M}(s()),Ii=Ri},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,h,w){var A=c.apply(this,arguments);return l.addEventListener(u,A,w),{destroy:function(){l.removeEventListener(u,A,w)}}}function p(l,f,u,h,w){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(A){return s(A,f,u,h,w)}))}function c(l,f,u,h){return function(w){w.delegateTarget=a(w.target,f),w.delegateTarget&&h.call(l,w)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,h,w){if(!u&&!h&&!w)throw new Error("Missing required arguments");if(!a.string(h))throw new TypeError("Second argument must be a String");if(!a.fn(w))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,h,w);if(a.nodeList(u))return l(u,h,w);if(a.string(u))return f(u,h,w);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,h,w){return u.addEventListener(h,w),{destroy:function(){u.removeEventListener(h,w)}}}function l(u,h,w){return Array.prototype.forEach.call(u,function(A){A.addEventListener(h,w)}),{destroy:function(){Array.prototype.forEach.call(u,function(A){A.removeEventListener(h,w)})}}}function f(u,h,w){return s(document.body,u,h,w)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var ts=/["'&<>]/;ei.exports=rs;function rs(e){var t=""+e,r=ts.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||s(u,h)})})}function s(u,h){try{p(o[u](h))}catch(w){f(i[0][3],w)}}function p(u){u.value instanceof nt?Promise.resolve(u.value.v).then(c,l):f(i[0][2],u)}function c(u){s("next",u)}function l(u){s("throw",u)}function f(u,h){u(h),i.shift(),i.length&&s(i[0][0],i[0][1])}}function mo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof de=="function"?de(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function k(e){return typeof e=="function"}function ft(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ft(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Fe=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=de(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(A){t={error:A}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(k(l))try{l()}catch(A){i=A instanceof zt?A.errors:[A]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=de(f),h=u.next();!h.done;h=u.next()){var w=h.value;try{fo(w)}catch(A){i=i!=null?i:[],A instanceof zt?i=q(q([],N(i)),N(A.errors)):i.push(A)}}}catch(A){o={error:A}}finally{try{h&&!h.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)fo(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Fe.EMPTY;function qt(e){return e instanceof Fe||e&&"closed"in e&&k(e.remove)&&k(e.add)&&k(e.unsubscribe)}function fo(e){k(e)?e():e.unsubscribe()}var $e={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var ut={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Fe(function(){o.currentObservers=null,qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,o){return new Eo(r,o)},t}(F);var Eo=function(e){re(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){re(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var Lt={now:function(){return(Lt.delegate||Date).now()},delegate:void 0};var _t=function(e){re(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=Lt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(vt);var So=function(e){re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(gt);var Hr=new So(To);var Oo=function(e){re(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=bt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(bt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(vt);var Mo=function(e){re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(gt);var me=new Mo(Oo);var O=new F(function(e){return e.complete()});function Yt(e){return e&&k(e.schedule)}function kr(e){return e[e.length-1]}function Xe(e){return k(kr(e))?e.pop():void 0}function He(e){return Yt(kr(e))?e.pop():void 0}function Bt(e,t){return typeof kr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return k(e==null?void 0:e.then)}function Jt(e){return k(e[ht])}function Xt(e){return Symbol.asyncIterator&&k(e==null?void 0:e[Symbol.asyncIterator])}function Zt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Gi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Gi();function tr(e){return k(e==null?void 0:e[er])}function rr(e){return lo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return k(e==null?void 0:e.getReader)}function W(e){if(e instanceof F)return e;if(e!=null){if(Jt(e))return Ji(e);if(xt(e))return Xi(e);if(Gt(e))return Zi(e);if(Xt(e))return Lo(e);if(tr(e))return ea(e);if(or(e))return ta(e)}throw Zt(e)}function Ji(e){return new F(function(t){var r=e[ht]();if(k(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Xi(e){return new F(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?Be(t):zo(function(){return new ir}))}}function Fr(e){return e<=0?function(){return O}:y(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,h=0,w=!1,A=!1,te=function(){f==null||f.unsubscribe(),f=void 0},ie=function(){te(),l=u=void 0,w=A=!1},J=function(){var H=l;ie(),H==null||H.unsubscribe()};return y(function(H,mt){h++,!A&&!w&&te();var ze=u=u!=null?u:r();mt.add(function(){h--,h===0&&!A&&!w&&(f=Wr(J,p))}),ze.subscribe(mt),!l&&h>0&&(l=new at({next:function(Ie){return ze.next(Ie)},error:function(Ie){A=!0,te(),f=Wr(ie,n,Ie),ze.error(Ie)},complete:function(){w=!0,te(),f=Wr(ie,a),ze.complete()}}),W(H).subscribe(l))})(c)}}function Wr(e,t){for(var r=[],o=2;oe.next(document)),e}function $(e,t=document){return Array.from(t.querySelectorAll(e))}function P(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Re(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var xa=S(d(document.body,"focusin"),d(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Re()||document.body),G(1));function et(e){return xa.pipe(m(t=>e.contains(t)),K())}function kt(e,t){return C(()=>S(d(e,"mouseenter").pipe(m(()=>!0)),d(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Me(+!r*t)):le,Q(e.matches(":hover"))))}function Bo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Bo(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Bo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function wt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),S(d(t,"load"),d(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),L(()=>document.head.removeChild(t)),Te(1))))}var Go=new g,ya=C(()=>typeof ResizeObserver=="undefined"?wt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Go.next(t)))),v(e=>S(Ke,I(e)).pipe(L(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return ya.pipe(E(r=>r.observe(t)),v(r=>Go.pipe(b(o=>o.target===t),L(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function Tt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Jo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ue(e){return{x:e.offsetLeft,y:e.offsetTop}}function Xo(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function Zo(e){return S(d(window,"load"),d(window,"resize")).pipe(Le(0,me),m(()=>Ue(e)),Q(Ue(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function De(e){return S(d(e,"scroll"),d(window,"scroll"),d(window,"resize")).pipe(Le(0,me),m(()=>pr(e)),Q(pr(e)))}var en=new g,Ea=C(()=>I(new IntersectionObserver(e=>{for(let t of e)en.next(t)},{threshold:0}))).pipe(v(e=>S(Ke,I(e)).pipe(L(()=>e.disconnect()))),G(1));function tt(e){return Ea.pipe(E(t=>t.observe(e)),v(t=>en.pipe(b(({target:r})=>r===e),L(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function tn(e,t=16){return De(e).pipe(m(({y:r})=>{let o=ce(e),n=Tt(e);return r>=n.height-o.height-t}),K())}var lr={drawer:P("[data-md-toggle=drawer]"),search:P("[data-md-toggle=search]")};function rn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function Ve(e){let t=lr[e];return d(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function wa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ta(){return S(d(window,"compositionstart").pipe(m(()=>!0)),d(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function on(){let e=d(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:rn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Re();if(typeof o!="undefined")return!wa(o,r)}return!0}),pe());return Ta().pipe(v(t=>t?O:e))}function xe(){return new URL(location.href)}function pt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function nn(){return new g}function an(){return location.hash.slice(1)}function sn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Sa(e){return S(d(window,"hashchange"),e).pipe(m(an),Q(an()),b(t=>t.length>0),G(1))}function cn(e){return Sa(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function $t(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function pn(){let e=matchMedia("print");return S(d(window,"beforeprint").pipe(m(()=>!0)),d(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():O))}function zr(e,t){return new F(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function Ne(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function ln(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function mn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function fn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function un(){return S(d(window,"scroll",{passive:!0}),d(window,"resize",{passive:!0})).pipe(m(fn),Q(fn()))}function dn(){return{width:innerWidth,height:innerHeight}}function hn(){return d(window,"resize",{passive:!0}).pipe(m(dn),Q(dn()))}function bn(){return z([un(),hn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(Z("size")),n=z([o,r]).pipe(m(()=>Ue(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function Oa(e){return d(e,"message",t=>t.data)}function Ma(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function vn(e,t=new Worker(e)){let r=Oa(t),o=Ma(t),n=new g;n.subscribe(o);let i=o.pipe(X(),ne(!0));return n.pipe(X(),Pe(r.pipe(U(i))),pe())}var La=P("#__config"),St=JSON.parse(La.textContent);St.base=`${new URL(St.base,xe())}`;function ye(){return St}function B(e){return St.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?St.translations[e].replace("#",t.toString()):St.translations[e]}function Se(e,t=document){return P(`[data-md-component=${e}]`,t)}function ae(e,t=document){return $(`[data-md-component=${e}]`,t)}function _a(e){let t=P(".md-typeset > :first-child",e);return d(t,"click",{once:!0}).pipe(m(()=>P(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function gn(e){if(!B("announce.dismiss")||!e.childElementCount)return O;if(!e.hidden){let t=P(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),_a(e).pipe(E(r=>t.next(r)),L(()=>t.complete()),m(r=>R({ref:e},r)))})}function Aa(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function xn(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Aa(e,t).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))}function Pt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function yn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function En(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Pt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Pt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function wn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,c)," "],[]).slice(0,-1),i=ye(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=ye();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)}),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Tn(e){let t=e[0].score,r=[...e],o=ye(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreqr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function Sn(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Qr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function On(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Ca(e){var o;let t=ye(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Mn(e,t){var o;let r=ye();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Ca)))}var Ha=0;function ka(e){let t=z([et(e),kt(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Jo(e)).pipe(oe(De),ct(1),m(()=>Xo(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function $a(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ha++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(X(),ne(!1)).subscribe(a);let s=a.pipe(Ht(c=>Me(+!c*250,Hr)),K(),v(c=>c?r:O),E(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>kt(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),ee(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),h=u.width/2;if(l.role==="tooltip")return{x:h,y:8+u.height};if(u.y>=f.height/2){let{height:w}=ce(l);return{x:h,y:-16-w}}else return{x:h,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),ee(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(P(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),be(me),ee(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ka(e).pipe(E(c=>i.next(c)),L(()=>i.complete()),m(c=>R({ref:e},c)))})}function lt(e,{viewport$:t},r=document.body){return $a(e,{content$:new F(o=>{let n=e.title,i=yn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Pa(e,t){let r=C(()=>z([Zo(e),De(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function Ln(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(X(),ne(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(U(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),S(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Le(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(ct(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),d(n,"click").pipe(U(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),d(n,"mousedown").pipe(U(a),ee(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Re())==null||c.blur()}}),r.pipe(U(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Pa(e,t).pipe(E(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))})}function Ra(e){return e.tagName==="CODE"?$(".c, .c1, .cm",e):[e]}function Ia(e){let t=[];for(let r of Ra(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function _n(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Ia(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,En(p,i)),s.replaceWith(a.get(p)))}return a.size===0?O:C(()=>{let s=new g,p=s.pipe(X(),ne(!0)),c=[];for(let[l,f]of a)c.push([P(".md-typeset",f),P(`:scope > li:nth-child(${l})`,e)]);return o.pipe(U(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?_n(f,u):_n(u,f)}),S(...[...a].map(([,l])=>Ln(l,t,{target$:r}))).pipe(L(()=>s.complete()),pe())})}function An(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return An(t)}}function Cn(e,t){return C(()=>{let r=An(e);return typeof r!="undefined"?fr(r,e,t):O})}var Hn=Vt(Yr());var Fa=0;function kn(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return kn(t)}}function ja(e){return ge(e).pipe(m(({width:t})=>({scrollable:Tt(e).width>t})),Z("scrollable"))}function $n(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(Fr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Hn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Fa++}`;let l=wn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(lt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=kn(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(U(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:O)))}}return $(":scope > span[id]",e).length&&e.classList.add("md-code__content"),ja(e).pipe(E(c=>n.next(c)),L(()=>n.complete()),m(c=>R({ref:e},c)),Pe(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function Wa(e,{target$:t,print$:r}){let o=!0;return S(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),E(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Pn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),Wa(e,t).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}var Rn=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Br,Da=0;function Va(){return typeof mermaid=="undefined"||mermaid instanceof Element?wt("https://unpkg.com/mermaid@10/dist/mermaid.min.js"):I(void 0)}function In(e){return e.classList.remove("mermaid"),Br||(Br=Va().pipe(E(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Rn,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Br.subscribe(()=>ao(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Da++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Br.pipe(m(()=>({ref:e})))}var Fn=x("table");function jn(e){return e.replaceWith(Fn),Fn.replaceWith(On(e)),I({ref:e})}function Na(e){let t=e.find(r=>r.checked)||e[0];return S(...e.map(r=>d(r,"change").pipe(m(()=>P(`label[for="${r.id}"]`))))).pipe(Q(P(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Wn(e,{viewport$:t,target$:r}){let o=P(".tabbed-labels",e),n=$(":scope > input",e),i=Qr("prev");e.append(i);let a=Qr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(X(),ne(!0));z([s,ge(e),tt(e)]).pipe(U(p),Le(1,me)).subscribe({next([{active:c},l]){let f=Ue(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let h=pr(o);(f.xh.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([De(o),ge(o)]).pipe(U(p)).subscribe(([c,l])=>{let f=Tt(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),S(d(i,"click").pipe(m(()=>-1)),d(a,"click").pipe(m(()=>1))).pipe(U(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(U(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=P(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),d(l.firstElementChild,"click").pipe(U(p),b(f=>!(f.metaKey||f.ctrlKey)),E(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),ee(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let w of $("[data-tabs]"))for(let A of $(":scope > input",w)){let te=P(`label[for="${A.id}"]`);if(te!==c&&te.innerText.trim()===f){te.setAttribute("data-md-switching",""),A.click();break}}window.scrollTo({top:e.offsetTop-u});let h=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...h])])}}),s.pipe(U(p)).subscribe(()=>{for(let c of $("audio, video",e))c.pause()}),Na(n).pipe(E(c=>s.next(c)),L(()=>s.complete()),m(c=>R({ref:e},c)))}).pipe(Qe(se))}function Un(e,{viewport$:t,target$:r,print$:o}){return S(...$(".annotate:not(.highlight)",e).map(n=>Cn(n,{target$:r,print$:o})),...$("pre:not(.mermaid) > code",e).map(n=>$n(n,{target$:r,print$:o})),...$("pre.mermaid",e).map(n=>In(n)),...$("table:not([class])",e).map(n=>jn(n)),...$("details",e).map(n=>Pn(n,{target$:r,print$:o})),...$("[data-tabs]",e).map(n=>Wn(n,{viewport$:t,target$:r})),...$("[title]",e).filter(()=>B("content.tooltips")).map(n=>lt(n,{viewport$:t})))}function za(e,{alert$:t}){return t.pipe(v(r=>S(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function Dn(e,t){let r=P(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),za(e,t).pipe(E(n=>o.next(n)),L(()=>o.complete()),m(n=>R({ref:e},n)))})}var qa=0;function Qa(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?De(o):I({x:0,y:0}),i=S(et(t),kt(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ue(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Vn(e){let t=e.title;if(!t.length)return O;let r=`__tooltip_${qa++}`,o=Pt(r,"inline"),n=P(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),S(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Le(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(ct(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Qa(o,e).pipe(E(a=>i.next(a)),L(()=>i.complete()),m(a=>R({ref:e},a)))}).pipe(Qe(se))}function Ka({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Ye(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=Ve("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Nn(e,t){return C(()=>z([ge(e),Ka(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function zn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(X(),ne(!0));o.pipe(Z("active"),We(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue($("[title]",e)).pipe(b(()=>B("content.tooltips")),oe(a=>Vn(a)));return r.subscribe(o),t.pipe(U(n),m(a=>R({ref:e},a)),Pe(i.pipe(U(n))))})}function Ya(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),Z("active"))}function qn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?O:Ya(o,t).pipe(E(n=>r.next(n)),L(()=>r.complete()),m(n=>R({ref:e},n)))})}function Qn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),Z("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function Ba(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(oe(o=>d(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Kn(e){let t=$("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=$t("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),ee(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(be(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),Ba(t).pipe(U(n.pipe(Ce(1))),st(),E(a=>i.next(a)),L(()=>i.complete()),m(a=>R({ref:e},a)))})}function Yn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(E(o=>r.next({value:o})),L(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Gr=Vt(Yr());function Ga(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Bn({alert$:e}){Gr.default.isSupported()&&new F(t=>{new Gr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Ga(P(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(E(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function Gn(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function Ja(e,t){let r=new Map;for(let o of $("url",e)){let n=P("loc",o),i=[Gn(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of $("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(Gn(new URL(s),t))}}return r}function ur(e){return mn(new URL("sitemap.xml",e)).pipe(m(t=>Ja(t,new URL(e))),ve(()=>I(new Map)))}function Xa(e,t){if(!(e.target instanceof Element))return O;let r=e.target.closest("a");if(r===null)return O;if(r.target||e.metaKey||e.ctrlKey)return O;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):O}function Jn(e){let t=new Map;for(let r of $(":scope > *",e.head))t.set(r.outerHTML,r);return t}function Xn(e){for(let t of $("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function Za(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=Jn(document);for(let[o,n]of Jn(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return je($("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new F(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),O}),X(),ne(document))}function Zn({location$:e,viewport$:t,progress$:r}){let o=ye();if(location.protocol==="file:")return O;let n=ur(o.base);I(document).subscribe(Xn);let i=d(document.body,"click").pipe(We(n),v(([p,c])=>Xa(p,c)),pe()),a=d(window,"popstate").pipe(m(xe),pe());i.pipe(ee(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),S(i,a).subscribe(e);let s=e.pipe(Z("pathname"),v(p=>ln(p,{progress$:r}).pipe(ve(()=>(pt(p,!0),O)))),v(Xn),v(Za),pe());return S(s.pipe(ee(e,(p,c)=>c)),s.pipe(v(()=>e),Z("pathname"),v(()=>e),Z("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),E(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",sn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),d(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(Z("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ri=Vt(ti());function oi(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ri.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function It(e){return e.type===1}function dr(e){return e.type===3}function ni(e,t){let r=vn(e);return S(I(location.protocol!=="file:"),Ve("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function ii({document$:e}){let t=ye(),r=Ne(new URL("../versions.json",t.base)).pipe(ve(()=>O)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>d(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),ee(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?O:(i.preventDefault(),I(p))}}return O}),v(i=>ur(new URL(i)).pipe(m(a=>{let p=xe().href.replace(t.base,i);return a.has(p.split("#")[0])?new URL(p):new URL(i)})))))).subscribe(n=>pt(n,!0)),z([r,o]).subscribe(([n,i])=>{P(".md-header__topic").appendChild(Mn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function ns(e,{worker$:t}){let{searchParams:r}=xe();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),Ve("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=xe();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=S(t.pipe(Ae(It)),d(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function ai(e,{worker$:t}){let r=new g,o=r.pipe(X(),ne(!0));z([t.pipe(Ae(It)),r],(i,a)=>a).pipe(Z("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(Z("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),d(e.form,"reset").pipe(U(o)).subscribe(()=>e.focus());let n=P("header [for=__search]");return d(n,"click").subscribe(()=>e.focus()),ns(e,{worker$:t}).pipe(E(i=>r.next(i)),L(()=>r.complete()),m(i=>R({ref:e},i)),G(1))}function si(e,{worker$:t,query$:r}){let o=new g,n=tn(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=P(":scope > :first-child",e),s=P(":scope > :last-child",e);Ve("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(ee(r),Ur(t.pipe(Ae(It)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(E(()=>s.innerHTML=""),v(({items:l})=>S(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Ye(4),Vr(n),v(([f])=>f)))),m(Tn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(oe(l=>{let f=fe("details",l);return typeof f=="undefined"?O:d(f,"toggle").pipe(U(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(E(l=>o.next(l)),L(()=>o.complete()),m(l=>R({ref:e},l)))}function is(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=xe();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function ci(e,t){let r=new g,o=r.pipe(X(),ne(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),d(e,"click").pipe(U(o)).subscribe(n=>n.preventDefault()),is(e,t).pipe(E(n=>r.next(n)),L(()=>r.complete()),m(n=>R({ref:e},n)))}function pi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=S(d(n,"keydown"),d(n,"focus")).pipe(be(se),m(()=>n.value),K());return o.pipe(We(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(E(s=>o.next(s)),L(()=>o.complete()),m(()=>({ref:e})))}function li(e,{index$:t,keyboard$:r}){let o=ye();try{let n=ni(o.search,t),i=Se("search-query",e),a=Se("search-result",e);d(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Re();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of $(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,h])=>h-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...$(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Re()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=ai(i,{worker$:n});return S(s,si(a,{worker$:n,query$:s})).pipe(Pe(...ae("search-share",e).map(p=>ci(p,{query$:s})),...ae("search-suggest",e).map(p=>pi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ke}}function mi(e,{index$:t,location$:r}){return z([t,r.pipe(Q(xe()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>oi(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function as(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Jr(e,o){var n=o,{header$:t}=n,r=io(n,["header$"]);let i=P(".md-sidebar__scrollwrap",e),{y:a}=Ue(i);return C(()=>{let s=new g,p=s.pipe(X(),ne(!0)),c=s.pipe(Le(0,me));return c.pipe(ee(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of $(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:h}=ce(f);f.scrollTo({top:u-h/2})}}}),ue($("label[tabindex]",e)).pipe(oe(l=>d(l,"click").pipe(be(se),m(()=>l),U(p)))).subscribe(l=>{let f=P(`[id="${l.htmlFor}"]`);P(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),as(e,r).pipe(E(l=>s.next(l)),L(()=>s.complete()),m(l=>R({ref:e},l)))})}function fi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return Ct(Ne(`${r}/releases/latest`).pipe(ve(()=>O),m(o=>({version:o.tag_name})),Be({})),Ne(r).pipe(ve(()=>O),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),Be({}))).pipe(m(([o,n])=>R(R({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return Ne(r).pipe(m(o=>({repositories:o.public_repos})),Be({}))}}function ui(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return Ne(r).pipe(ve(()=>O),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Be({}))}function di(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return fi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return ui(r,o)}return O}var ss;function cs(e){return ss||(ss=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return O}return di(e.href).pipe(E(o=>__md_set("__source",o,sessionStorage)))}).pipe(ve(()=>O),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function hi(e){let t=P(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(Sn(o)),t.classList.add("md-source__repository--active")}),cs(e).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}function ps(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),Z("hidden"))}function bi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):ps(e,t)).pipe(E(o=>r.next(o)),L(()=>r.complete()),m(o=>R({ref:e},o)))})}function ls(e,{viewport$:t,header$:r}){let o=new Map,n=$(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(Z("height"),m(({height:s})=>{let p=Se("main"),c=P(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(Z("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let h=f.offsetParent;for(;h;h=h.offsetParent)u+=h.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),We(i),v(([p,c])=>t.pipe(jr(([l,f],{offset:{y:u},size:h})=>{let w=u+h.height>=Math.floor(s.height);for(;f.length;){let[,A]=f[0];if(A-c=u&&!w)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Ye(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(X(),ne(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=S(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),We(o.pipe(be(se))),ee(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:h}=ce(f);f.scrollTo({top:u-h/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(U(a),Z("offset"),_e(250),Ce(1),U(n.pipe(Ce(1))),st({delay:250}),ee(i)).subscribe(([,{prev:s}])=>{let p=xe(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),ls(e,{viewport$:t,header$:r}).pipe(E(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))})}function ms(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Ye(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),U(o.pipe(Ce(1))),ne(!0),st({delay:250}),m(a=>({hidden:a})))}function gi(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(X(),ne(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(U(a),Z("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),d(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),ms(e,{viewport$:t,main$:o,target$:n}).pipe(E(s=>i.next(s)),L(()=>i.complete()),m(s=>R({ref:e},s)))}function xi({document$:e,viewport$:t}){e.pipe(v(()=>$(".md-ellipsis")),oe(r=>tt(r).pipe(U(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?lt(n,{viewport$:t}).pipe(U(e.pipe(Ce(1))),L(()=>n.removeAttribute("title"))):O})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>$(".md-status")),oe(r=>lt(r,{viewport$:t}))).subscribe()}function yi({document$:e,tablet$:t}){e.pipe(v(()=>$(".md-toggle--indeterminate")),E(r=>{r.indeterminate=!0,r.checked=!1}),oe(r=>d(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ee(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function fs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ei({document$:e}){e.pipe(v(()=>$("[data-md-scrollfix]")),E(t=>t.removeAttribute("data-md-scrollfix")),b(fs),oe(t=>d(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function wi({viewport$:e,tablet$:t}){z([Ve("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),ee(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function us(){return location.protocol==="file:"?wt(`${new URL("search/search_index.js",Xr.base)}`).pipe(m(()=>__index),G(1)):Ne(new URL("search/search_index.json",Xr.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Yo(),jt=nn(),Ot=cn(jt),Zr=on(),Oe=bn(),hr=$t("(min-width: 960px)"),Si=$t("(min-width: 1220px)"),Oi=pn(),Xr=ye(),Mi=document.forms.namedItem("search")?us():Ke,eo=new g;Bn({alert$:eo});var to=new g;B("navigation.instant")&&Zn({location$:jt,viewport$:Oe,progress$:to}).subscribe(ot);var Ti;((Ti=Xr.version)==null?void 0:Ti.provider)==="mike"&&ii({document$:ot});S(jt,Ot).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});Zr.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&&pt(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&&pt(r);break;case"Enter":let o=Re();o instanceof HTMLLabelElement&&o.click()}});xi({viewport$:Oe,document$:ot});yi({document$:ot,tablet$:hr});Ei({document$:ot});wi({viewport$:Oe,tablet$:hr});var rt=Nn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Qn(e,{viewport$:Oe,header$:rt})),G(1)),ds=S(...ae("consent").map(e=>xn(e,{target$:Ot})),...ae("dialog").map(e=>Dn(e,{alert$:eo})),...ae("header").map(e=>zn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("palette").map(e=>Kn(e)),...ae("progress").map(e=>Yn(e,{progress$:to})),...ae("search").map(e=>li(e,{index$:Mi,keyboard$:Zr})),...ae("source").map(e=>hi(e))),hs=C(()=>S(...ae("announce").map(e=>gn(e)),...ae("content").map(e=>Un(e,{viewport$:Oe,target$:Ot,print$:Oi})),...ae("content").map(e=>B("search.highlight")?mi(e,{index$:Mi,location$:jt}):O),...ae("header-title").map(e=>qn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Si,()=>Jr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Jr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>bi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>vi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Ot})),...ae("top").map(e=>gi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Ot})))),Li=ot.pipe(v(()=>hs),Pe(ds),G(1));Li.subscribe();window.document$=ot;window.location$=jt;window.target$=Ot;window.keyboard$=Zr;window.viewport$=Oe;window.tablet$=hr;window.screen$=Si;window.print$=Oi;window.alert$=eo;window.progress$=to;window.component$=Li;})(); +//# sourceMappingURL=bundle.fe8b6f2b.min.js.map + diff --git a/assets/javascripts/bundle.fe8b6f2b.min.js.map b/assets/javascripts/bundle.fe8b6f2b.min.js.map new file mode 100644 index 00000000..82635852 --- /dev/null +++ b/assets/javascripts/bundle.fe8b6f2b.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/rxjs/node_modules/tslib/tslib.es6.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2024 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:
\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an