{
    "informationService": {
        "descriptionInformation": {
            "descriptionIdentification": {
                "title": "ADS-C SWIM Ground Distribution Service",
                "edition": "1.0",
                "referenceDate": "2023-12-11"
            },
            "abbreviations": [
                {
                    "name": "ANSP",
                    "description": "Air Navigation Service Provider"
                },
                {
                    "name": "AO",
                    "description": "Aircraft Operator"
                },
                {
                    "name": "API",
                    "description": "Application Programmable Interface"
                },
                {
                    "name": "ATM",
                    "description": "Air Traffic Management"
                },
                {
                    "name": "ATN",
                    "description": "Aeronautical Telecommunication(s) Network"
                },
                {
                    "name": "ATS B2",
                    "description": "Air Traffic Services Baseline 2"
                },
                {
                    "name": "CDA",
                    "description": "Current Data Authority"
                },
                {
                    "name": "CM",
                    "description": "Context Management"
                },
                {
                    "name": "CP1",
                    "description": "Common Project 1"
                },
                {
                    "name": "DLIC",
                    "description": "Data Link Initiation Capability"
                },
                {
                    "name": "EASA",
                    "description": "European Union Aviation Safety Agency"
                },
                {
                    "name": "EC",
                    "description": "European Commission"
                },
                {
                    "name": "EPP",
                    "description": "Extended Projected Profile"
                },
                {
                    "name": "EUROCAE",
                    "description": "European Organisation for Civil Aviation Equipment"
                },
                {
                    "name": "GAT",
                    "description": "General Air Traffic"
                },
                {
                    "name": "GDSS",
                    "description": "Ground Distribution Service Specification"
                },
                {
                    "name": "ICAO",
                    "description": "International Civil Aviation Organization"
                },
                {
                    "name": "ICD",
                    "description": "Interface Control Document"
                },
                {
                    "name": "LOF",
                    "description": "Log-On Forwarding message (OLDI)"
                },
                {
                    "name": "LS",
                    "description": "Logon Service"
                },
                {
                    "name": "NAN",
                    "description": "Next Authority Notified message"
                },
                {
                    "name": "NDA",
                    "description": "Next Data Authority"
                },
                {
                    "name": "NM",
                    "description": "Network Manager"
                },
                {
                    "name": "OLDI",
                    "description": "On-Line Data Interchange"
                },
                {
                    "name": "SASL",
                    "description": "Simple Authentication and Security Layer"
                },
                {
                    "name": "SES",
                    "description": "Single European Sky"
                },
                {
                    "name": "SWIM",
                    "description": "System Wide Information Management"
                },
                {
                    "name": "TI",
                    "description": "Technical Infrastructure"
                },{
                    "name": "UUIDv4",
                    "description": "Universally Unique Identifier version 4"
                }
                ,{
                    "name": "VDLm2",
                    "description": "VHF Digital Link Mode 2"
                },
                {
                    "name": "WS",
                    "description": "Web Services"
                },
                {
                    "name": "XML",
                    "description": "Extensible Markup Language"
                },{
                    "name": "XSD",
                    "description": "XML Schema Definition"
                }
            ]
        },
        "serviceIdentification": {
            "name": "ADS-C Ground Distribution SWIM Service",
            "version": "1.0"
        },
        "serviceAbstract": "<p>The ADS-C Ground Distribution Service distributes to ground users the ADS-C data collected from ATS B2 equipped aircraft by the ADS-C Common Service. It supports a Publish/Subscribe Push Message Exchange Pattern for the distribution of ADS-C data, flight status changes and Request/Reply Message Exchange Pattern to support the creation of Demand Contract Requests and to query flight status by ground users.</p>",
        "serviceDefinitionProvider": {
            "pointOfContact": [
                {
                    "name": "EUROCONTROL",
                    "contactInformation": [
                        {
                            "type": "EMAIL",
                            "address": "swim@eurocontrol.int"
                        }
                    ]
                }
            ],
            "provider": "EUROCONTROL",
            "providerDescription": "<p>EUROCONTROL is an intergovernmental organisation with 41 Member and 2 Comprehensive Agreement States.</p>"
        },
        "serviceCategorisation": {
            "serviceType": "SWIM_DEFINITION",
            "businessActivityType": [
                "COMMUNICATION_NAVIGATION_SURVEILLANCE"
            ],
            "intendedConsumer": [
                "AIRPORT_OPERATOR",
                "AIRSIDE_GROUND_HANDLER",
                "CIVIL_AIR_NAVIGATION_SERVICE_PROVIDER",
                "CIVIL_AIRSPACE_USER",
                "MILITARY_AIR_NAVIGATION_SERVICE_PROVIDER",
                "NETWORK_MANAGER"
            ],
            "informationCategory": [
                "FLIGHT_INFORMATION_EXCHANGE"
            ],
            "applicationMessageExchangePattern": [
                {
                    "name": "ONE_WAY"
                },
                {
                    "name": "PUBLISH_SUBSCRIBE"
                },
                {
                    "name": "SYNCHRONOUS_REQUEST_REPLY"
                }
            ],
            "other": [
                {
                    "name": "Intended Service Provider",
                    "value": "COMMUNICATION_NAVIGATION_AND_SURVEILLANCE_SERVICE_PROVIDER",
                    "categorisationScheme": {
                        "url": "https://reference.swim.aero/information-services/service-categories/CodeStakeholderType.html"
                    }
                }
            ],
            "geospatialCategorisation": {
                "description": "This service shall provide information for the European ATM Network."
            }
        },
        "generalDescription": {
            "operationalEnvironment": {
                "operationalNeeds": [
                    {
                        "name": "Operational Needs",
                        "description": "The demonstration of an ADS-C Common Service to collect and distribute ADS-C data from flights has been achieved by SESAR PJ38 (ADSCENSIO). The SESAR PJ38 deliverable identified operational needs and benefits of such an ADS-C Common Service. "
                    },
                    {
                        "name": "Information Exchange Requirements",
                        "description": "The SWIM ADS-C Ground Distribution Service shall be implemented over a Technical Infrastructure conformant with the SWIM-TI Yellow Profile (v1.1+) Infrastructure Capabilities Specification. Conformance with the SWIM-TI Yellow Profile Infrastructure Capabilities Specification is achieved by satisfying the requirements of the Infrastructure Capabilities of the SWIM-TI Yellow Profile (v1.1+)"
                    }
                ],
                "capabilities": [
                    {
                        "name": "Capabilities",
                        "description": "The ADS-C Ground Distribution Service enables a number of operational use cases that are described in the EUROCONTROL Specification for Data Link Ground Distribution SWIM Services: Subscribe to ADS-C Messages by Specific ICAO 24-bit Aircraft Addresses. Subscribe to ADS-C Messages matching a Filter Condition. Receive Messages from Predefined Subscriptions. Enables consumer to perform a Demand Contract Request. Enables a consumer to query Flight Status details about a flight. ADS-C Ground Distribution Service Status Monitoring."
                    }
                ]
            },
            "functionality": [
                {
                    "name": "Subscribe to ADS-C Messages by Specific ICAO 24-bit Aircraft Addresses",
                    "description": "The service consumer shall be able to subscribe to a specific list of aircraft identified by their ICAO 24-bit aircraft address.",
                    "realWorldEffect": "The service consumer receives updates whenever there is a message available in the ADS-C Common Service."
                },
                {
                    "name": "Subscribe to ADS-C Messages matching a Filter Condition",
                    "description": "The service consumer shall be able to subscribe to a list of flight matching a filter condition.",
                    "realWorldEffect": "The service consumer receives updates whenever there is a message available in the ADS-C Common Service that match its filtering criteria."
                },
                {
                    "name": "Receive Messages from Predefined Subscriptions",
                    "description": "The service consumer shall be able to receive a number of predefined subscriptions which are readily available without requiring the establishment of a specific filter. The specific set of predefined subscriptions and their filters is left as an implementation option.",
                    "realWorldEffect": "The service consumer receives updates from its chosen predefined subscription."
                },
                {
                    "name": "Enables consumer to perform a Demand Contract Request",
                    "description": "The service consumer shall be able to  perform a demand contract request to the ADS-C Ground Distribution Service. The demand contract request is processed by the ADS-C Common Service and, if successful, relayed via the ATN network to the aircraft.",
                    "realWorldEffect": "The ADS-C Common Service will perform a demand contract request to the intended aircraft through the ATN network."
                },
                {
                    "name": "Enables a consumer to query Flight Status details about a flight.",
                    "description": "The service consumer shall be able to query the following details about a flight: ICAO 24-bit aircraft address, Status, Last Report, Periodic and Event Contract settings. ",
                    "realWorldEffect": "The service consumer receives the intended detail about the flight."
                },
                {
                    "name": "ADS-C Ground Distribution Service Status Monitoring",
                    "description": "The service consumer shall be able to receive technical messages about the status and health of the service.",
                    "realWorldEffect": "The service consumers receives periodic updates of the service status and health."
                }
            ],
            "qualitiesOfService": {
                "performance": [
                    {
                        "name": "Capacity",
                        "description": "The service shall achieve a quality that is sufficient to ensure the service is fit for purpose."
                    },
                    {
                        "name": "Response time",
                        "description": "The service shall achieve a quality that is sufficient to ensure the service is fit for purpose."
                    }
                ],
                "reliability": [
                    {
                        "name": "Availability",
                        "description": "The service shall achieve a quality that is sufficient to ensure the service is fit for purpose."
                    },
                    {
                        "name": "Recoverability",
                        "description": "The service shall achieve a quality that is sufficient to ensure the service is fit for purpose."
                    }
                ],
                "security": [
                    {
                        "name": "Confidentiality",
                        "description": "The service shall ensure confidentiality by using SWIM Technical Infrastructure (TI) Yellow Profile bindings."
                    },
                    {
                        "name": "Integrity",
                        "description": "The service shall ensure integrity by using SWIM Technical Infrastructure (TI) Yellow Profile bindings."
                    }
                ]
            },
            "qualityOfData": [
                {
                    "name": "Quality of Data",
                    "description": "The information offered by the service shall be verified by the service provider. The information offered by the service shall be encoded according to the rules of the AIRM standard."
                }
            ],
            "accessAndUseConditions": [
                {
                    "name": "Authentication",
                    "type": "SECURITY_CONSTRAINT",
                    "description": "The service shall ensure consumer authentication in accordance with EUROCONTROL Specification for SWIM Technical Infrastructure (TI) Yellow Profile requirement SWIM-TIYP-0042 (use of a X.509 certificate). The service shall ensure provider authentication in accordance with EUROCONTROL Specification for SWIM Technical Infrastructure (TI) Yellow Profile requirement SWIM-TIYP-0042 (use of a X.509 certificate)."
                },
                {
                    "name": "Authorisation",
                    "type": "SECURITY_CONSTRAINT",
                    "description": "The service shall ensure that satisfactory authorisation is put in place according to EUROCONTROL Specification for SWIM Technical Infrastructure (TI) Yellow Profile requirement SWIM-TIYP-0070. The specific details of the authorization verification are left as an implementation choice for the service provider, they could include aspects like: Number of active contract requests by the consumer, Number of pending contract requests by the consumer, Consumer permissions.   "
                },
                {
                    "name": "Confidentiality",
                    "type": "SECURITY_CONSTRAINT",
                    "description": "The service shall ensure point-to-point confidentiality in accordance with EUROCONTROL Specification for SWIM Technical Infrastructure (TI) Yellow Profile through the use of Transport Layer Security (TLS) 1.2 or above."
                },
                {
                    "name": "Integrity",
                    "type": "SECURITY_CONSTRAINT",
                    "description": "The service shall ensure point-to-point integrity in accordance with EUROCONTROL Specification for SWIM Technical Infrastructure (TI) Yellow Profile through the use of Transport Layer Security (TLS) 1.2 or above."
                }
            ]
        },
        "informationDescription": {
            "filtering": {
                "capability": [
                    {
                        "name": "Filter Encoding",
                        "description": "The following interfaces shall allow for the selection of subscription based on clearly defined criteria: Flight Status Subscription Management Interface, Subscription Management Interface. Subscription and AMQP 1.0 message filtering can be done based on the value of this ‘application-property’ using the ‘APACHE.ORG:SELECTOR’ syntax. The service may support other filters based on the operators defined in the OGC Filter Encoding 2.0 Encoding Standard on a case by case basis. "
                    }
                ]
            },
            "informationDefinition": [
                {
                    "name": "ADS-C GDSS",
                    "definition": "The ADS-C Ground Distribution Service distributes to ground users the ADS-C data collected from ATS B2 equipped aircraft by the ADS-C Common Service.",
                    "airmCorrespondence": "urn:aero:airm:1.0.0:ConceptualModel:Subjects:BaseInfrastructure:SurveillanceInfrastructure:AutomaticDependentSurveillanceContract"
                }
            ]
        },
        "technicalDescription": {
            "serviceMonitoring": {
                "monitoringDescription": "A service monitoring mechanism shall be made available to service consumers. The Service Status Monitoring Interface covers the Service Monitoring requirement."
            },
            "behaviour": [
                {
                    "name": "Typical Behaviour",
                    "description": "The service behaviour shall be in accordance with the patterns detailed in the Message Exchange Patterns: Identification Guidelines. The service behaviour is completely described in the EUROCONTROL Specification for Data Link Ground Distribution SWIM Services in chapter 5 containing all sequence diagrams for each interfaces of the service."
                }
            ]
        },
        "serviceInterface": [
            {
                "name": "Demand Contract Request Interface",
                "description": "The Demand Contract Request Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to request the creation of a demand contract with a specific aircraft.",
                "provisionSide": "PROVIDER_SIDE",
                "endpoints": [
                    {
                        "name": "/aircraft/<aircraftAddressHex>/demand-contract/",
                        "url": "https://localhost/aircraft/aircraftAddressHex/demand-contract/"
                    }
                ],
                "serviceInterfaceBinding": {
                    "name": "WS_LIGHT",
                    "description": "The WS Light Interface Binding as detailed in the EUROCONTROL Specification for SWIM Technical Infrastructure Yellow Profile, edition 1.1."
                },
                "networkInterfaceBinding": {
                    "name": "Selected network interface binding",
                    "description": "The service shall use the network bindings of the SWIM Technical Infrastructure (TI) Yellow Profile."
                },
                "operations": [
                    {
                        "name": "demandContractRequest",
                        "description": "The Demand Contract Request Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to request the creation of a demand contract with a specific aircraft. The Consumer receives a ‘demandContractReply’ confirming the Demand Contract Request has been delivered.",
                        "messages": [
                            {
                                "name": "demandContractRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "demandContractReply",
                                "direction": "OUT"
                            }
                        ]
                    }
                ],
                "messages": [
                    {
                        "name": "demandContractRequest",
                        "description": "This message allows a service consumer to request the creation of a demand contract with a specific aircraft.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-DCR-demandContractRequestV1.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "demandContractReply",
                        "description": "Reply message to the demandContractRequest confirming the Demand Contract Request has been delivered.",
                        "isError": false
                    }
                ]
            },
            {
                "name": "Service Status Monitoring Interface",
                "description": "The Service Status Monitoring Interface allows a consumer to retrieve updates of the SWIM ADS-C Ground Distribution Service health and operational status.",
                "provisionSide": "PROVIDER_SIDE",
                "serviceInterfaceBinding": {
                    "name": "SWIM_TI_YP_1_1_AMQP_MESSAGING",
                    "description": "The WS Light Interface Binding as detailed in the EUROCONTROL Specification for SWIM Technical Infrastructure Yellow Profile, edition 1.1."
                },
                "networkInterfaceBinding": {
                    "name": "Selected network interface binding",
                    "description": "The Service Status Monitoring Interface shall be conformant with the SWIM-TI Yellow Profile (v1.1+) Network Interface Bindings Specification."
                },
                "operations": [
                    {
                        "name": "publish",
                        "description": "This operation allows the interface consumer to retrieve updates of the SWIM ADS-C Ground Distribution Service health and operational status."
                    }
                ]
            },
            {
                "name": "Flight Status Interface",
                "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query: The ICAO 24-bit aircraft address based on the information available to the ADS-C Common Service based on the logon information received, The flight status of the aircraft, The last report of the aircraft.",
                "provisionSide": "PROVIDER_SIDE",
                "endpoints": [
                    {
                        "name": "/aircraft?flightId=<flightId>[&adep=<adep>][&ades=<ades>]/",
                        "url": "https://localhost/aircraft/"
                    },
                    {
                        "name": "/aircraft/<aircraftAddressHex>/flight-status",
                        "url": "https://localhost/aircraft/aircraftAddressHex/flight-status/"
                    },
                    {
                        "name": "/aircraft/<aircraftAddressHex>/last-report/",
                        "url": "https://localhost/aircraft/aircraftAddressHex/last-report/"
                    },
                    {
                        "name": "/aircraft/<aircraftAddressHex>/last-demand-report/",
                        "url": "https://localhost/aircraft/aircraftAddressHex/last-demand-report/"
                    },
                    {
                        "name": "/aircraft/<aircraftAddressHex>/last-event-report/",
                        "url": "https://localhost/aircraft/aircraftAddressHex/last-event-report/"
                    },
                    {
                        "name": "/aircraft/<aircraftAddressHex>/last-periodic-report/",
                        "url": "https://localhost/aircraft/aircraftAddressHex/last-periodic-report/"
                    },
                    {
                        "name": "/aircraft/<aircraftAddressHex>/contract-settings",
                        "url": "https://localhost/aircraft/aircraftAddressHex/contract-settings"
                    }
                ],
                "serviceInterfaceBinding": {
                    "name": "WS_LIGHT",
                    "description": ""
                },
                "networkInterfaceBinding": {
                    "name": "selected network interface binding",
                    "description": "The service shall use the network bindings of the SWIM Technical Infrastructure (TI) Yellow Profile."
                },
                "operations": [
                    {
                        "name": "Get icao Aircraft Address",
                        "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query the ICAO 24-bit aircraft address based on the information available to the ADS-C Common Service based on the logon information received.",
                        "messages": [
                            {
                                "name": "getAircraftAddressRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getAircraftAddressReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "Get Flight Status",
                        "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query the flight status of the aircraft.",
                        "messages": [
                            {
                                "name": "getFlightStatusRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getFlightStatusReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "Get Last Report",
                        "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query the last report of the aircraft.",
                        "messages": [
                            {
                                "name": "getLastReportRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getLastReportReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "Get Last Demand Report",
                        "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query the last demand report of the aircraft.",
                        "messages": [
                            {
                                "name": "getLastReportRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getLastReportReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "Get Last Event Report",
                        "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query the last event report of the aircraft.",
                        "messages": [
                            {
                                "name": "getLastReportRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getLastReportReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "Get Last Periodic Report",
                        "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query the last periodic report of the aircraft.",
                        "idempotency": "IDEMPOTENT",
                        "messages": [
                            {
                                "name": "getLastReportRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getLastReportReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "Get Contract Settings",
                        "description": "The Flight Status Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to query the contract settings of the aircraft.",
                        "messages": [
                            {
                                "name": "getContractSettingsRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getContractSettingsReply",
                                "direction": "OUT"
                            }
                        ]
                    }
                ],
                "messages": [
                    {
                        "name": "getAircraftAddressRequest",
                        "description": "This message allows a service consumer to query the ICAO 24-bit aircraft address.",
                        "isError": false
                    },
                    {
                        "name": "getAircraftAddressReply",
                        "description": "The reply message of the aircraft address request containing the ICAO 24-bit aircract address in hexadecimal representation.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-FSI-getAircraftAddressReply.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "getFlightStatusRequest",
                        "description": "This message allows a service consumer to query the flight status of the flight.",
                        "isError": false
                    },
                    {
                        "name": "getFlightStatusReply",
                        "description": "The reply message of the flight status request detailing the status of the flight.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-FSI-getFlightStatusReply.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "getLastReportRequest",
                        "description": "This message allows a service consumer to query the last report of the flight.",
                        "isError": false
                    },
                    {
                        "name": "getLastReportReply",
                        "description": "The reply message of the last report request detailing the last report of the flight.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-FSI-getLastReportReply.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "getContractSettingsRequest",
                        "description": "This message allows a service consumer to query contract settings of the flight.",
                        "isError": false
                    },
                    {
                        "name": "getContractSettingsReply",
                        "description": "The reply message of the last report request detailing the contract settings of the flight.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-FSI-getContractSettingsReply.xsd"
                        },
                        "isError": false
                    }
                ]
            },
            {
                "name": "Flight Status Subscription Management Interface",
                "description": "The Flight Status Subscription Management Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to subscribe to flight status changes he is interested in to receive via the Flight Status Data Publication Interface.",
                "provisionSide": "PROVIDER_SIDE",
                "endpoints": [
                    {
                        "name": "/flightStatusSubscriptions/",
                        "url": "https://localhost/flightStatusSubscriptions/"
                    },
                    {
                        "name": "/flightStatusSubscriptions/<subscriptionId>",
                        "url": "https://localhost/flightStatusSubscriptions/subscriptionId"
                    }
                ],
                "serviceInterfaceBinding": {
                    "name": "WS_LIGHT"
                },
                "networkInterfaceBinding": {
                    "name": "selected network interface binding",
                    "description": "The service shall use the network bindings of the SWIM Technical Infrastructure (TI) Yellow Profile."
                },
                "operations": [
                    {
                        "name": "subscribe",
                        "description": "This operation allows a consumer of the SWIM ADS-C Ground Distribution Service to subscribe to flight status changes he is interested in to receive, via the Flight Status Data Publication Interface.",
                        "messages": [
                            {
                                "name": "flightStatusSubscriptionRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "flightStatusSubscriptionReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "unsubscribe",
                        "description": "This operation allows a service consumer to unsubscribe from the flight status changes he is subscribed to.",
                        "messages": [
                            {
                                "name": "flightStatusUnsubscriptionRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "flightStatusUnsubscriptionReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "list subscriptions",
                        "description": "This operation allows a service consumer to obtain the list of subscriptions.",
                        "messages": [
                            {
                                "name": "getFlightStatusSubscriptionsRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getFlightStatusSubscriptionsReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "subscription details",
                        "description": "This operation allows a service consumer to obtain information on a specific subscriptions.",
                        "messages": [
                            {
                                "name": "flightStatusSubscriptionDetailsRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "flightStatusSubscriptionDetailsReply",
                                "direction": "OUT"
                            }
                        ]
                    }
                ],
                "messages": [
                    {
                        "name": "flightStatusSubscriptionRequest",
                        "description": "This message allows a consumer of the service to subscribe to flight status changes he is interested in.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-subscriptionRequest.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "flightStatusSubscriptionReply",
                        "description": "The reply message of the flight status subscription request confirming the subscription was successfully created.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-subscriptionReply.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "flightStatusUnsubscriptionRequest",
                        "description": "This message allows a consumer of the service to unsubscribe to a subscription he previously made on a flight status change.",
                        "isError": false
                    },
                    {
                        "name": "flightStatusUnsubscriptionReply",
                        "description": "The reply message of the flight status unsubscription request confirming the unsubscription was successful.",
                        "isError": false
                    },
                    {
                        "name": "getFlightStatusSubscriptionRequest",
                        "description": "This message allows a consumer of the service to list the subscriptions he is currently subscribed to.",
                        "isError": false
                    },
                    {
                        "name": "getFlightStatusSubscriptionReply",
                        "description": "The reply message of the list subscriptions request which is confirmed and detailing the list of flights status subscriptions he has.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-getSubscriptionsReply.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "flightStatusSubscriptionDetailsRequest",
                        "description": "This message allows a consumer of the service to get the details of his subscriptions.",
                        "isError": false
                    },
                    {
                        "name": "flightStatusSubscriptionDetailsReply",
                        "description": "The reply message of the subscriptions details request which is confirmed and giving the details of the subscriptions the service consumer.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-subscriptionDetailsReply.xsd"
                        },
                        "isError": false
                    }
                ]
            },
            {
                "name": "Flight Status Data Publication Interface",
                "description": "The Flight Status Data Publication Interface allows a consumer to obtain updates of the ADS-C exchanges of the flights he is interested in. It provides two ways of doing so: By creating an endpoint from which a consumer can listen to updates of flights matching certain filtering criteria defined in a subscription created through the Flight Status Subscription Management Interface. In which case he will receive in its subscription response the endpoint address created specifically for his subscription. The dynamic endpoint created for a specific subscription is labelled by /<address> in this document, the specific value taken by the <address> placeholder is resolved in runtime and provided in the subscription response. By defining a number of preconfigured static endpoints where predefined filters are already applied. These preconfigured static endpoints do not require the creation of a specific subscription by the consumer, they are created in design-time by the service provider and are readily available for any consumer, subject to authorization verification. These static endpoints are labelled by /<predefinedSubscription> in this document, the specific values taken by these endpoints is defined by the service provider during design-time. ",
                "provisionSide": "PROVIDER_SIDE",
                "serviceInterfaceBinding": {
                    "name": "SWIM_TI_YP_1_1_AMQP_MESSAGING",
                    "description": "The AMQP_MESSAGING Interface Binding as detailed in the EUROCONTROL Specification for SWIM Technical Infrastructure Yellow Profile, edition 1.1"
                },
                "networkInterfaceBinding": {
                    "name": "selected network interface binding",
                    "description": "The service shall use the network bindings of the SWIM TIYP. AMQP 1.0 shall be used to distribute messages as explained in the Publish/Subscribe Push MEP: Implementation Guidance: https://reference.swim.aero/technical-infrastructure/guidance-for-pub-sub-push-implementation.html"
                },
                "operations": [
                    {
                        "name": "Publish",
                        "description": "This operation allows the service provider to publish flight status updates to service consumers based on their subscriptions. By creating an endpoint from which a consumer can listen to updates of flights matching certain filtering criteria defined in a subscription created through the Flight Status Subscription Management Interface. In which case he will receive in its subscription response the endpoint address created specifically for his subscription. The dynamic endpoint created for a specific subscription is labelled by /<address> in this document, the specific value taken by the <address> placeholder is resolved in runtime and provided in the subscription response.",
                        "messages": [
                            {
                                "name": "flightstatus on /<address> dynamic endpoint, AMQP node",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "Publish",
                        "description": "By defining a number of preconfigured static endpoints where predefined filters are already applied. These preconfigured static endpoints do not require the creation of a specific subscription by the consumer, they are created in design-time by the service provider and are readily available for any consumer, subject to authorization verification. These static endpoints are labelled by /<predefinedSubscription> in this document, the specific values taken by these endpoints is defined by the service provider during design-time.",
                        "messages": [
                            {
                                "name": "flightstatus on /<predefinedSubscription> predefined static endpoint, AMQP node",
                                "direction": "OUT"
                            }
                        ]
                    }
                ]
            },
            {
                "name": "Subscription Management Interface",
                "description": "The Subscription Management Interface allows a consumer of the SWIM ADS-C Ground Distribution Service to select the set of datalink messages he is interested to receive via the Data Publication Interface.",
                "provisionSide": "PROVIDER_SIDE",
                "endpoints": [
                    {
                        "name": "/subscriptions/",
                        "url": "https://localhost/subscriptions/"
                    },
                    {
                        "name": "/subscriptions/<subscriptionId>",
                        "url": "https://localhost/subscriptions/subscriptionId/"
                    }
                ],
                "serviceInterfaceBinding": {
                    "name": "WS_LIGHT"
                },
                "networkInterfaceBinding": {
                    "name": "selected network interface binding",
                    "description": "The service shall use the network bindings of the SWIM Technical Infrastructure (TI) Yellow Profile."
                },
                "operations": [
                    {
                        "name": "subscribe",
                        "description": "This operation allows a consumer of the SWIM ADS-C Ground Distribution Service to select the set of datalink messages he is interested to receive via the Data Publication Interface.",
                        "messages": [
                            {
                                "name": "subscriptionRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "subscriptionReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "unsubscribe",
                        "description": "This operation allows a service consumer to unsubscribe from the set of datalink messages changes he is subscribed to.",
                        "messages": [
                            {
                                "name": "unsubscriptionRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "unsubscriptionReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "list subscriptions",
                        "description": "This operation allows a service consumer to obtain the list of subscriptions.",
                        "messages": [
                            {
                                "name": "getsubscriptionsRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "getsubscriptionsReply",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "subscription details",
                        "description": "This operation allows a service consumer to obtain information on a specific subscriptions.",
                        "messages": [
                            {
                                "name": "subscriptionDetailsRequest",
                                "direction": "IN"
                            },
                            {
                                "name": "subscriptionDetailsReply",
                                "direction": "OUT"
                            }
                        ]
                    }
                ],
                "messages": [
                    {
                        "name": "subscriptionRequest",
                        "description": "This message allows a consumer of the service to subscribe to a set of datalink messages he is interested in.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-subscriptionRequest.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "subscriptionReply",
                        "description": "The reply message of the subscription request indicating the subscription is confirmed.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-subscriptionReply.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "unsubscriptionRequest",
                        "description": "This message allows a consumer of the service to unsubscribe to a subscription he previously made.",
                        "isError": false
                    },
                    {
                        "name": "unsubscriptionReply",
                        "description": "The reply message of the flight status unsubscription request confirming the unsubscription was successful.",
                        "isError": false
                    },
                    {
                        "name": "getSubscriptionRequest",
                        "description": "This message allows a consumer of the service to list the subscriptions he is currently subscribed to.",
                        "isError": false
                    },
                    {
                        "name": "getSubscriptionReply",
                        "description": "The reply message of the list subscriptions request which is confirmed and detailing the list of subscriptions he has.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-getSubscriptionsReply.xsd"
                        },
                        "isError": false
                    },
                    {
                        "name": "subscriptionDetailsRequest",
                        "description": "This message allows a consumer of the service to get the details of his subscriptions.",
                        "isError": false
                    },
                    {
                        "name": "subscriptionDetailsReply",
                        "description": "The reply message of the subscriptions details request which is confirmed and giving the details of the subscriptions the service consumer.",
                        "schema": {
                            "url": "https://github.com/eurocontrol-swim/adsc-ground-distribution-service-schemas/blob/master/ACS-SMI-subscriptionDetailsReply.xsd"
                        },
                        "isError": false
                    }
                ]
            },
            {
                "name": "Data Publication Interface",
                "description": "The Data Publication Interface allows a consumer to obtain updates of the ADS-C exchanges of the flights he is interested in. It provides two ways of doing so: By creating an endpoint from which a consumer can listen to updates of flights matching certain filtering criteria defined in a subscription created through the Subscription Management Interface. In which case he will receive in its subscription response the endpoint address created specifically for his subscription. The dynamic endpoint created for a specific subscription is labelled by /<address> in this document, the specific value taken by the <address> placeholder is resolved in runtime and provided in the subscription response. By defining a number of preconfigured static endpoints where predefined filters are already applied. These preconfigured static endpoints do not require the creation of a specific subscription by the consumer, they are created in design-time by the service provider and are readily available for any consumer, subject to authorization verification. These static endpoints are labelled by /<predefinedSubscription> in this document, the specific values taken by these endpoints is defined by the service provider during design-time. ",
                "provisionSide": "PROVIDER_SIDE",
                "serviceInterfaceBinding": {
                    "name": "SWIM_TI_YP_1_1_AMQP_MESSAGING",
                    "description": "The AMQP_MESSAGING Interface Binding as detailed in the EUROCONTROL Specification for SWIM Technical Infrastructure Yellow Profile, edition 1.1"
                },
                "networkInterfaceBinding": {
                    "name": "selected network interface binding",
                    "description": "The service shall use the network bindings of the SWIM TIYP. AMQP 1.0 shall be used to distribute messages as explained in the Publish/Subscribe Push MEP: Implementation Guidance: https://reference.swim.aero/technical-infrastructure/guidance-for-pub-sub-push-implementation.html"
                },
                "operations": [
                    {
                        "name": "publish",
                        "description": "This operation allows the service provider to publish flight status updates to service consumers based on their subscriptions. By creating an endpoint from which a consumer can listen to updates of flights matching certain filtering criteria defined in a subscription created through the Flight Status Subscription Management Interface. In which case he will receive in its subscription response the endpoint address created specifically for his subscription. The dynamic endpoint created for a specific subscription is labelled by /<address> in this document, the specific value taken by the <address> placeholder is resolved in runtime and provided in the subscription response.",
                        "messages": [
                            {
                                "name": "/<address> dynamic endpoint, AMQP node",
                                "direction": "OUT"
                            }
                        ]
                    },
                    {
                        "name": "publish",
                        "description": "By defining a number of preconfigured static endpoints where predefined filters are already applied. These preconfigured static endpoints do not require the creation of a specific subscription by the consumer, they are created in design-time by the service provider and are readily available for any consumer, subject to authorization verification. These static endpoints are labelled by /<predefinedSubscription> in this document, the specific values taken by these endpoints is defined by the service provider during design-time.",
                        "messages": [
                            {
                                "name": "/<predefinedSubscription> predefined static endpoint, AMQP node",
                                "direction": "OUT"
                            }
                        ]
                    }
                ]
            }
        ],
        "references": {
            "serviceDocument": [
                {
                    "documentType": "SERVICE_SPECIFICATION",
                    "title": "EUROCONTROL Specification for Data Link Common Services for the Aeronautical Telecommunication Network (ATN), edition 1.0",
                    "version": "-",
                    "description": "This specification contains requirements for the ground implementation of data link common services for the Aeronautical Telecommunications Network (ATN) as defined by ICAO Annex 10 (Volume III, Part 1) https://www.eurocontrol.int/publication/eurocontrol-specification-data-link-common-services-aeronautical-telecommunication - 11/12/23"
                },
                {
                    "documentType": "SERVICE_SPECIFICATION",
                    "title": "EUROCONTROL Specification for SWIM Service Description, EUROCONTROL-SPEC-168, Edition 2.0",
                    "version": "-",
                    "description": "This specification contains requirements for service descriptions in the context of System Wide Information Management (SWIM) in Europe. https://www.eurocontrol.int/publication/eurocontrol-specification-swim-service-description-sd - 15/03/22"
                },
                {
                    "documentType": "INFORMATION_DEFINITION",
                    "title": "EUROCONTROL Specification for SWIM Information Definition, EUROCONTROL-SPEC-169, Edition 1.0",
                    "version": "-",
                    "description": "The EUROCONTROL Specification for SWIM Information Definition contains requirements for information definitions in the context of iSWIM in Europe. https://www.eurocontrol.int/publication/eurocontrol-specification-swim-information-definition - 01/12/17"
                },
                {
                    "documentType": "SERVICE_SPECIFICATION",
                    "title": "EUROCONTROL Specification for SWIM Technical Infrastructure (TI) Yellow Profile, EUROCONTROL-SPEC-170, Edition 1.1",
                    "version": "-",
                    "description": "The EUROCONTROL Specification for SWIM Technical Infrastructure Yellow Profile contains requirements for system interfaces (e.g. protocols) and for IT infrastructure capabilities required to enable a reliable, secure and efficient exchange of information in the context of iSWIM. This contributes to technical interoperability. https://www.eurocontrol.int/publication/eurocontrol-specification-swim-technical-infrastructure-ti-yellow-profile 05/07/20"
                },
                {
                    "documentType": "OTHER",
                    "title": "SESAR PJ38 PJ38-ADSCENSIO DEMOR Release 2, Deliverable D.1.2",
                    "version": "-",
                    "description": "Aircraft can provide essential information to support accurate and reliable trajectory prediction or alternative scenarios during the execution of a flight. The EU-funded PJ38-W3-ADSCENSIO project will improve several characteristics of air traffic control through the better prediction of flights’ behaviour. The project demonstrated the improvements in several operations performed by air traffic controllers as well as the efficiency and strength of a technological infrastructure to support the data link communications between the aircraft and ground on trajectory-related exchanges. The adoption of technical and operational solutions reduced controller workload in high traffic conditions, increase airspace capacity, and reduce flight delays, fuel consumption and CO2 emissions. https://cordis.europa.eu/project/id/101017626/results 27/06/23"
                },
                {
                    "documentType": "SERVICE_STANDARD",
                    "title": "EUROCAE, ED-228A, Safety and Performance Requirements Standard for Baseline 2 ATS Data Communications (Baseline 2 SPR Standard)",
                    "version": "-",
                    "description": "This standard provides the operational, safety, and performance requirements (SPR) for the implementation of data communication services that support air traffic services (ATS). https://eshop.eurocae.net/eurocae-documents-and-reports/ed-228a/# - 2016"
                },
                {
                    "documentType": "SERVICE_STANDARD",
                    "title": "EUROCAE, ED-228B, Safety and Performance Requirements Standard for Baseline 2 ATS Data Communication",
                    "version": "-",
                    "description": "This standard provides the operational, safety, and performance requirements (SPR) for the implementation of data communication services that support air traffic services (ATS). It is intended to support the communication element of the implementation of communication, navigation, and surveillance / air traffic management (CNS/ATM) systems in worldwide application. Revision B will take into account results from SESAR and NextGen validation exercises. It will also align the standard to relevant ICAO documentation and remove the D-RNP Requirements. https://www.eurocae.net/news/posts/2023/october/ed-228b-safety-and-performance-standard-for-baseline-2-ats-data-communication/ - 09/23"
                },
                {
                    "documentType": "SERVICE_STANDARD",
                    "title": "EUROCAE, ED-229-A Interoperability Requirements Standard for Baseline 2 ATS Data Communications (Baseline 2 Interop Standard)",
                    "version": "-",
                    "description": "This document provides the interoperability requirements (INTEROP) standard for the implementation of the Air Traffic Service (ATS) applications supporting the Baseline 2 data link services as specified in the Baseline 2 Safety and Performance Requirements (SPR) document [10]. This document addresses the interoperability of the ATS applications using the Aeronautical Telecommunication Network (ATN). https://eshop.eurocae.net/eurocae-documents-and-reports/ed-229a/ - 01/01/2016"
                },
                {
                    "documentType": "SERVICE_STANDARD",
                    "title": "EUROCAE, ED-229B, Interoperability Requirements Standard for Baseline 2 ATS Data Communication",
                    "version": "-",
                    "description": "This document provides the interoperability requirements (INTEROP) standard for the implementation of the Air Traffic Service (ATS) applications supporting the Baseline 2 data link services as specified in the Baseline 2 Safety and Performance Requirements (SPR) document. Revision B takes into account results from SESAR and NextGen validation exercises, and maintaining portable data link services and applications independent, to the maximum extent practical, of the underlying network technology. Revision B will take into account results from SESAR and NextGen validation exercises. It will also align the standard to relevant ICAO documentation and remove the D-RNP Requirements. https://www.eurocae.net/news/posts/2023/october/ed-229b-interoperability-requirements-standard-for-baseline-2-ats-data-communications/ 09/23"
                },
                {
                    "documentType": "OTHER",
                    "title": "OASIS, Advanced Message Queuing Protocol (AMQP)",
                    "version": "-",
                    "description": "The Advanced Message Queuing Protocol (AMQP) is an open internet protocol for business messaging. It defines a binary wire-level protocol that allows for the reliable exchange of business messages between two parties. AMQP has a layered architecture and the specification is organized as a set of parts that reflects that architecture. Part 1 defines the AMQP type system and encoding. Part 2 defines the AMQP transport layer, an efficient, binary, peer-to-peer protocol for transporting messages between two processes over a network. Part 3 defines the AMQP message format, with a concrete encoding. Part 4 defines how interactions can be grouped within atomic transactions. Part 5 defines the AMQP security layers. https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html 10/12"
                },
                {
                    "documentType": "OTHER",
                    "title": "EUROCONTROL, Message Exchange Patterns: Identification Guidelines",
                    "version": "-",
                    "description": "A message exchange pattern (MEP) identifies a repeatable sequence of messages exchanged between two systems, specifying the order, direction and cardinality of these messages (e.g. Request/Reply, Publish/Subscribe). https://reference.swim.aero/technical-infrastructure/message-exchange-patterns-identification-guidelines.html 02/07/19"
                },
                {
                    "documentType": "OTHER",
                    "title": "SESAR Deployment Programme Edition 2022",
                    "version": "-",
                    "description": "The SESAR Deployment Programme provides a common workplan to all operational stakeholders involved in the deployment of Regulation (EU) n. 2021/116, so called Common Project One (CP1), clearly defining the scope of the implementation activities, the synchronisation needs, as well as the suggested deployment approach. https://assets.ctfassets.net/krj50g99u3hm/3UqsgbBqgoXAPsnTXromQ4/6b4c06833b036866206b58fd69d63a0f/SESAR_Deployment_Programme_2022_approved.pdf"
                },
                {
                    "documentType": "OTHER",
                    "title": "AMQP 1.0 Filters",
                    "version": "-",
                    "description": "https://www.amqp.org/specification/1.0/filters"
                },
                {
                    "documentType": "OTHER",
                    "title": "Operation Excellence Programme Workstream 12.2 Concept of Operations (Deliverable DEL2.1-1)",
                    "version": "-",
                    "description": "The objective of this document is to describe the Concept of Operations (CONOPS) upon which the development of standardisation material will be prepared for the Operational Excellence Programme (OEP) workstream topic 12.2 to support implementation of the CP1 regulation [Ref 11] on ATM Functionality 6 (AF6) (Initial Trajectory Sharing). https://www.eurocontrol.int/sites/default/files/2022-10/eurocontrol-oep-12-2-workshop-conops-edition-1-0.pdf"
                },
                {
                    "documentType": "POLICY_DOCUMENT",
                    "title": "Commission Implementing Regulation (EU) No 2021/116 of 1 February 2021 on the establishment of the Common Project One",
                    "version": "-",
                    "description": "The Single European Skys ATM Research project, SESAR, is one of the most ambitious modernisation projects launched by the European Union, contributing to the implementation of the Single European Sky. SESARs goal is to define, develop and deploy the technological solutions needed to increase the performance and digitalisation of Europes ATM system in the most cost-, flight-efficient and environmentally friendly conditions. The adoption of the Reg. (EU) n. 716/2014 (Pilot Common Project or PCP), the establishment of the SESAR Deployment Manager as per Reg. (EU) n. 409/2013, as well as the subsequent elaboration of the initial SESAR Deployment Programme, marked all together a key step towards the Deployment Phase of SESAR. https://www.sesardeploymentmanager.eu/news/common-project-1-a-new-european-regulation-ensuring-the-continuation-of#:~:text=2021%2F116%2C%20Common%20Project%201,(ATM)%20modernisation%20in%20Europe 02/02/2021"
                }
            ]
        }
    }
}