From 852b63b32f6706f1c40baf4cbad75c5f9a4b8f25 Mon Sep 17 00:00:00 2001 From: aloccid-iata <140411726+aloccid-iata@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:25:03 +0100 Subject: [PATCH] copy ttl, class diagram and changelog to 2024-12 folder --- 2024-12-standard/API-Security/CHANGELOG.md | 158 ++ .../ONE-Record-API-Class-Diagram.md | 229 +++ .../API-Security/ONE-Record-API-Ontology.ttl | 1487 +++++++++++++++++ 3 files changed, 1874 insertions(+) create mode 100644 2024-12-standard/API-Security/CHANGELOG.md create mode 100644 2024-12-standard/API-Security/ONE-Record-API-Class-Diagram.md create mode 100644 2024-12-standard/API-Security/ONE-Record-API-Ontology.ttl diff --git a/2024-12-standard/API-Security/CHANGELOG.md b/2024-12-standard/API-Security/CHANGELOG.md new file mode 100644 index 00000000..981dc20d --- /dev/null +++ b/2024-12-standard/API-Security/CHANGELOG.md @@ -0,0 +1,158 @@ +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +# 2.2.0-dev + +## Ideas +- Add filters/triggers to Subscription information for server-side Notifications filtering +- Define API for stream data from sensor + +# 2.1.0 + + + +## ONE Record API Specification + +### Changed + +- Align documentation and ontology using always hasErrorDetail/ErrorDetail. +- Align LogisticsEvent filtering option to Kebab case +- Rename eventType into event-code for LogisticsEvent filtering option + +### Added + +- Sort, limit and skip parameters in Get logistics events of a logistics object +- hasRevision and hasLastRevision for each logistics object body +- Verification request to signal error or anomalies in a logistics object + +### Removed + +- overview of data classes and properties as CSV file to supporting documents, all information can be found in the ontology or in the data model page + +## ONE Record API Ontology + +### Changed + +- in the AuditTrail, the AuditTrail#hasChangeRequest changes to AuditTrail#hasActionRequest + + +### Added + +- hasActionRequest object property +- hasVerificationRequest object property +- ChangeRequest has an additional opetion property hasVerificationRequest +- Verification class +- VerificationRequest class +- hasVerification object property + +# 2.0.0 + +--- + +## ONE Record API Specification + +### Changed + +- restructured Introduction section +- use Logistics Object instead of its abbreviation LO +- use Logistics Object URI / Organization URI for the complete URI of a Logistics Object, i.e. https://1r.example.com/logistics-objects/1a8ded38-1804-467c-a369-81a411416b7c +- use logisticsObjectID for the unique identifier part of the URI, i.e. 1a8ded38-1804-467c-a369-81a411416b7c +- use Data Holder instead of Data Onwer +- redesign the Update Action Requests section +- use the Collection object to return a list of Logistics Events + + +### Removed + +- removed Memento (incl. TimeGate, Timemap) +- removed implicit endpoints; define URI structure of Logistics Objects +- removed Link HTTP header, because URI and endpoint structure is defined +- removed required ttl/turtle as supported content-type +- removed acl endpoint + + +### Added + +- added UTF-8 as default content encoding +- added 1 as default revision number for AuditTrail and LogisticsObjects +- added class diagram as supporting document +- added overview of data classes and properties as CSV file to supporting documents, +- added two reference OpenAPI specifications as supporting documents (minimum = to be ONE Record server compliant; recommended = for comfort features) +- added `Implementation Guidelines` section to reduce ambiguity +- added JSON files with examples mentioned in the API specification +- added overview of permissions for Access Delegation +- added ActionEnum to class diagram +- added Authentication and Authorization with OpenID Connect +- added security and endpoint information for all APIs +- added allow subscription for third parties +- added list of JSON-LD libraries in the `Implementation Guidelines` + + +--- + +## ONE Record API Ontology + +### Changed + +- changed IRI structure to follow best practice +- renamed CompanyInformation to ServerInformation, because it mainly contains meta information about the ONE Record API and its configuration +- replaced ServerInformation#company and ServerInformation#companyId (formerly CompanyInformation) with ServerInformation#dataOwner +- merged PatchRequest into ChangeRequest +- renamed Operation#op enums to UPPERCASE, e.g. changed del to DELETE +- renamed Details to ErrorDetail +- renamed ChangeRequest#requestingParty to ChangeRequest#requestedBy +- renamed ChangeRequest#timestamp to ChangeRequest#requestedAt +- changed ChangeRequest#requestingParty to ChangeRequest#requestedBy (https://onerecord.iata.org/ns/cargo#Organization) +- renamed ErrorDetail#attribute to ErrorDetail#property +- renamed ServerInformation#supportedLogisticsObjects to ServerInformation#supportedLogisticsObjectTypes +- changed property type of Notification#topic, Notification#changedProperties, OperationObject#datatype, ServerInformation#serverEndpoint, ServerInformation#supportedLogisticsObjects, ErrorDetail#property, ErrorDetail#resource, Subscription#callbackUrl, Subscription#topic, Subscription#subscribedTo +- renamed Subscription#myCompanyIdentifier to Subscription#subscriber +- changed Subscription#cacheFor (xsd:int) to Subscription#expiresAt (xsd:dateTime) +- renamed DelegationRequest#operations to DelegationRequest#permissions +- renamed api#status (used in SubscriptionRequest, ChangeRequest DelegationRequest) to api#requestStatus +- renamed ServerInformation#hasDataOnwer into ServerInformation#hasDataHolder +- changed Subscription#notifyRequestStatusChange from mandatory to optional +- changed Change#notifyRequestStatusChange from mandatory to optional +- changed AccessDelegation#notifyRequestStatusChange from mandatory to optional + + +### Removed + +- removed not used classes, data properties, object properties +- removed Memento (classes, data properties, object properties) +- removed ServerInformation#companyId +- removed AuditTrail#errors +- removed AuditTrail#loInitialSnapshot +- removed ChangeRequest#requestorCompanyIdentifier +- removed ServerInformation#errors +- removed Subscription#subscribedTo +- replaced LogisticsObjectRef data class and use https://onerecord.iata.org/ns/cargo#LogisticsObject instead +- removed Subscription#secret +- removed DelegationRequest#action +- removed Subscription#callbackUrl +- removed cargo ontology data classes +- removed ServerInformation#hasSupportedLogisticsObjectType +- removed Subscription#subscribeToLogisticsEvents + +### Added + +- added Notification#changedProperties +- added further enums to notification#eventType, i.e. LOGISTICS_EVENT_RECEIVED, CHANGE_REQUEST_ACCEPTED, CHANGE_REQUEST_FAILED, CHANGE_REQUEST_PENDING, CHANGE_REQUEST_REJECTED, DELEGATION_REQUEST_PENDING, DELEGATION_REQUEST_ACCEPTED, DELEGATION_REQUEST_REJECTED, DELEGATION_REQUEST_FAILED, SUBSCRIPTION_REQUEST_PENDING, SUBSCRIPTION_REQUEST_ACCEPTED, SUBSCRIPTION_REQUEST_REJECTED, SUBSCRIPTION_REQUEST_FAILED +- added PENDING enum to ChangeRequest#requestStatus +- added Operation#s to enable updating not only properties of primitive types, e.g. int, string, but also embedded objects, e.g. Shipment#totalGrossWeight in LogisticsObjects +- added Notification#triggeringChangeRequest +- added SubscriptionRequest. Subscription is the response for the scenario where publisher initiates the Subscription and asks the subscribers for their Subscription information. SubscriptionRequest is used for scenario where the subscriber initiates a SubscriptionRequest towards the Publisher. +- added Subscription#topicType to indicate if topic is a LogisticsObject type or a specific LogisticsObjectIdentifier +- added ServerInformation#supportedApiVersion +- added ActionRequest as superclass for SubscriptionRequest, ChangeRequest, and DelegationRequest +- added providesNotificationsEndpoint (xsd:boolean) to ServerInformation +- added AccessDelegation and Change for ActionRequests +- import cargo ontology with `owl:imports cargo` +- changed min/max cardinalities to exact cardinalities (`qualifiedCardinality`) +- introduced Named Individuals to represent ENUMs +- added Notification#hasLogisticsObjectType +- added Subscription#includeSubscriptionEventType +- added enumeration SubscriptionEventType +- added Collection class diff --git a/2024-12-standard/API-Security/ONE-Record-API-Class-Diagram.md b/2024-12-standard/API-Security/ONE-Record-API-Class-Diagram.md new file mode 100644 index 00000000..30c297db --- /dev/null +++ b/2024-12-standard/API-Security/ONE-Record-API-Class-Diagram.md @@ -0,0 +1,229 @@ +# ONE Record API Class Diagram + +**Version:** 2.1.0 **Status:** Submitted to COTB + +```mermaid +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 { + <> + + 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 <|-- VerificationRequest + + + 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{ + + hasActionRequest[]: ActionRequest [*] + + 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 + + hasVerificationRequest[]: VerificationRequest [0..*] + } + 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{ + <> + 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 + + VERIFICATION_REQUEST_PENDING + VERIFICATION_REQUEST_ACKNOWLEDGED + VERIFICATION_REQUEST_REJECTED + VERIFICATION_REQUEST_FAILED + VERIFICATION_REQUEST_REVOKED + } + class PatchOperation{ + <> + ADD + DELETE + } + class Permission{ + <> + GET_LOGISTICS_EVENT + GET_LOGISTICS_OBJECT + PATCH_LOGISTICS_OBJECT + POST_LOGISTICS_EVENT + } + class TopicType{ + <> + LOGISTICS_OBJECT_TYPE + LOGISTICS_OBJECT_URI + } + class RequestStatus{ + <> + REQUEST_PENDING + REQUEST_ACCEPTED + REQUEST_REJECTED + REQUEST_FAILED + REQUEST_REVOKED + REQUEST_ACKNOWLEDGED + } + class SubscriptionEventType{ + <> + LOGISTICS_OBJECT_CREATED + LOGISTICS_OBJECT_UPDATED + + LOGISTICS_EVENT_RECEIVED + } + + class VerificationRequest{ + + hasVerification: Verification + } + VerificationRequest"1" --> "1" Verification + + class Verification{ + + hasLogisticsObject: LogisticsObject + + hasError[]: Error[1..*] + + hasRevision: xsd:positiveInteger + + notifyRequestStatusChange: xsd:boolean = FALSE + } + Verification "1" --> "1" LogisticsObject + Verification "1" --> "1..*" Error +``` \ No newline at end of file diff --git a/2024-12-standard/API-Security/ONE-Record-API-Ontology.ttl b/2024-12-standard/API-Security/ONE-Record-API-Ontology.ttl new file mode 100644 index 00000000..0fdca66c --- /dev/null +++ b/2024-12-standard/API-Security/ONE-Record-API-Ontology.ttl @@ -0,0 +1,1487 @@ +@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 "2024-12-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.1.0" . + +################################################################# +# 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#hasActionRequest +:hasActionRequest rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :AuditTrail ; + rdfs:range :ActionRequest ; + rdfs:comment "Link any type of Action Request" ; + rdfs:label "has Action Request" . + + +### 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 ; + rdfs:label "has Logistics Agent" . + + +### 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:label "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#hasVerification +:hasVerification rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :VerificationRequest ; + rdfs:range :Verification ; + rdfs:comment "Links to the Verification class" ; + rdfs:label "has Verification" . + + +### https://onerecord.iata.org/ns/api#hasVerificationRequest +:hasVerificationRequest rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty ; + rdfs:domain :ChangeRequest ; + rdfs:range :VerificationRequest ; + rdfs:comment "Link to the Verification Request" ; + rdfs:label "has Verification Request" . + + +### 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 Subscription Event Type"@en . + + +### 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 . + + +################################################################# +# 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 :hasActionRequest ; + owl:allValuesFrom :ActionRequest + ] , + [ 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 :hasVerificationRequest ; + owl:allValuesFrom :VerificationRequest + ] , + [ 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#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#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#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/api#Verification +:Verification rdf:type owl:Class ; + rdfs:subClassOf [ rdf:type owl:Restriction ; + owl:onProperty :hasError ; + owl:allValuesFrom :Error + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:allValuesFrom cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasError ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Error + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasLogisticsObject ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass cargo:LogisticsObject + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasRevision ; + owl:allValuesFrom xsd:positiveInteger + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasRevision ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:integer + ] ; + dc:description "Verification encapulates any anomalies or errors related to logistics objects" ; + rdfs:label "Verification" . + + +### https://onerecord.iata.org/ns/api#VerificationRequest +:VerificationRequest rdf:type owl:Class ; + rdfs:subClassOf :ActionRequest , + [ rdf:type owl:Restriction ; + owl:onProperty :hasVerification ; + owl:allValuesFrom :Verification + ] , + [ rdf:type owl:Restriction ; + owl:onProperty :hasVerification ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass :Verification + ] ; + dc:description "Verification Request allows third parties to signal errors and anomalies on logisitcs objects" ; + rdfs:label "Verification Request" . + + +### 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_ACKNOWLEDGED +:REQUEST_ACKNOWLEDGED rdf:type owl:NamedIndividual , + :RequestStatus ; + rdfs:label "REQUEST_ACKNOWLEDGED"@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 . + + +### https://onerecord.iata.org/ns/api#VERIFICATION_REQUEST_ACKNOWLEDGED +:VERIFICATION_REQUEST_ACKNOWLEDGED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "VERIFICATION_REQUEST_ACKNOWLEDGED"@en . + + +### https://onerecord.iata.org/ns/api#VERIFICATION_REQUEST_FAILED +:VERIFICATION_REQUEST_FAILED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "VERIFICATION_REQUEST_FAILED"@en . + + +### https://onerecord.iata.org/ns/api#VERIFICATION_REQUEST_PENDING +:VERIFICATION_REQUEST_PENDING rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "VERIFICATION_REQUEST_PENDING"@en . + + +### https://onerecord.iata.org/ns/api#VERIFICATION_REQUEST_REJECTED +:VERIFICATION_REQUEST_REJECTED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "VERIFICATION_REQUEST_REJECTED"@en . + + +### https://onerecord.iata.org/ns/api#VERIFICATION_REQUEST_REVOKED +:VERIFICATION_REQUEST_REVOKED rdf:type owl:NamedIndividual , + :NotificationEventType ; + rdfs:label "VERIFICATION_REQUEST_REVOKED"@en . + + +[ owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger +] . + +[ owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger + ] . + +[ owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger + ] . + +[ owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger + ] . + +### Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi