{ "$schema": "http://json-schema.org/schema#", "$schemaVersion": "0.0.2", "modelTags": "GSMA", "$id": "https://smart-data-models.github.io/dataModel.UnmannedAerialVehicle/UnmannedAerialVehicleTMSFlightMessageAgent/schema.json", "title": "Smart Data models - Unmanned Aerial Vehicle TMS Flight Message Agent schema", "description": "This entity contains a harmonised description of a generic UAV UTM Flight Message Agent that is designed to subscribe to the Global UTM Association protocol message according to a specific UAV entity. This entity supports the functionality of a service provider to confirm the validity of UTM Flight Message generated by UTM Flight Message Entity. The service provider can include their own Flight Control Policy to the original UTM Flight Message and forward this to a UAVTMS entity.", "type": "object", "allOf": [ { "$ref": "https://smart-data-models.github.io/data-models/common-schema.json#/definitions/GSMA-Commons" }, { "$ref": "https://smart-data-models.github.io/data-models/common-schema.json#/definitions/Location-Commons" }, { "properties": { "type": { "type": "string", "description": "Property. NGSI Entity identifier. It has to be UnmannedAerialVehicleTMSFlightMessageAgent", "enum": [ "UnmannedAerialVehicleTMSFlightMessageAgent" ] }, "unmannedAerialVehicle": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[\\w\\-\\.\\{\\}\\$\\+\\*\\[\\]`|~^@!,:\\\\]+$", "description": "Property. Identifier format of any NGSI entity" }, { "type": "string", "format": "uri", "description": "Property. Identifier format of any NGSI entity" } ], "description": "Relationship. Reference to the UAV entity to which this UAVUTMFlightMessageAgent relates" }, "observedAt": { "type": "string", "format": "date-time", "description": "Property. Indicates the date/time of the UAVUTMFlightMessageAgent record" }, "originatedByUnmannedAerialVehicle": { "type": "boolean", "description": "Property. A logical indicator of source of the message. True indicates it is the UAV itself, false indicates that it is a different source, a listening station software application or a different UAV" }, "originator": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[\\w\\-\\.\\{\\}\\$\\+\\*\\[\\]`|~^@!,:\\\\]+$", "description": "Property. Identifier format of any NGSI entity" }, { "type": "string", "format": "uri", "description": "Property. Identifier format of any NGSI entity" } ], "description": "Relationship. Refers to a third party UAV instance or other entity (e.g. listening station) that reported the information in the case the message was not directly originated by the UAV" }, "flightMessage": { "type": "object", "description": "Property. A flight message describing the current flight status encoded as a Global UTM Message encoded as a JSON object. https://bitbucket.org/global_utm/flight-declaration-protocol", "properties": { "flightId": { "type": "string", "description": "Property. Identifier of the flight" }, "sequenceNumber": { "type": "number", "description": "Property. Index of the message in a sequence" }, "flightDeclaration": { "type": "object", "description": "Property. Declaration of the flight", "properties": { "parts": { "type": "array", "description": "Property. elements of the flight declaration that can include details about the operator, the aircraft, specific approvals, means of compliance, and continuing airworthiness management", "items": { "type": "string", "description": "Property. Every item of the parts" } }, "purpose": { "type": "string", "description": "Property. Purpose of the flight" }, "expectTelemetry": { "type": "boolean", "description": "Property. Whether it is expected telemetry data " }, "originatingParty": { "type": "string", "description": "Property. Country from which the goods/items being transported originate." }, "contactUrl": { "type": "string", "format": "uri", "description": "Property. A url for further information" }, "operationMode": { "type": "string", "description": "Property. Operation mode of the flight", "enum": [ "vlos", "evlos", "bvlos", "automated" ] }, "idents": { "type": "array", "description": "Property. Identifier items of the flight declaration", "items": { "type": "string", "description": "Property. Every item in the idents" } }, "actualTakeOffTime": { "type": "string", "format": "date-time", "description": "Property. Actual take off time" }, "actualLandingTime": { "type": "string", "format": "date-time", "description": "Property. Actual landing time" } } }, "version": { "type": "string", "description": "Property. Version of the agent" } } }, "validationResult": { "type": "boolean", "description": "Property. A logical indicator of validation of the message. True indicates it is the validation is confirmed, false indicates that the validation confirmation fails" }, "flightControlPolicy": { "type": "string", "description": "Property. Indicates the flight control policy generated by the service provider. This data could be included as a text value or referenced by a URI (URL/URN) to a policy defined in JSON or XML format" } } } ], "required": [ "id", "type" ] }