{
  "informationService": {
    "descriptionInformation": {
      "descriptionIdentification": {
        "title": "OPMET API and PUB/SUB - TAF",
        "edition": "0.1",
        "referenceDate": "2025-11-26"
      },
      "abbreviations": [
        {
          "name": "AIRM",
          "description": "ATM Information Reference Model"
        },
        {
          "name": "AMQP",
          "description": "Advanced Queueing Message Protocol (1.0) – per SWIM TI Yellow Profile Messaging"
        },
        {
          "name": "ATC",
          "description": "Air Traffic Control"
        },
        {
          "name": "ATM",
          "description": "Air Traffic Management"
        },
	{
          "name": "FMI",
          "description": "Finnish Meteorological Institute"
        },
        {
          "name": "MET Norway",
          "description": "Norwegian Meteorological Institute"
        },
        {
          "name": "HTTP",
          "description": "Hypertext Transfer Protocol"
        },
        {
          "name": "ICAO",
          "description": "International Civil Aviation Organization"
        },
        {
          "name": "IER",
          "description": "Information Exchange Requirement"
        },
        {
          "name": "IR",
          "description": "Implementation Rules"
        },
        {
          "name": "ISRM",
          "description": "Information Service Reference Model"
        },
        {
          "name": "IWXXM",
          "description": "ICAO Meteorological Information Exchange Model"
        },
        {
          "name": "METAR",
          "description": "Meteorological Aerodrome Report"
        },
	{
          "name": "NAMCON",
          "description": "Northern Europe Aviation Meteorology Consortium"
        },	  
        {
          "name": "NWS",
          "description": "National Weather Service"
        },
        {
          "name": "OGC",
          "description": "Open Geospatial Consortium"
        },
        {
          "name": "PCP",
          "description": "Pilot Common Project"
        },
        {
          "name": "REQ",
          "description": "Requirement"
        },
        {
          "name": "WMO",
          "description": "World Meteorological Organization"
        },
        {
          "name": "SIGMET",
          "description": "Significant meteorological phenomena"
        },
        {
          "name": "TAF",
          "description": "Terminal Aerodrome Forecast"
        }
      ]
    },
    "serviceIdentification": {
      "name": "OPMET API and PUB/SUB - TAF",
      "version": "0.1"
    },
    "serviceAbstract": "The service provides the latest TAF reports in IWXXM for Norwegian aerodromes in compliance with ICAO Annex 3. Retrieval is available via (1) an OGC API - Environmental Data Retrieval (EDR) endpoint and (2) subscription over AMQP 1.0 where the IWXXM payload and message headers conform to the EUROCONTROL SWIM Technical Infrastructure Yellow Profile (Messaging).",
    "serviceProvider": {
      "providerType": [
        "REGULATED_METEOROLOGICAL_SERVICE_PROVIDER"
      ],
      "pointOfContact": [
        {
          "name": "MET Norway",
          "contactInformation": [
            {
              "type": "EMAIL",
              "address": "post@met.no"
            },
            {
              "type": "PHONE",
              "address": "+47 22 96 30 00"
            },
            {
              "type": "URL",
              "address": "https://www.met.no"
            }
          ],
          "role": "Data Provider"
        }
      ],
      "provider": "MET Norway",
      "providerDescription": "The Norwegian Meteorological Institute (MET Norway) is Norway’s national expert authority for weather and climate and provides regulated aeronautical meteorological services in accordance with ICAO Annex 3 and EU Implementing Regulations."
    },
    "serviceCategorisation": {
      "serviceType": "SWIM_COMPLIANT",
      "businessActivityType": [
        "AERODROME_OPERATION",
        "AIRSPACE_ORGANISATION_AND_MANAGEMENT",
        "INFORMATION_MANAGEMENT",
        "SERVICE_DELIVERY_MANAGEMENT"
      ],
      "intendedConsumer": [
        "AIR_TRAFFIC_SERVICE_PROVIDER",
        "AIRPORT_OPERATOR",
        "AIRSIDE_GROUND_HANDLER",
        "CIVIL_AIR_NAVIGATION_SERVICE_PROVIDER",
        "CIVIL_AIRSPACE_USER",
        "COMMUNICATION_NAVIGATION_AND_SURVEILLANCE_SERVICE_PROVIDER",
        "MILITARY_AIR_NAVIGATION_SERVICE_PROVIDER",
        "MILITARY_AIRSPACE_USER",
        "PROVIDER_OF_DATA_SERVICES",
        "REGULATED_METEOROLOGICAL_SERVICE_PROVIDER"
      ],
      "informationCategory": [
        "METEOROLOGICAL_INFORMATION_EXCHANGE"
      ],
      "applicationMessageExchangePattern": [
        {
          "name": "Request/Reply"
        },
        {
          "name": "Publish/Subscribe with Push Mechanism"
        }
      ],
      "geospatialCategorisation": {
        "countryCode": [
          "NO"
        ],
        "fir": [
            "ENOR", "ENOB"
        ],
          "description": "The dataset is valid for Norway (POLARIS FIR/ENOR) (BODO OCEANIC FIR/ENOB)."
      },
      "other": [
        {
          "name": "Service Type: METEOROLOGICAL_FEATURE_ACCESS_SERVICE",
          "value": "METEOROLOGICAL_FEATURE_ACCESS_SERVICE",
          "categorisationScheme": {
            "url": "http://reference.swim.aero/information-services/service-categories/CodeServiceType.html"
          }
        },
        {
          "name": "Service Type: METEOROLOGICAL_INFORMATION_SUBSCRIPTION_SERVICE",
          "value": "METEOROLOGICAL_INFORMATION_SUBSCRIPTION_SERVICE",
          "categorisationScheme": {
            "url": "http://reference.swim.aero/information-services/service-categories/CodeServiceType.html"
          }
        }
      ],
      "lifeCycle": [
        {
          "lifeCycleStage": "OPERATIONAL",
          "from": "2026-01-01"
        }
      ]
    },
    "generalDescription": {
      "operationalEnvironment": {
        "operationalNeeds": [
          {
            "name": "Operational Needs",
            "description": "This service contributes to fulfilling operational needs as defined in Commission Implementing Regulation (EU) 2017/373 and ICAO Annex 3. It supports the EU Implementing Regulation 2021/116 - Common Project One."
          },
          {
            "name": "Information Exchange Requirements",
            "description": "IER 1 - The information currently included in the TAF as defined in Commission Implementing Regulation (EU) 2017/373, ICAO Annex 3 Amendment 82, and PANS-MET."
          }
        ],
        "capabilities": [
          {
            "name": "Capabilities",
            "description": "The service provides high quality, up-to-date, trusted, regulated meteorological information in digital form for use by service consumers within the aviation domain."
          }
        ]
      },
      "functionality": [
        {
          "name": "Distribute Data",
          "description": "The service distributes the data according to the stored subscriptions and topics.",
          "realWorldEffect": "Information has been shared; the service consumer gets the requested data."
        },
        {
          "name": "Request Data",
          "description": "The consumer can request data from the service using an OGC API - EDR endpoint.",
          "realWorldEffect": "Information has been shared; the service consumer gets the requested data."
        },
        {
          "name": "Subscribe to Data",
          "description": "The user can subscribe to data via AMQP 1.0. Messages follow the SWIM TI Yellow Profile (Messaging).",
          "realWorldEffect": "Subscription established; data is received upon publication."
        }
      ],
      "qualitiesOfService": {
        "performance": [
          {
            "name": "Performance",
            "description": "Actual pre-operational status."
          }
        ],
        "reliability": [
          {
            "name": "Reliability",
            "description": "Actual pre-operational status."
          }
        ],
        "security": [
          {
            "name": "Security",
            "description": "SWIM TI Yellow Profile-compliant security controls (confidentiality, integrity, authentication)."
          }
        ]
      },
      "accessAndUseConditions": [
        {
          "name": "General Terms and Conditions of Business",
          "type": "LEGAL_CONSTRAINT",
          "description": "Terms and conditions are provided by MET Norway upon request."
        },
        {
          "name": "Customization",
          "type": "SERVICE_POLICY",
          "description": "Within the given constraints, the user can customize the service to individual needs if applicable. MET Norway provides the service delivery from beginning to end of the subscription. If no start time is given, the subscription starts immediately. If no end time is given, the subscription continues until the service is retired."
        },
        {
          "name": "Information Retainment",
          "type": "SERVICE_CONSUMPTION_CONSTRAINT",
          "description": "According to ICAO Annex 3, meteorological information is retained for a period of at least 30 days from the date of issue."
        },
        {
          "name": "Subscription",
          "type": "SERVICE_CONSUMPTION_CONSTRAINT",
          "description": "Consumers begin receiving data by connecting to the published endpoints with appropriate credentials; no explicit subscribe/unsubscribe API is provided."
        },
        {
          "name": "Authentication and authorization",
          "type": "SECURITY_CONSTRAINT",
          "description": "Access is limited to authorized users per SWIM TI Yellow Profile."
        },
        {
          "name": "Encryption",
          "type": "SECURITY_CONSTRAINT",
          "description": "Communication is encrypted per SWIM TI Yellow Profile."
        },
        {
          "name": "Signature",
          "type": "SECURITY_CONSTRAINT",
          "description": "The requested information may contain a digital signature using SHA-256 or stronger."
        }
      ],
      "validation": [
        {
          "type": "SELF_VALIDATION",
          "description": {
            "evidence": "Service tested by MET Norway"
          }
        }
      ],
      "dateInOperation": "2026-01-01"
    },
    "informationDescription": {
      "filtering": {
        "capability": [
          {
            "name": "Filtering Capabilities (EDR)",
            "description": "Filtering is exposed through OGC API - EDR query parameters and collections, including spatial, temporal, and parameter subsetting of IWXXM-derived attributes (e.g., aerodrome ICAO designator, validity period).",
            "reference": {
              "url": "https://ogcapi.ogc.org/edr/"
            }
          },
          {
            "name": "Filtering Capabilities (AMQP)",
            "description": "Topic-based filtering is available through the broker’s topic hierarchy. Private queues with provider-defined selectors consistent with SWIM TI Yellow Profile may be provisioned."
          }
        ]
      },
      "sourceOfInformation": "The service provider ensures that the data offered within this service is created by MET Norway, a REGULATED_METEOROLOGICAL_SERVICE_PROVIDER.",
      "informationDefinition": [
        {
          "name": "TAF (Terminal Aerodrome Forecast)",
          "definition": "A digital aeronautical meteorological forecast for an aerodrome, covering a defined validity period, encoded and exchanged using IWXXM.",
          "airmCorrespondence": "AIRM 1.0.0 :: TAF — correspondence and mapping notes: https://airm.aero/developers/icao-wxxm-3.0.0-to-airm-1.0.0-index",
          "datatype": "IWXXM 3.x TAF",
          "cardinality": "0..*",
          "constraints": "IWXXM version 3.0 (https://schemas.wmo.int/iwxxm/3.0/iwxxm.xsd). Payload is raw XML in AMQP messages and EDR responses; no size constraints.",
          "path": "/taf"
        }
      ]
    },
    "technicalDescription": {
      "serviceMonitoring": {
        "monitoringDescription": "MET Norways IT components are monitored with 24/7 maintenance."
      },
      "technicalConstraint": [
        {
          "name": "Transport Security",
          "description": "AMQP uses amqps:// over TLS. SASL EXTERNAL (client certificate) may be required. Provider aims to use server certificates in the EACP chain once available. Client certificate policy for consumers is under consideration."
        },
        {
          "name": "Topic Structure",
            "description": "Messages are published under weather.aviation.{taf,sigmet}. This covers all messages in the Norwegian FIRs ENOB and ENOR. AMQP 1.0 filters (e.g., ICAO location identifier) can be applied via message headers as defined by the message schema."
        },
        {
          "name": "Payload Encoding",
          "description": "IWXXM content is carried as plain text XML (not gzipped)."
        },
        {
          "name": "Flow Control and Limits",
          "description": "Default link credit and connection limits are to be confirmed; values will be documented in narrative connection documentation when available."
        }
      ],
      "behaviour": [
        {
          "name": "Typical Request/Reply Behaviour",
          "description": "The request is sent from the consumer to the EDR service, which processes the request and returns the TAF IWXXM payload. The service follows OGC API - EDR behaviour.",
          "reference": {
            "description": "OGC API - EDR",
            "url": "https://ogcapi.ogc.org/edr/"
          }
        },
        {
          "name": "Typical Data Distribution Behaviour",
          "description": "The service sends data to consumers when available and matching their connection parameters using AMQP 1.0 per SWIM TI Yellow Profile Messaging."
        }
      ]
    },
    "serviceInterface": [
      {
        "name": "EDR Request",
        "description": "The interface is used to receive the data via OGC API - EDR.",
        "provisionSide": "PROVIDER_SIDE",
        "schema": {
          "url": "https://aviation.met.no/api"
        },
        "endpoints": [
          {
            "name": "MET Norway SWIM EDR API",
            "description": "Connection between the service provider and the consumer via OGC API - EDR. Contact MET Norways Aviation Customer Service for credentials and collection details.",
            "url": "https://aviation.met.no/"
          }
        ],
        "serviceInterfaceBinding": {
          "name": "SWIM_TI_YP_1_1_HTTP_REST",
          "description": "HTTP(S) REST binding per SWIM Technical Infrastructure Yellow Profile."
        },
        "networkInterfaceBinding": {
          "name": "IPV4_SECURE_UNICAST",
          "description": "Service supports IPv4 secure unicast and IPv6 secure unicast over TLS (mTLS per policy)."
        },
        "operations": [
          {
            "name": "EDR operations",
            "description": "Standard EDR retrieval operations (collection discovery, location queries, temporal subsetting).",
            "idempotency": "IDEMPOTENT",
            "messages": [
              {
                "name": "EDR Request",
                "direction": "IN"
              },
              {
                "name": "EDR Response",
                "direction": "OUT"
              }
            ]
          }
        ],
        "messages": [
          {
            "name": "EDR Response",
            "description": "Response payload structure and parameters are defined by the OpenAPI document.",
            "schema": {
              "url": "https://aviation.met.no/desc"
            }
          }
        ],
        "messageExchangePattern": "SYNCHRONOUS_REQUEST_RESPONSE"
      },
      {
        "name": "AMQP Push Service",
        "description": "The interface is used to receive published data via AMQP 1.0 per SWIM TI Yellow Profile Messaging.",
        "provisionSide": "PROVIDER_SIDE",
        "schema": {
          "url": "https://raw.githubusercontent.com/iblsoft/swimdemo/acf23736bca2a55a0184988acbcd52cd8f8b88c3/schema/cp1/taf.json"
        },
        "endpoints": [
          {
            "name": "AMQPBrokerNAMCON",
              "description": "Connection for AMQP 1.0 notifications and payload delivery according to the consumer’s connection for all NAMCON contries, hosted by FMI. Contact FMI for credentials at ilmailu@fmi.fi",
              "url": "amqps://namcon-swim-broker.fmi.fi:5671"
          }
        ],
        "serviceInterfaceBinding": {
          "name": "AMQP_MESSAGING",
          "description": "Binding aligned with EUROCONTROL SWIM Technical Infrastructure Yellow Profile (Messaging)."
        },
        "networkInterfaceBinding": {
          "name": "IPV4_SECURE_UNICAST",
          "description": "Service supports IPv4 secure unicast and IPv6 secure unicast over TLS (mTLS per policy)."
        },
        "operations": [
          {
            "name": "dataDelivery",
            "description": "The IWXXM payload is delivered directly in the AMQP message or via reference to an EDR resource.",
            "idempotency": "NON_IDEMPOTENT",
            "messages": [
              {
                "name": "dataDelivery",
                "direction": "OUT"
              }
            ]
          }
        ],
        "messages": [
          {
            "name": "dataDelivery",
            "description": "AMQP message contract including headers/properties and IWXXM payload shape for TAF.",
            "schema": {
              "url": "https://raw.githubusercontent.com/iblsoft/swimdemo/acf23736bca2a55a0184988acbcd52cd8f8b88c3/schema/cp1/taf.json"
            }
          }
        ],
        "messageExchangePattern": "BROKERED_PUBLISH_SUBSCRIBE_WITH_PUSH_MECHANISM"
      }
    ],
    "references": {
      "implementedStandard": [
        {
          "title": "OGC API - Environmental Data Retrieval (EDR)",
          "standardType": "SERVICE_STANDARD",
          "conformanceStatement": "is conformant",
          "version": "1.1.0",
          "description": "OGC API - Environmental Data Retrieval"
        },
        {
          "title": "EUROCONTROL SWIM Technical Infrastructure - Yellow Profile (Messaging, AMQP 1.0)",
          "standardType": "EUROCONTROL_SPECIFICATION_FOR_SWIM_TECHNICAL_INFRASTRUCTURE",
          "conformanceStatement": "is conformant",
          "version": "2.0",
          "description": "Advanced Message Queuing Protocol 1.0 per SWIM TI Yellow Profile"
        }
      ]
    }
  }
}
