openapi: 3.1.0
info:
  title: 'OGC API - Connected Systems - Part 1: Feature Resources'
  version: 0.0.1
  description: |-
    Example OpenAPI specification for part 1 of [OGC API - Connected Systems](https://github.com/opengeospatial/connected_systems).  
    This Standard also conforms to [OGC API - Features](https://ogcapi.ogc.org/features/).
  contact:
    name: OGC API Support
    url: https://www.ogc.org/contact
    email: info@ogc.org
  license:
    name: OGC License
    url: https://www.ogc.org/ogc/Document
  x-logo:
    url: https://www.ogc.org/wp-content/uploads/2023/03/OGC-1.svg
    backgroundColor: '#FFFFFF'
    altText: OGC logo
    href: https://www.ogc.org
servers:
  - url: https://api.georobotix.io/ogc/t18/api
    description: OGC Testbed Demo Server
  - url: http://localhost:8181/sensorhub/api
    description: Local test server
tags:
  - name: Capabilities
    description: Essential characteristics of the information available from the API.
  - name: Collections
    description: |-
      Collections allow a client to discover available resources in a way that is conformant with OGC API Features
      and OGC API Common.

      All Connected Systems resource types are always available through their canonical collections at the service root,
      but OGC API Collections provide an additional way of grouping and accessing these resources.
      In particular, Collections allow a service provider to group resources logically according to any criteria.

      For example, collections can be used to:
        - Group all `Systems` of the same type (e.g. all UAV platforms, all hydrological sensors, etc.).
        - Group all `Procedures` of the same type (e.g. all platform types, all CBRNE sensor models, etc.).
        - Group resources by project (e.g. all `Deployments`, `Systems`, `Datastreams` and `Sampling Features` relevant to a given data acquisition campaign)
  - name: Systems
    description: |-
      Systems are entities that can produce data feeds and/or receive commands (e.g. sensors and sensor networks, platforms, actuators,
      processing components, etc.). Many systems can be classified as 'observing systems' that produce observations of one or more
      features of interest.
  - name: Deployments
    description: Deployments describe how systems are being deployed at a particular place and time.
  - name: Procedures
    description: |-
      Procedures provide information about the behavior of a system to accomplish its task(s).
      Procedures include descriptions of system kinds (e.g. a hardware device's datasheet), as well as methodologies or specific
      configurations of these systems (e.g. steps followed by an operator to accomplish a sensing or sampling task).
  - name: Sampling Features
    description: |-
      Sampling Features link Systems with ultimate features of interest, describing exactly what part of a larger feature is being
      interacted with.
  - name: Properties
    description: |-
      Property resources provide the definitions of derived properties that are used throughout the API.

      Derived properties are specific to a type of feature, a type of system, or even to a particular organization, project or deployment.
      Property definitions are referenced by feature schemas, system and deployment descriptions, datastream and control stream schemas, etc.

      Depending on the context they are used in, they can represent properties that are asserted (e.g. system characteristic), observed
      (observed or observable property) or controlled (controlled or controllable property).
paths:
  /:
    get:
      summary: Landing Page
      description: The landing page provides links to the API definition, the conformance statements and to the feature collections in this dataset.
      tags:
        - Capabilities
      responses:
        '200':
          description: The links to the API capabilities.
          content: &ref_297
            application/json:
              schema:
                type: object
                required: &ref_186
                  - links
                properties: &ref_187
                  title:
                    type: string
                    example: Buildings in Bonn
                  description:
                    type: string
                    example: Access to data about buildings in the city of Bonn via a Web API that conforms to the OGC API Features specification.
                  links:
                    type: array
                    items:
                      type: object
                      required: &ref_0
                        - href
                        - rel
                      properties: &ref_1
                        href:
                          type: string
                          example: http://data.example.com/buildings/123
                        rel:
                          type: string
                          example: alternate
                        type:
                          type: string
                          example: application/geo+json
                        hreflang:
                          type: string
                          example: en
                        title:
                          type: string
                          example: Trierer Strasse 70, 53115 Bonn
                        length:
                          type: integer
              example:
                title: OGC API - Connected Systems
                description: Access to system datastreams and command and control capabilities.
                links:
                  - rel: service-desc
                    href: https://data.example.com/api/doc
                  - rel: conformance
                    href: https://data.example.com/api/conformance
                  - rel: collections
                    href: https://data.example.com/api/collections
  /conformance:
    get:
      summary: Conformance
      description: A list of all conformance classes specified in a standard that the server conforms to.
      tags:
        - Capabilities
      responses:
        '200':
          description: The URIs of all requirements classes supported by the server.
          content: &ref_298
            application/json:
              schema:
                type: object
                required: &ref_188
                  - conformsTo
                properties: &ref_189
                  conformsTo:
                    type: array
                    items:
                      type: string
                      example: http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core
              example:
                conformsTo:
                  - http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/core
                  - http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/html
                  - http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/json
                  - http://www.opengis.net/spec/ogcapi-common-1/1.0/conf/oas30
                  - http://www.opengis.net/spec/ogcapi-common-2/0.0/conf/collections
                  - http://www.opengis.net/spec/ogcapi-common-2/0.0/conf/html
                  - http://www.opengis.net/spec/ogcapi-common-2/0.0/conf/json
                  - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core
                  - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson
                  - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/html
                  - http://www.opengis.net/spec/ogcapi-features-4/1.0/conf/create-replace-delete
                  - http://www.opengis.net/spec/ogcapi-connectedsystems-1/1.0/conf/system
                  - http://www.opengis.net/spec/ogcapi-connectedsystems-1/1.0/conf/procedure
                  - http://www.opengis.net/spec/ogcapi-connectedsystems-1/1.0/conf/deployment
                  - http://www.opengis.net/spec/ogcapi-connectedsystems-1/1.0/conf/sampling
                  - http://www.opengis.net/spec/ogcapi-connectedsystems-2/1.0/conf/geojson
                  - http://www.opengis.net/spec/ogcapi-connectedsystems-1/1.0/conf/sensorml
  /collections:
    get:
      summary: List all available collections
      description: List or search all collections available from this server endpoint.
      tags:
        - Collections
      parameters:
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: &ref_5
            oneOf:
              - type: array
                title: 2D Bbox
                minItems: 4
                maxItems: 4
                items:
                  type: number
              - type: array
                title: 3D Bbox
                minItems: 6
                maxItems: 6
                items:
                  type: number
          style: form
          explode: false
          examples: &ref_6
            2d:
              summary: 2D bbox
              value: '-180,-90,180,90'
            3d:
              summary: 3D bbox
              value: '-180,-90,180,90,0,1000'
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: &ref_7
            oneOf: &ref_190
              - title: Time Instant
                description: |-
                  ISO 8601 encoded time instant or special value.
                  Examples:
                    * A time instant: "2020-02-12T23:20:50Z" or "2020-01-15Z"
                    * Special indeterminate value: "now", "latest"
                oneOf:
                  - title: ISO Date
                    type: string
                    format: date
                  - title: ISO Date/Time
                    type: string
                    format: date-time
                  - title: Special Value
                    type: string
                    enum:
                      - now
                      - latest
              - title: Time Period
                description: |-
                  ISO 8601 encoded time period that can include special values.
                  Examples:
                    * A closed interval: "2020-02-12T00:00:00Z/2020-03-18T12:31:12Z" or "2020-01-15Z/2020-02-16Z"
                    * An open interval: "2020-02-12T00:00:00Z/.." or "../2020-03-18T12:31:12Z"
                    * An interval with indeterminate value: "2020-02-12T00:00:00Z/now", "2020-02-12T00:00:00Z/latest" or "now/.."
                type: array
                minItems: 2
                maxItems: 2
                items:
                  oneOf:
                    - title: ISO Date
                      type: string
                      format: date
                    - title: ISO Date/Time
                      type: string
                      format: date-time
                    - title: Special Value
                      type: string
                      enum:
                        - now
                        - latest
          style: form
          explode: false
          examples: &ref_8
            instant:
              summary: Time instant
              value: '2018-02-12T23:20:50Z'
            now:
              summary: Current time
              value: now
            period:
              summary: Bounded interval
              value: 2018-02-12T00:00:00Z/2018-03-18T12:31:12Z
            period2:
              summary: Half-bounded interval
              value: 2018-02-12T00:00:00Z/..
            period3:
              summary: From date/time to now
              value: 2018-02-12T00:00:00Z/now
            period4:
              summary: From now to date/time
              value: now/2018-02-12T00:00:00Z
            period5:
              summary: Anything up to now
              value: ../now
            period6:
              summary: Anything from now on
              value: now/..
            latest:
              summary: Latest
              value: latest
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: &ref_9
            type: string
          examples: &ref_10
            point:
              value: LINESTRING((-86.53 12.45), (-86.54 12.46), (-86.55 12.47))
            polygon:
              value: POLYGON((0 0,4 0,4 4,0 4,0 0))
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: &ref_11
            type: array
            items:
              type: string
              minLength: 1
              maxLength: 50
          explode: false
          examples: &ref_12
            case1:
              summary: One keyword
              value: temp
            case2:
              summary: Several keywords
              value: gps,imu
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: &ref_13
            type: integer
            minimum: 1
            maximum: 10000
            default: 10
          style: form
          explode: false
      responses:
        '200':
          description: The list of collections available on this endpoint
          content: &ref_299
            application/json:
              schema:
                type: object
                required:
                  - links
                  - collections
                properties:
                  links:
                    type: array
                    items:
                      type: object
                      required: *ref_0
                      properties: *ref_1
                  collections:
                    type: array
                    items:
                      type: object
                      required: &ref_2
                        - id
                        - links
                      properties: &ref_3
                        id:
                          description: identifier of the collection used, for example, in URIs
                          type: string
                          example: address
                        title:
                          description: human readable title of the collection
                          type: string
                          example: address
                        description:
                          description: a description of the features in the collection
                          type: string
                          example: An address.
                        links:
                          type: array
                          items:
                            type: object
                            required: *ref_0
                            properties: *ref_1
                          example:
                            - href: http://data.example.com/buildings
                              rel: item
                            - href: http://example.com/concepts/buildings.html
                              rel: describedby
                              type: text/html
                        extent:
                          description: |-
                            The extent of the features in the collection. In the Core only spatial and temporal
                            extents are specified. Extensions may add additional members to represent other
                            extents, for example, thermal or pressure ranges.

                            An array of extents is provided for each extent type (spatial, temporal). The first item
                            in the array describes the overall extent of the data. All subsequent items describe more
                            precise extents, e.g., to identify clusters of data. Clients only interested in the
                            overall extent will only need to access the first extent in the array.
                          type: object
                          properties: &ref_191
                            spatial:
                              description: The spatial extent of the features in the collection.
                              type: object
                              properties:
                                bbox:
                                  description: |-
                                    One or more bounding boxes that describe the spatial extent of the dataset.
                                    In the Core only a single bounding box is supported.

                                    Extensions may support additional areas.
                                    The first bounding box describes the overall spatial
                                    extent of the data. All subsequent bounding boxes describe
                                    more precise bounding boxes, e.g., to identify clusters of data.
                                    Clients only interested in the overall spatial extent will
                                    only need to access the first bounding box in the array.
                                  type: array
                                  minItems: 1
                                  items:
                                    description: |-
                                      Each bounding box is provided as four or six numbers, depending on
                                      whether the coordinate reference system includes a vertical axis
                                      (height or depth):

                                      * Lower left corner, coordinate axis 1
                                      * Lower left corner, coordinate axis 2
                                      * Minimum value, coordinate axis 3 (optional)
                                      * Upper right corner, coordinate axis 1
                                      * Upper right corner, coordinate axis 2
                                      * Maximum value, coordinate axis 3 (optional)

                                      If the value consists of four numbers, the coordinate reference system is
                                      WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
                                      unless a different coordinate reference system is specified in `crs`.

                                      If the value consists of six numbers, the coordinate reference system is WGS 84
                                      longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
                                      unless a different coordinate reference system is specified in `crs`.

                                      For WGS 84 longitude/latitude the values are in most cases the sequence of
                                      minimum longitude, minimum latitude, maximum longitude and maximum latitude.
                                      However, in cases where the box spans the antimeridian the first value
                                      (west-most box edge) is larger than the third value (east-most box edge).

                                      If the vertical axis is included, the third and the sixth number are
                                      the bottom and the top of the 3-dimensional bounding box.

                                      If a feature has multiple spatial geometry properties, it is the decision of the
                                      server whether only a single spatial geometry property is used to determine
                                      the extent or all relevant geometries.
                                    type: array
                                    oneOf:
                                      - minItems: 4
                                        maxItems: 4
                                      - minItems: 6
                                        maxItems: 6
                                    items:
                                      type: number
                                    example:
                                      - -180
                                      - -90
                                      - 180
                                      - 90
                                crs:
                                  description: |-
                                    Coordinate reference system of the coordinates in the spatial extent
                                    (property `bbox`). The default reference system is WGS 84 longitude/latitude.
                                    In the Core the only other supported coordinate reference system is
                                    WGS 84 longitude/latitude/ellipsoidal height for coordinates with height.
                                    Extensions may support additional coordinate reference systems and add
                                    additional enum values.
                                  type: string
                                  enum:
                                    - http://www.opengis.net/def/crs/OGC/1.3/CRS84
                                    - http://www.opengis.net/def/crs/OGC/0/CRS84h
                                  default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
                            temporal:
                              description: The temporal extent of the features in the collection.
                              type: object
                              properties:
                                interval:
                                  description: |-
                                    One or more time intervals that describe the temporal extent of the dataset.
                                    In the Core only a single time interval is supported.

                                    Extensions may support multiple intervals.
                                    The first time interval describes the overall
                                    temporal extent of the data. All subsequent time intervals describe
                                    more precise time intervals, e.g., to identify clusters of data.
                                    Clients only interested in the overall temporal extent will only need
                                    to access the first time interval in the array (a pair of lower and upper
                                    bound instants).
                                  type: array
                                  minItems: 1
                                  items:
                                    description: |-
                                      Begin and end times of the time interval. The timestamps are in the
                                      temporal coordinate reference system specified in `trs`. By default
                                      this is the Gregorian calendar.

                                      The value `null` at start or end is supported and indicates a half-bounded interval.
                                    type: array
                                    minItems: 2
                                    maxItems: 2
                                    items:
                                      type: string
                                      format: date-time
                                      nullable: true
                                    example:
                                      - '2011-11-11T12:22:11Z'
                                      - null
                                trs:
                                  description: |-
                                    Coordinate reference system of the coordinates in the temporal extent
                                    (property `interval`). The default reference system is the Gregorian calendar.
                                    In the Core this is the only supported temporal coordinate reference system.
                                    Extensions may support additional temporal coordinate reference systems and add
                                    additional enum values.
                                  type: string
                                  enum:
                                    - http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
                                  default: http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
                        itemType:
                          description: indicator about the type of the items in the collection (the default value is 'feature').
                          type: string
                          default: feature
                        crs:
                          description: the list of coordinate reference systems supported by the service
                          type: array
                          items:
                            type: string
                          default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
                          example:
                            - http://www.opengis.net/def/crs/OGC/1.3/CRS84
                            - http://www.opengis.net/def/crs/EPSG/0/4326
              examples:
                catchall:
                  summary: Mandatory Collections
                  value:
                    collections:
                      - id: all_systems
                        title: All Connected Systems
                        description: All systems registered on this server (e.g. platforms, sensors, actuators, processes)
                        itemType: feature
                        featureType: ssn:System
                        links:
                          - rel: items
                            title: Access the features in this collection
                            href: https://data.example.org/api/collections/all_systems/items?f=json
                            type: application/json
                      - id: all_procedures
                        title: All Procedures and System Datasheets
                        description: All procedures (e.g. system datasheets) implemented by systems registered on this server
                        itemType: feature
                        featureType: sosa:Procedure
                        links:
                          - rel: items
                            title: Access the features in this collection
                            href: https://data.example.org/api/collections/all_procedures/items?f=json
                            type: application/json
                      - id: all_deployments
                        title: All System Deployments
                        description: All deployments involving systems registered on this server
                        itemType: feature
                        featureType: ssn:Deployment
                        links:
                          - rel: items
                            title: Access the features in this collection
                            href: https://data.example.org/api/collections/all_deployments?f=json
                            type: application/json
                          - rel: describedby
                            title: Schema for features in the collection
                            anchor: https://data.example.org/api/collections/all_deployments?f=json
                            href: https://data.example.org/api/schemas/deployments?f=json
                            type: application/schema+json
                    links:
                      - rel: self
                        title: This document
                        href: https://data.example.org/api/collections?f=json
                        type: application/json
                      - rel: alternate
                        title: This document as HTML
                        href: https://data.example.org/api/collections?f=html
                        type: text/html
                custom:
                  summary: Custom Collections
                  value:
                    collections:
                      - id: uxs_systems
                        title: Unmanned Systems
                        description: All unmanned systems registered on this server
                        itemType: feature
                        featureType: ssn:System
                        links:
                          - rel: items
                            title: Access the features in this collection
                            href: https://data.example.org/api/collections/uxs_systems/items?f=json
                            type: application/json
                      - id: uxs_procedures
                        title: Unmanned Systems Datasheets
                        description: Datasheets for unmanned systems registered on this server (UAV, UGV, USV, etc.)
                        itemType: feature
                        featureType: sosa:Procedure
                        links:
                          - rel: items
                            title: Access the features in this collection
                            href: https://data.example.org/api/collections/uxs_procedures/items?f=json
                            type: application/json
                      - id: uxs_deployments
                        title: Unmanned System Deployments
                        description: All deployments of unmanned systems
                        itemType: feature
                        featureType: ssn:Deployment
                        links:
                          - rel: items
                            title: Access the features in this collection
                            href: https://data.example.org/api/collections/uxs_deployments/items?f=json
                            type: application/json
                      - id: noaa_systems
                        title: NOAA Observation Systems
                        description: Observation systems operated by NOAA
                        itemType: feature
                        featureType: ssn:System
                        links:
                          - rel: items
                            title: Access the features in this collection
                            href: https://data.example.org/api/collections/noaa_systems/items?f=json
                            type: application/json
                    links:
                      - rel: self
                        title: This document
                        href: https://data.example.org/api/collections?f=json
                        type: application/json
                      - rel: alternate
                        title: This document as HTML
                        href: https://data.example.org/api/collections?f=html
                        type: text/html
  /collections/{collectionId}:
    get:
      summary: Get collection metadata
      description: Retrieve metadata about a specific collection.
      tags:
        - Collections
      parameters:
        - name: collectionId
          in: path
          description: Local identifier of a collection
          required: true
          schema: &ref_4
            type: string
            minLength: 1
      responses:
        '200':
          description: Metadata for a feature collection.
          content: &ref_300
            application/json:
              schema:
                type: object
                required: *ref_2
                properties: *ref_3
  /collections/{collectionId}/items:
    get:
      summary: List all items in a collection
      description: |-
        Retrieve collections items, which can be Systems, Deployments, Procedures, Sampling Features, Properties, or any other features.

        Please see the documentation of the specifics of each feature type in the corresponding section.
      tags:
        - Collections
      parameters:
        - name: collectionId
          in: path
          description: Local identifier of a collection
          required: true
          schema: *ref_4
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: &ref_107
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: &ref_109
              - type: array
                title: Local IDs
                minItems: 1
                items:
                  type: string
                  minLength: 1
              - type: array
                title: Unique IDs
                minItems: 1
                items:
                  type: string
                  format: uri
          explode: false
          examples: &ref_108
            id:
              summary: Local IDs
              value: RES_ID1,RES_ID2,RES_ID63
            uri:
              summary: Unique IDs
              value: urn:example:resource:001,urn:example:resource:033
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: Feature collection resource
          content: &ref_301
            application/geo+json:
              schema:
                type: object
                required: &ref_208
                  - type
                  - features
                properties: &ref_209
                  type:
                    type: string
                    enum:
                      - FeatureCollection
                  features:
                    type: array
                    items:
                      type: object
                      required: &ref_206
                        - type
                        - geometry
                        - properties
                      properties: &ref_207
                        type:
                          type: string
                          enum:
                            - Feature
                        geometry:
                          oneOf: &ref_14
                            - type: object
                              required: &ref_192
                                - type
                                - coordinates
                              properties: &ref_193
                                type:
                                  type: string
                                  enum:
                                    - Point
                                coordinates:
                                  type: array
                                  minItems: 2
                                  items:
                                    type: number
                            - type: object
                              required: &ref_194
                                - type
                                - coordinates
                              properties: &ref_195
                                type:
                                  type: string
                                  enum:
                                    - MultiPoint
                                coordinates:
                                  type: array
                                  items:
                                    type: array
                                    minItems: 2
                                    items:
                                      type: number
                            - type: object
                              required: &ref_196
                                - type
                                - coordinates
                              properties: &ref_197
                                type:
                                  type: string
                                  enum:
                                    - LineString
                                coordinates:
                                  type: array
                                  minItems: 2
                                  items:
                                    type: array
                                    minItems: 2
                                    items:
                                      type: number
                            - type: object
                              required: &ref_198
                                - type
                                - coordinates
                              properties: &ref_199
                                type:
                                  type: string
                                  enum:
                                    - MultiLineString
                                coordinates:
                                  type: array
                                  items:
                                    type: array
                                    minItems: 2
                                    items:
                                      type: array
                                      minItems: 2
                                      items:
                                        type: number
                            - type: object
                              required: &ref_200
                                - type
                                - coordinates
                              properties: &ref_201
                                type:
                                  type: string
                                  enum:
                                    - Polygon
                                coordinates:
                                  type: array
                                  items:
                                    type: array
                                    minItems: 4
                                    items:
                                      type: array
                                      minItems: 2
                                      items:
                                        type: number
                            - type: object
                              required: &ref_202
                                - type
                                - coordinates
                              properties: &ref_203
                                type:
                                  type: string
                                  enum:
                                    - MultiPolygon
                                coordinates:
                                  type: array
                                  items:
                                    type: array
                                    items:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: array
                                        minItems: 2
                                        items:
                                          type: number
                            - type: object
                              required: &ref_204
                                - type
                                - geometries
                              properties: &ref_205
                                type:
                                  type: string
                                  enum:
                                    - GeometryCollection
                                geometries:
                                  type: array
                                  items:
                                    oneOf: *ref_14
                        properties:
                          type: object
                          nullable: true
                        id:
                          oneOf:
                            - type: string
                            - type: integer
                        links:
                          type: array
                          items:
                            type: object
                            required: *ref_0
                            properties: *ref_1
                  links:
                    type: array
                    items:
                      type: object
                      required: *ref_0
                      properties: *ref_1
                  timeStamp:
                    type: string
                    format: date-time
                  numberMatched:
                    type: integer
                    minimum: 0
                  numberReturned:
                    type: integer
                    minimum: 0
    post:
      summary: Add an item to a collection
      description: |-
        Add a new resource to the parent collection.

        If actual resource descriptions are provided in the body, new resources will be created and added to the parent collection.
        The new resources will also be available at the corresponding canonical resources endpoint (e.g. `/systems` if the resource is a system).

        Existing resources can also be added to a collection by providing one or more links to existing resources.
      tags:
        - Collections
      requestBody:
        required: true
        content: &ref_313
          text/uri-list:
            description: A list of links to system resources
            schema:
              type: string
            examples:
              links:
                summary: Links to System resources
                value: |-
                  https://data.example.org/api/systems/2f35ofoms2l6
                  https://data.example.org/api/systems/PLT412
              uids:
                summary: UIDs of System resources
                value: |-
                  urn:uuid:b2995d6b-9f25-4cec-869e-0e846b80f39c
                  urn:x-usgs:stations:00125488
          application/json:
            description: A list of links to system resources
            schema:
              title: One or more links or UIDs of system resources
              type: array
              minItems: 1
              items:
                type: string
                format: uri
            examples:
              link:
                summary: Links to System resources
                value:
                  - https://data.example.org/api/systems/2f35ofoms2l6
                  - https://data.example.org/api/systems/PLT412
          application/geo+json:
            schema:
              oneOf:
                - title: Single System
                  $schema: http://json-schema.org/draft-07/schema#
                  allOf: &ref_17
                    - $schema: http://json-schema.org/draft-07/schema#
                      allOf: &ref_105
                        - $schema: http://json-schema.org/draft-07/schema#
                          $id: https://geojson.org/schema/Feature.json
                          title: GeoJSON Feature
                          type: object
                          required: &ref_210
                            - type
                            - properties
                            - geometry
                          properties: &ref_211
                            type:
                              type: string
                              enum:
                                - Feature
                            id:
                              oneOf:
                                - type: number
                                - type: string
                            properties:
                              oneOf:
                                - type: 'null'
                                - type: object
                            geometry:
                              oneOf:
                                - type: 'null'
                                - title: GeoJSON Point
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Point
                                    coordinates:
                                      type: array
                                      minItems: 2
                                      items:
                                        type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON LineString
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - LineString
                                    coordinates:
                                      type: array
                                      minItems: 2
                                      items:
                                        type: array
                                        minItems: 2
                                        items:
                                          type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON Polygon
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Polygon
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        minItems: 4
                                        items:
                                          type: array
                                          minItems: 2
                                          items:
                                            type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON MultiPoint
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - MultiPoint
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        minItems: 2
                                        items:
                                          type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON MultiLineString
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - MultiLineString
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        minItems: 2
                                        items:
                                          type: array
                                          minItems: 2
                                          items:
                                            type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON MultiPolygon
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - MultiPolygon
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        items:
                                          type: array
                                          minItems: 4
                                          items:
                                            type: array
                                            minItems: 2
                                            items:
                                              type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON GeometryCollection
                                  type: object
                                  required:
                                    - type
                                    - geometries
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - GeometryCollection
                                    geometries:
                                      type: array
                                      items:
                                        oneOf:
                                          - title: GeoJSON Point
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - Point
                                              coordinates:
                                                type: array
                                                minItems: 2
                                                items:
                                                  type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON LineString
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - LineString
                                              coordinates:
                                                type: array
                                                minItems: 2
                                                items:
                                                  type: array
                                                  minItems: 2
                                                  items:
                                                    type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON Polygon
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - Polygon
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  minItems: 4
                                                  items:
                                                    type: array
                                                    minItems: 2
                                                    items:
                                                      type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON MultiPoint
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - MultiPoint
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  minItems: 2
                                                  items:
                                                    type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON MultiLineString
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - MultiLineString
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  minItems: 2
                                                  items:
                                                    type: array
                                                    minItems: 2
                                                    items:
                                                      type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON MultiPolygon
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - MultiPolygon
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  items:
                                                    type: array
                                                    minItems: 4
                                                    items:
                                                      type: array
                                                      minItems: 2
                                                      items:
                                                        type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                            bbox:
                              type: array
                              minItems: 4
                              items:
                                type: number
                        - type: object
                          properties:
                            id:
                              description: Local ID of the feature (ignored on create or update)
                              minLength: 1
                            geometry:
                              description: Geometry of the feature
                            bbox:
                              description: Optional bounding box for the feature
                            properties:
                              description: Feature properties
                              type: object
                              required:
                                - featureType
                                - uid
                                - name
                              properties:
                                featureType:
                                  description: Identifier of the type of feature, either a URI, a CURIE, or a simple token
                                  type: string
                                uid:
                                  description: Globally unique identifier of the feature
                                  type: string
                                  format: uri
                                  example: urn:x-org:namespace:id
                                name:
                                  description: Human readable name of the feature
                                  type: string
                                  minLength: 1
                                description:
                                  description: Human readable description of the feature
                                  type: string
                                  minLength: 1
                            links:
                              description: Links to related resources
                              $schema: http://json-schema.org/draft-07/schema#
                              title: Link Collection
                              type: array
                              minItems: 1
                              items: &ref_103
                                $schema: http://json-schema.org/draft-07/schema#
                                title: Link
                                description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
                                type: object
                                required: &ref_15
                                  - href
                                properties: &ref_16
                                  href:
                                    description: URL of target resource
                                    type: string
                                    format: uri
                                    examples:
                                      - https://data.example.com/link/to/resource
                                  rel:
                                    description: Link relation type
                                    type: string
                                    examples:
                                      - alternate
                                      - self
                                      - http://www.opengis.net/def/rel/ogc/1.0/conformance
                                  type:
                                    description: Media type of target resource
                                    type: string
                                    examples:
                                      - application/json
                                      - image/tiff; application=geotiff
                                  hreflang:
                                    description: Language tag of target resource (2-letter language code, followed by optional 2-letter region code)
                                    type: string
                                    minLength: 1
                                    pattern: ^([a-z]{2}(-[A-Z]{2})?)|x-default$
                                    examples:
                                      - en-US
                                      - fr-FR
                                      - de
                                  title:
                                    description: Title of target resource
                                    type: string
                                    minLength: 1
                                    examples:
                                      - Resource Name
                                  uid:
                                    description: Unique identifier of target resource
                                    type: string
                                    format: uri
                                    examples:
                                      - urn:x-org:resourceType:0001
                                  rt:
                                    description: Semantic type of target resource (RFC 6690)
                                    type: string
                                    format: uri
                                    examples:
                                      - http://www.example.org/uri/of/concept
                                  if:
                                    description: Interface used to access target resource (RFC 6690)
                                    type: string
                                    format: uri
                                    examples:
                                      - http://www.opengis.net/spec/spec-id/version
                    - properties:
                        properties:
                          properties:
                            featureType:
                              type: string
                              enum: &ref_102
                                - http://www.w3.org/ns/sosa/Sensor
                                - http://www.w3.org/ns/sosa/Actuator
                                - http://www.w3.org/ns/sosa/Platform
                                - http://www.w3.org/ns/sosa/Sampler
                                - http://www.w3.org/ns/sosa/System
                                - sosa:Sensor
                                - sosa:Actuator
                                - sosa:Platform
                                - sosa:Sampler
                                - sosa:System
                            assetType:
                              description: Type of asset represented by this system.
                              type: string
                              enum:
                                - http://www.opengis.net/def/x-OGC/TBD/Equipment
                                - http://www.opengis.net/def/x-OGC/TBD/Human
                                - http://www.opengis.net/def/x-OGC/TBD/Simulation
                                - http://www.opengis.net/def/x-OGC/TBD/Mixed
                            validTime:
                              description: Time period during which the system description is valid.
                              $schema: http://json-schema.org/draft-07/schema#
                              title: Time Period
                              type: array
                              minItems: 2
                              maxItems: 2
                              items: &ref_20
                                $schema: http://json-schema.org/draft-07/schema#
                                title: Time Instant
                                oneOf: &ref_212
                                  - $schema: http://json-schema.org/draft-07/schema#
                                    title: Time Instant
                                    type: string
                                    format: date-time
                                  - type: string
                                    const: now
                            systemKind@link:
                              description: Link to the system kind description (i.e. its nature or specifications).
                              $schema: http://json-schema.org/draft-07/schema#
                              title: Link
                              type: object
                              required: *ref_15
                              properties: *ref_16
                - title: List of Systems
                  type: array
                  minItems: 1
                  items:
                    $schema: http://json-schema.org/draft-07/schema#
                    allOf: *ref_17
          application/sml+json:
            schema:
              oneOf:
                - title: Single System
                  $schema: http://json-schema.org/draft-07/schema#
                  allOf: &ref_104
                    - oneOf:
                        - $schema: http://json-schema.org/draft-07/schema#
                          type: object
                          allOf: &ref_80
                            - $schema: http://json-schema.org/draft-07/schema#
                              type: object
                              allOf: &ref_78
                                - $schema: http://json-schema.org/draft-07/schema#
                                  type: object
                                  allOf: &ref_70
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      type: object
                                      properties: &ref_232
                                        type:
                                          description: Type of object
                                          type: string
                                        id:
                                          description: Local ID of the feature (e.g. locally unique on a server)
                                          type: string
                                          minLength: 1
                                        description:
                                          description: A textual description of the feature
                                          type: string
                                          minLength: 1
                                        uniqueId:
                                          description: URI serving as the globally unique identifier of the feature (typically a URN)
                                          type: string
                                          format: uri
                                        label:
                                          description: A human readable label for the feature
                                          type: string
                                          minLength: 1
                                      required: &ref_233
                                        - type
                                        - label
                                    - properties:
                                        lang:
                                          description: Language of this document
                                          type: string
                                        keywords:
                                          description: Short keywords describing the context of this document to aid in discovery.
                                          type: array
                                          items:
                                            type: string
                                            minLength: 1
                                        identifiers:
                                          description: Additional identifiers for the asset, useful for discovery (e.g. short name, mission id, model number, serial number, etc.).
                                          type: array
                                          items:
                                            type: object
                                            properties: &ref_18
                                              definition:
                                                description: Type of identifier/classifier (semantic link)
                                                type: string
                                                format: uri
                                              label:
                                                description: Human readable label for this identifier/classifier
                                                type: string
                                                minLength: 1
                                              codeSpace:
                                                description: URI of codespace defining the possible values for this identifier/classifier
                                                type: string
                                                format: uri
                                              value:
                                                description: Actual identifier/classifier value
                                                type: string
                                                minLength: 1
                                            required: &ref_19
                                              - label
                                              - value
                                            unevaluatedProperties: false
                                        classifiers:
                                          description: Classifiers for the asset, useful for discovery (e.g. process type, sensor type, intended application, etc.).
                                          type: array
                                          items:
                                            type: object
                                            properties: *ref_18
                                            required: *ref_19
                                            unevaluatedProperties: false
                                        validTime:
                                          $schema: http://json-schema.org/draft-07/schema#
                                          title: Time Period
                                          type: array
                                          minItems: 2
                                          maxItems: 2
                                          items: *ref_20
                                        securityConstraints:
                                          description: Overall security tagging of process description; Individual tagging of properties can be done using extension properties.
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              type:
                                                type: string
                                                format: uri
                                            required:
                                              - type
                                            additionalProperties: true
                                        legalConstraints:
                                          description: Legal constraints applied to this description (e.g. copyrights, legal use, etc.)
                                          type: array
                                          items:
                                            $schema: http://json-schema.org/draft-07/schema#
                                            type: object
                                            properties: &ref_235
                                              useLimitations:
                                                type: array
                                                items:
                                                  type: string
                                              accessConstraints:
                                                type: array
                                                items:
                                                  type: object
                                                  properties: &ref_21
                                                    codeSpace:
                                                      type: string
                                                      format: uri
                                                    value:
                                                      type: string
                                                  additionalProperties: false
                                              useConstraints:
                                                type: array
                                                items:
                                                  type: object
                                                  properties: *ref_21
                                                  additionalProperties: false
                                              otherConstraints:
                                                type: array
                                                items:
                                                  type: string
                                            definitions: &ref_236
                                              CodeListValue: &ref_234
                                                type: object
                                                properties: *ref_21
                                                additionalProperties: false
                                        characteristics:
                                          description: Groups of characteristics applicable to this asset under various conditions
                                          type: array
                                          items:
                                            allOf: &ref_66
                                              - $schema: http://json-schema.org/draft-07/schema#
                                                description: Base substitution groups for all SWE Common objects with identification metadata
                                                type: object
                                                allOf: &ref_22
                                                  - $schema: http://json-schema.org/draft-07/schema#
                                                    description: Base substitution groups for all SWE Common objects other than value objects
                                                    type: object
                                                    properties: &ref_52
                                                      id:
                                                        description: The ID of the object, referenceable using a URI fragment
                                                        type: string
                                                        minLength: 1
                                                  - properties:
                                                      label:
                                                        description: Human readable label for the object
                                                        type: string
                                                        minLength: 1
                                                      description:
                                                        description: Human readable description of the object
                                                        type: string
                                                        minLength: 1
                                              - type: object
                                                properties:
                                                  definition:
                                                    description: Semantic link to the definition of this group of capabilities
                                                    type: string
                                                    format: uri
                                                  conditions:
                                                    description: The conditions under which the characteristics apply
                                                    type: array
                                                    items:
                                                      oneOf: &ref_40
                                                        - oneOf: &ref_215
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: 'Scalar component used to express truth: True or False, 0 or 1'
                                                              type: object
                                                              allOf: &ref_213
                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                  type: object
                                                                  allOf: &ref_23
                                                                    - $schema: http://json-schema.org/draft-07/schema#
                                                                      description: Abstract base class for all data components
                                                                      type: object
                                                                      allOf: &ref_41
                                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                                          description: Base substitution groups for all SWE Common objects with identification metadata
                                                                          type: object
                                                                          allOf: *ref_22
                                                                        - properties:
                                                                            type:
                                                                              type: string
                                                                            updatable:
                                                                              description: Specifies if the value of a data component can be updated externally (i.e. is variable)
                                                                              type: boolean
                                                                              default: false
                                                                            optional:
                                                                              description: Specifies if the data for this component can be omitted in the datastream
                                                                              type: boolean
                                                                              default: false
                                                                            definition:
                                                                              description: The definition of the property whose value is provided by this component (semantic link)
                                                                              type: string
                                                                              format: uri
                                                                    - properties:
                                                                        referenceFrame:
                                                                          description: Frame of reference (usually temporal or spatial) with respect to which the value of the component is expressed. A reference frame anchors a value to a real world datum.
                                                                          type: string
                                                                          format: uri-reference
                                                                        axisID:
                                                                          description: Specifies the reference axis (refer to CRS axisID). The reference frame URI should also be specified unless it is inherited from parent Vector
                                                                          type: string
                                                                          minLength: 1
                                                                        quality:
                                                                          description: Provides an indication of the reliability of the component value in the form of a decimal number (e.g. relative accuracy), a range (e.g. bidirectional tolerance), a categorical value (e.g. good, bad) or plain textual statement
                                                                          type: array
                                                                          items:
                                                                            allOf:
                                                                              - type: object
                                                                                properties: &ref_44
                                                                                  href:
                                                                                    type: string
                                                                                    format: uri-reference
                                                                                  role:
                                                                                    type: string
                                                                                    format: uri
                                                                                  arcrole:
                                                                                    type: string
                                                                                    format: uri
                                                                                  title:
                                                                                    type: string
                                                                                    minLength: 1
                                                                                required: &ref_45
                                                                                  - href
                                                                              - oneOf:
                                                                                  - $schema: http://json-schema.org/draft-07/schema#
                                                                                    description: Scalar component with decimal representation and a unit of measure used to store value of a continuous quantity
                                                                                    type: object
                                                                                    allOf: &ref_32
                                                                                      - $schema: http://json-schema.org/draft-07/schema#
                                                                                        type: object
                                                                                        allOf: *ref_23
                                                                                      - properties:
                                                                                          type:
                                                                                            const: Quantity
                                                                                          uom:
                                                                                            description: Unit of measure used to express the value of this data component
                                                                                            type: object
                                                                                            properties: &ref_25
                                                                                              label:
                                                                                                description: A human readable label for the unit
                                                                                                type: string
                                                                                                minLength: 1
                                                                                              symbol:
                                                                                                description: The preferred unit symbol to use when presenting the data in a UI (use the UCUM code instead if no symbol is provided)
                                                                                                type: string
                                                                                                minLength: 1
                                                                                            oneOf: &ref_26
                                                                                              - title: UCUM Code
                                                                                                properties:
                                                                                                  code:
                                                                                                    type: string
                                                                                                    minLength: 1
                                                                                                required:
                                                                                                  - code
                                                                                              - title: URI
                                                                                                properties:
                                                                                                  href:
                                                                                                    type: string
                                                                                                    format: uri
                                                                                                required:
                                                                                                  - href
                                                                                            unevaluatedProperties: false
                                                                                          constraint:
                                                                                            description: Defines the permitted values for the component as an enumerated list and/or a list of inclusive ranges
                                                                                            type: object
                                                                                            properties: &ref_27
                                                                                              type:
                                                                                                const: AllowedValues
                                                                                              values:
                                                                                                type: array
                                                                                                minItems: 1
                                                                                                items:
                                                                                                  oneOf: &ref_24
                                                                                                    - title: Number
                                                                                                      type: number
                                                                                                    - title: Special Value
                                                                                                      type: string
                                                                                                      enum:
                                                                                                        - NaN
                                                                                                        - Infinity
                                                                                                        - +Infinity
                                                                                                        - '-Infinity'
                                                                                              intervals:
                                                                                                type: array
                                                                                                minItems: 1
                                                                                                items:
                                                                                                  type: array
                                                                                                  minItems: 2
                                                                                                  maxItems: 2
                                                                                                  items:
                                                                                                    oneOf: *ref_24
                                                                                              significantFigures:
                                                                                                type: integer
                                                                                                minimum: 1
                                                                                                maximum: 40
                                                                                            anyOf: &ref_28
                                                                                              - title: Enum Values
                                                                                                required:
                                                                                                  - values
                                                                                              - title: Intervals
                                                                                                required:
                                                                                                  - intervals
                                                                                          nilValues:
                                                                                            type: array
                                                                                            minItems: 1
                                                                                            items: &ref_29
                                                                                              type: object
                                                                                              properties:
                                                                                                reason:
                                                                                                  description: The reason for using the reserved value
                                                                                                  type: string
                                                                                                  format: uri
                                                                                                value:
                                                                                                  description: The reserved value itself
                                                                                                  oneOf: *ref_24
                                                                                              required:
                                                                                                - reason
                                                                                                - value
                                                                                              additionalProperties: false
                                                                                          value:
                                                                                            oneOf: *ref_24
                                                                                        required:
                                                                                          - type
                                                                                          - definition
                                                                                          - label
                                                                                          - uom
                                                                                  - $schema: http://json-schema.org/draft-07/schema#
                                                                                    description: Decimal pair for specifying a quantity range with a unit of measure
                                                                                    type: object
                                                                                    allOf: &ref_36
                                                                                      - $schema: http://json-schema.org/draft-07/schema#
                                                                                        type: object
                                                                                        allOf: *ref_23
                                                                                      - properties:
                                                                                          type:
                                                                                            const: QuantityRange
                                                                                          uom:
                                                                                            description: Unit of measure used to express the value of this data component
                                                                                            type: object
                                                                                            properties: *ref_25
                                                                                            oneOf: *ref_26
                                                                                            unevaluatedProperties: false
                                                                                          constraint:
                                                                                            description: Defines the permitted values for the component as an enumerated list and/or a list of inclusive ranges
                                                                                            type: object
                                                                                            properties: *ref_27
                                                                                            anyOf: *ref_28
                                                                                          nilValues:
                                                                                            type: array
                                                                                            minItems: 1
                                                                                            items: *ref_29
                                                                                          value:
                                                                                            type: array
                                                                                            minItems: 2
                                                                                            maxItems: 2
                                                                                            items:
                                                                                              oneOf: *ref_24
                                                                                        required:
                                                                                          - type
                                                                                          - definition
                                                                                          - label
                                                                                          - uom
                                                                                  - $schema: http://json-schema.org/draft-07/schema#
                                                                                    description: Scalar component used to represent a categorical value as a simple token identifying a term in a code space
                                                                                    type: object
                                                                                    allOf: &ref_34
                                                                                      - $schema: http://json-schema.org/draft-07/schema#
                                                                                        type: object
                                                                                        allOf: *ref_23
                                                                                      - properties:
                                                                                          type:
                                                                                            const: Category
                                                                                          codeSpace:
                                                                                            description: Name of the dictionary where the possible values for this component are listed and defined
                                                                                            type: string
                                                                                            format: uri
                                                                                          constraint:
                                                                                            description: Defines permitted values for the component, as an enumerated list of tokens or a regular expression pattern
                                                                                            type: object
                                                                                            oneOf: &ref_30
                                                                                              - title: Enum Values
                                                                                                properties:
                                                                                                  type:
                                                                                                    const: AllowedTokens
                                                                                                  values:
                                                                                                    type: array
                                                                                                    minItems: 1
                                                                                                    items:
                                                                                                      type: string
                                                                                                      minLength: 1
                                                                                                required:
                                                                                                  - values
                                                                                              - title: Regex Pattern
                                                                                                properties:
                                                                                                  type:
                                                                                                    const: AllowedTokens
                                                                                                  pattern:
                                                                                                    type: string
                                                                                                    format: regex
                                                                                                    minLength: 1
                                                                                                required:
                                                                                                  - pattern
                                                                                          nilValues:
                                                                                            type: array
                                                                                            minItems: 1
                                                                                            items: &ref_31
                                                                                              type: object
                                                                                              properties:
                                                                                                reason:
                                                                                                  description: The reason for using the reserved value
                                                                                                  type: string
                                                                                                  format: uri
                                                                                                value:
                                                                                                  description: The reserved value itself
                                                                                                  type: string
                                                                                              required:
                                                                                                - reason
                                                                                                - value
                                                                                              additionalProperties: false
                                                                                          value:
                                                                                            type: string
                                                                                        required:
                                                                                          - type
                                                                                          - definition
                                                                                          - label
                                                                                  - $schema: http://json-schema.org/draft-07/schema#
                                                                                    description: Free text component used to store comments or any other type of textual statement
                                                                                    type: object
                                                                                    allOf: &ref_35
                                                                                      - $schema: http://json-schema.org/draft-07/schema#
                                                                                        type: object
                                                                                        allOf: *ref_23
                                                                                      - properties:
                                                                                          type:
                                                                                            const: Text
                                                                                          constraint:
                                                                                            description: Defines permitted values for the component, as an enumerated list of tokens or a regular expression pattern
                                                                                            type: object
                                                                                            oneOf: *ref_30
                                                                                          nilValues:
                                                                                            type: array
                                                                                            minItems: 1
                                                                                            items: *ref_31
                                                                                          value:
                                                                                            type: string
                                                                                        required:
                                                                                          - type
                                                                                          - definition
                                                                                          - label
                                                                        nilValues:
                                                                          description: Defines reserved values with special meaning (e.g. missing, out-of-range, etc.)
                                                                        constraint: {}
                                                                        value:
                                                                          description: Inline value(s) for the component. This property is optional to enable structure to act as a schema for values provided separately (e.g. in a datastream)
                                                                - properties:
                                                                    type:
                                                                      const: Boolean
                                                                    value:
                                                                      type: boolean
                                                                  required:
                                                                    - type
                                                                    - definition
                                                                    - label
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Scalar component with integer representation used for a discrete counting value
                                                              type: object
                                                              allOf: &ref_42
                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                  type: object
                                                                  allOf: *ref_23
                                                                - properties:
                                                                    type:
                                                                      const: Count
                                                                    constraint:
                                                                      description: Defines the permitted values for the component as an enumerated list and/or a list of inclusive ranges
                                                                      type: object
                                                                      properties: *ref_27
                                                                      anyOf: *ref_28
                                                                    nilValues:
                                                                      type: array
                                                                      minItems: 1
                                                                      items: &ref_214
                                                                        type: object
                                                                        properties:
                                                                          reason:
                                                                            description: The reason for using the reserved value
                                                                            type: string
                                                                            format: uri
                                                                          value:
                                                                            description: The reserved value itself
                                                                            type: integer
                                                                        required:
                                                                          - reason
                                                                          - value
                                                                        additionalProperties: false
                                                                    value:
                                                                      type: integer
                                                                  required:
                                                                    - type
                                                                    - definition
                                                                    - label
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Scalar component with decimal representation and a unit of measure used to store value of a continuous quantity
                                                              type: object
                                                              allOf: *ref_32
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Scalar component used to represent a time quantity either as ISO 8601 (e.g. 2004-04-18T12:03:04.6Z) or as a duration relative to a time of reference
                                                              type: object
                                                              allOf: &ref_43
                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                  type: object
                                                                  allOf: *ref_23
                                                                - properties:
                                                                    type:
                                                                      const: Time
                                                                    referenceTime:
                                                                      description: Specifies the origin of the temporal reference frame as an ISO8601 date (used to specify time after an epoch that is to say in a custom frame)
                                                                      type: string
                                                                      format: date-time
                                                                    localFrame:
                                                                      description: Temporal frame of reference whose origin is located by the value of this component
                                                                      type: string
                                                                      format: uri
                                                                    uom:
                                                                      description: Temporal unit of measure used to express the value of this data component
                                                                      type: object
                                                                      properties: *ref_25
                                                                      oneOf: *ref_26
                                                                      unevaluatedProperties: false
                                                                    constraint:
                                                                      description: Defines the permitted values for the component, as a time range or an enumerated list of time values
                                                                      type: object
                                                                      properties: &ref_37
                                                                        type:
                                                                          const: AllowedTimes
                                                                        values:
                                                                          type: array
                                                                          minItems: 1
                                                                          items:
                                                                            oneOf: &ref_33
                                                                              - title: Date/Time
                                                                                type: string
                                                                                format: date-time
                                                                              - oneOf: *ref_24
                                                                        intervals:
                                                                          type: array
                                                                          items:
                                                                            type: array
                                                                            minItems: 2
                                                                            maxItems: 2
                                                                            items:
                                                                              oneOf: *ref_33
                                                                        significantFigures:
                                                                          type: integer
                                                                          minimum: 1
                                                                          maximum: 40
                                                                      anyOf: &ref_38
                                                                        - title: Enum Values
                                                                          required:
                                                                            - values
                                                                        - title: Intervals
                                                                          required:
                                                                            - intervals
                                                                    nilValues:
                                                                      type: array
                                                                      minItems: 1
                                                                      items: &ref_39
                                                                        type: object
                                                                        properties:
                                                                          reason:
                                                                            description: The reason for using the reserved value
                                                                            type: string
                                                                            format: uri
                                                                          value:
                                                                            description: The reserved value itself
                                                                            oneOf: *ref_33
                                                                        required:
                                                                          - reason
                                                                          - value
                                                                        additionalProperties: false
                                                                    value:
                                                                      oneOf: *ref_33
                                                                  required:
                                                                    - type
                                                                    - definition
                                                                    - label
                                                                    - uom
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Scalar component used to represent a categorical value as a simple token identifying a term in a code space
                                                              type: object
                                                              allOf: *ref_34
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Free text component used to store comments or any other type of textual statement
                                                              type: object
                                                              allOf: *ref_35
                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                          description: Integer pair used for specifying a count range
                                                          type: object
                                                          allOf: &ref_216
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              type: object
                                                              allOf: *ref_23
                                                            - properties:
                                                                type:
                                                                  const: CountRange
                                                                constraint:
                                                                  description: Defines the permitted values for the component as an enumerated list and/or a list of inclusive ranges
                                                                  type: object
                                                                  properties: *ref_27
                                                                  anyOf: *ref_28
                                                                nilValues:
                                                                  type: array
                                                                  minItems: 1
                                                                  items: *ref_31
                                                                value:
                                                                  type: array
                                                                  minItems: 2
                                                                  maxItems: 2
                                                                  items:
                                                                    type: integer
                                                              required:
                                                                - type
                                                                - definition
                                                                - label
                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                          description: Decimal pair for specifying a quantity range with a unit of measure
                                                          type: object
                                                          allOf: *ref_36
                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                          description: Time value pair for specifying a time range (can be a decimal or ISO 8601)
                                                          type: object
                                                          allOf: &ref_217
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              type: object
                                                              allOf: *ref_23
                                                            - properties:
                                                                type:
                                                                  const: TimeRange
                                                                referenceTime:
                                                                  description: Specifies the origin of the temporal reference frame as an ISO8601 date (used to specify time after an epoch that is to say in a custom frame)
                                                                  type: string
                                                                  format: date-time
                                                                localFrame:
                                                                  description: Temporal frame of reference whose origin is located by the value of this component
                                                                  type: string
                                                                  format: uri
                                                                uom:
                                                                  description: Temporal unit of measure used to express the value of this data component
                                                                  type: object
                                                                  properties: *ref_25
                                                                  oneOf: *ref_26
                                                                  unevaluatedProperties: false
                                                                constraint:
                                                                  description: Defines the permitted values for the component, as a time range or an enumerated list of time values
                                                                  type: object
                                                                  properties: *ref_37
                                                                  anyOf: *ref_38
                                                                nilValues:
                                                                  type: array
                                                                  minItems: 1
                                                                  items: *ref_39
                                                                value:
                                                                  type: array
                                                                  minItems: 2
                                                                  maxItems: 2
                                                                  items:
                                                                    oneOf: *ref_33
                                                              required:
                                                                - type
                                                                - definition
                                                                - label
                                                                - uom
                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                          description: Pair of categorical values used to specify a range in an ordinal reference system (specified by the code space)
                                                          type: object
                                                          allOf: &ref_218
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              type: object
                                                              allOf: *ref_23
                                                            - properties:
                                                                type:
                                                                  const: CategoryRange
                                                                codeSpace:
                                                                  description: Name of the dictionary defining an ordered set of values with respect to which the range is expressed (ordinal reference system)
                                                                  type: string
                                                                  format: uri
                                                                constraint:
                                                                  description: Defines permitted values for the component, as an enumerated list of tokens or a regular expression pattern
                                                                  type: object
                                                                  oneOf: *ref_30
                                                                nilValues:
                                                                  type: array
                                                                  minItems: 1
                                                                  items: *ref_31
                                                                value:
                                                                  type: array
                                                                  minItems: 2
                                                                  maxItems: 2
                                                                  items:
                                                                    type: string
                                                              required:
                                                                - type
                                                                - definition
                                                                - label
                                                  characteristics:
                                                    description: The list of characteristics in this group
                                                    type: array
                                                    items:
                                                      oneOf: &ref_56
                                                        - oneOf: *ref_40
                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                          description: Implementation of a mathematical vector composed of a list of scalar coordinates expressed in the mandatory reference frame.
                                                          type: object
                                                          allOf: &ref_49
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Abstract base class for all data components
                                                              type: object
                                                              allOf: *ref_41
                                                            - properties:
                                                                type:
                                                                  const: Vector
                                                                referenceFrame:
                                                                  description: Frame of reference (usually spatial) with respect to which the coordinates of this vector are expressed. A reference frame anchors a vector value to a real world datum.
                                                                  type: string
                                                                  format: uri-reference
                                                                localFrame:
                                                                  description: Frame of reference whose origin is located by the coordinates of this vector
                                                                  type: string
                                                                  format: uri-reference
                                                                coordinates:
                                                                  description: Definition of the coordinate provided as a data component with a numerical representation
                                                                  type: array
                                                                  items:
                                                                    allOf:
                                                                      - type: object
                                                                        properties: &ref_46
                                                                          name:
                                                                            type: string
                                                                            minLength: 1
                                                                            pattern: ^[A-Za-z][A-Za-z0-9_\-]*$
                                                                        required: &ref_47
                                                                          - name
                                                                      - oneOf:
                                                                          - $schema: http://json-schema.org/draft-07/schema#
                                                                            description: Scalar component with integer representation used for a discrete counting value
                                                                            type: object
                                                                            allOf: *ref_42
                                                                          - $schema: http://json-schema.org/draft-07/schema#
                                                                            description: Scalar component with decimal representation and a unit of measure used to store value of a continuous quantity
                                                                            type: object
                                                                            allOf: *ref_32
                                                                          - $schema: http://json-schema.org/draft-07/schema#
                                                                            description: Scalar component used to represent a time quantity either as ISO 8601 (e.g. 2004-04-18T12:03:04.6Z) or as a duration relative to a time of reference
                                                                            type: object
                                                                            allOf: *ref_43
                                                              required:
                                                                - type
                                                                - definition
                                                                - referenceFrame
                                                                - label
                                                                - coordinates
                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                          description: Implementation of ISO-11404 Array datatype. This defines an array of identical data components with a elementCount. Values are given as a block and can be encoded in different ways
                                                          allOf: &ref_50
                                                            - type: object
                                                              allOf: &ref_51
                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                  description: Abstract base class for all data components
                                                                  type: object
                                                                  allOf: *ref_41
                                                                - properties:
                                                                    elementCount:
                                                                      description: Specifies the size of the array (i.e. the number of elements of the defined type it contains)
                                                                      oneOf:
                                                                        - type: object
                                                                          properties: *ref_44
                                                                          required: *ref_45
                                                                        - type: object
                                                                          allOf: &ref_219
                                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                                              type: object
                                                                              allOf: *ref_23
                                                                            - properties:
                                                                                constraint:
                                                                                  description: Defines the permitted values for the component as an enumerated list and/or a list of inclusive ranges
                                                                                  type: object
                                                                                  properties: *ref_27
                                                                                  anyOf: *ref_28
                                                                                value:
                                                                                  description: Value is optional, to enable structure to act as a schema for values provided using other encodings
                                                                                  type: integer
                                                                    elementType:
                                                                      description: Defines the structure of the element that will be repeated in the array
                                                                      allOf:
                                                                        - type: object
                                                                          properties: *ref_46
                                                                          required: *ref_47
                                                                        - oneOf:
                                                                            - type: object
                                                                              properties: *ref_44
                                                                              required: *ref_45
                                                                            - oneOf: &ref_48
                                                                                - oneOf: *ref_40
                                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                                  description: Implementation of ISO-11404 Record datatype. This allows grouping (sequence) of data components which can themselves be simple types, records, arrays or choices
                                                                                  type: object
                                                                                  allOf: &ref_92
                                                                                    - $schema: http://json-schema.org/draft-07/schema#
                                                                                      description: Abstract base class for all data components
                                                                                      type: object
                                                                                      allOf: *ref_41
                                                                                    - properties:
                                                                                        type:
                                                                                          const: DataRecord
                                                                                        fields:
                                                                                          description: Definition of the record fields. Fields can be scalars or can themself be aggregates such as records, vectors, arrays, or choices.
                                                                                          type: array
                                                                                          minItems: 1
                                                                                          items:
                                                                                            allOf:
                                                                                              - type: object
                                                                                                properties: *ref_46
                                                                                                required: *ref_47
                                                                                              - oneOf:
                                                                                                  - type: object
                                                                                                    properties: *ref_44
                                                                                                    required: *ref_45
                                                                                                  - oneOf: *ref_48
                                                                                      required:
                                                                                        - type
                                                                                        - fields
                                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                                  description: Implementation of a mathematical vector composed of a list of scalar coordinates expressed in the mandatory reference frame.
                                                                                  type: object
                                                                                  allOf: *ref_49
                                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                                  description: Implementation of ISO-11404 Array datatype. This defines an array of identical data components with a elementCount. Values are given as a block and can be encoded in different ways
                                                                                  allOf: *ref_50
                                                                                  definitions: &ref_54
                                                                                    AbstractArray: &ref_227
                                                                                      type: object
                                                                                      allOf: *ref_51
                                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                                  description: Implementation of ISO-11404 Array datatype. This defines an array of identical data components with a elementCount. Values are given as a block and can be encoded in different ways
                                                                                  type: object
                                                                                  allOf: &ref_55
                                                                                    - type: object
                                                                                      allOf: *ref_51
                                                                                    - properties:
                                                                                        type:
                                                                                          const: Matrix
                                                                                        referenceFrame:
                                                                                          description: Frame of reference (usually spatial) with respect to which the coordinates of this matrix are expressed
                                                                                          type: string
                                                                                          format: uri-reference
                                                                                        localFrame:
                                                                                          description: Frame of reference whose position and orientation are provided by the transformation defined by this matrix
                                                                                          type: string
                                                                                          format: uri-reference
                                                                                      required:
                                                                                        - type
                                                                                        - elementType
                                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                                  description: Implementation of a choice of two or more Data Components (also called disjoint union)
                                                                                  type: object
                                                                                  allOf: &ref_228
                                                                                    - $schema: http://json-schema.org/draft-07/schema#
                                                                                      description: Abstract base class for all data components
                                                                                      type: object
                                                                                      allOf: *ref_41
                                                                                    - properties:
                                                                                        type:
                                                                                          const: DataChoice
                                                                                        choiceValue:
                                                                                          description: This category component marks the data stream element that will indicate the actual choice made. Possible choices are listed in the Category constraint section as an enumeration and should map to item names.
                                                                                          $schema: http://json-schema.org/draft-07/schema#
                                                                                          type: object
                                                                                          allOf: *ref_34
                                                                                        items:
                                                                                          description: Definition of the choice items. Items can be of any component types
                                                                                          type: array
                                                                                          items:
                                                                                            allOf:
                                                                                              - type: object
                                                                                                properties: *ref_46
                                                                                                required: *ref_47
                                                                                              - oneOf:
                                                                                                  - type: object
                                                                                                    properties: *ref_44
                                                                                                    required: *ref_45
                                                                                                  - oneOf: *ref_48
                                                                                      required:
                                                                                        - type
                                                                                        - items
                                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                                  title: Geometry
                                                                                  description: Implementation of ISO-19107 geometry datatype. This allows embedding a geometry in a larger schema
                                                                                  type: object
                                                                                  allOf: &ref_229
                                                                                    - $schema: http://json-schema.org/draft-07/schema#
                                                                                      description: Abstract base class for all data components
                                                                                      type: object
                                                                                      allOf: *ref_41
                                                                                    - properties:
                                                                                        type:
                                                                                          const: Geometry
                                                                                        constraint:
                                                                                          type: object
                                                                                          properties:
                                                                                            geomTypes:
                                                                                              type: array
                                                                                              minLength: 1
                                                                                              items:
                                                                                                type: string
                                                                                                enum:
                                                                                                  - Point
                                                                                                  - MultiPoint
                                                                                                  - LineString
                                                                                                  - MultiLineString
                                                                                                  - Polygon
                                                                                                  - MultiPolygon
                                                                                          additionalProperties: false
                                                                                        nilValues:
                                                                                          type: array
                                                                                          minItems: 1
                                                                                          items: *ref_31
                                                                                        srs:
                                                                                          description: Coordinate reference system with respect to which the coordinates of this geometry are expressed
                                                                                          type: string
                                                                                          format: uri
                                                                                        value:
                                                                                          $schema: http://json-schema.org/draft-07/schema#
                                                                                          $id: https://geojson.org/schema/Geometry.json
                                                                                          title: GeoJSON Geometry
                                                                                          oneOf: &ref_133
                                                                                            - title: GeoJSON Point
                                                                                              type: object
                                                                                              required:
                                                                                                - type
                                                                                                - coordinates
                                                                                              properties:
                                                                                                type:
                                                                                                  type: string
                                                                                                  enum:
                                                                                                    - Point
                                                                                                coordinates:
                                                                                                  type: array
                                                                                                  minItems: 2
                                                                                                  items:
                                                                                                    type: number
                                                                                                bbox:
                                                                                                  type: array
                                                                                                  minItems: 4
                                                                                                  items:
                                                                                                    type: number
                                                                                            - title: GeoJSON LineString
                                                                                              type: object
                                                                                              required:
                                                                                                - type
                                                                                                - coordinates
                                                                                              properties:
                                                                                                type:
                                                                                                  type: string
                                                                                                  enum:
                                                                                                    - LineString
                                                                                                coordinates:
                                                                                                  type: array
                                                                                                  minItems: 2
                                                                                                  items:
                                                                                                    type: array
                                                                                                    minItems: 2
                                                                                                    items:
                                                                                                      type: number
                                                                                                bbox:
                                                                                                  type: array
                                                                                                  minItems: 4
                                                                                                  items:
                                                                                                    type: number
                                                                                            - title: GeoJSON Polygon
                                                                                              type: object
                                                                                              required:
                                                                                                - type
                                                                                                - coordinates
                                                                                              properties:
                                                                                                type:
                                                                                                  type: string
                                                                                                  enum:
                                                                                                    - Polygon
                                                                                                coordinates:
                                                                                                  type: array
                                                                                                  items:
                                                                                                    type: array
                                                                                                    minItems: 4
                                                                                                    items:
                                                                                                      type: array
                                                                                                      minItems: 2
                                                                                                      items:
                                                                                                        type: number
                                                                                                bbox:
                                                                                                  type: array
                                                                                                  minItems: 4
                                                                                                  items:
                                                                                                    type: number
                                                                                            - title: GeoJSON MultiPoint
                                                                                              type: object
                                                                                              required:
                                                                                                - type
                                                                                                - coordinates
                                                                                              properties:
                                                                                                type:
                                                                                                  type: string
                                                                                                  enum:
                                                                                                    - MultiPoint
                                                                                                coordinates:
                                                                                                  type: array
                                                                                                  items:
                                                                                                    type: array
                                                                                                    minItems: 2
                                                                                                    items:
                                                                                                      type: number
                                                                                                bbox:
                                                                                                  type: array
                                                                                                  minItems: 4
                                                                                                  items:
                                                                                                    type: number
                                                                                            - title: GeoJSON MultiLineString
                                                                                              type: object
                                                                                              required:
                                                                                                - type
                                                                                                - coordinates
                                                                                              properties:
                                                                                                type:
                                                                                                  type: string
                                                                                                  enum:
                                                                                                    - MultiLineString
                                                                                                coordinates:
                                                                                                  type: array
                                                                                                  items:
                                                                                                    type: array
                                                                                                    minItems: 2
                                                                                                    items:
                                                                                                      type: array
                                                                                                      minItems: 2
                                                                                                      items:
                                                                                                        type: number
                                                                                                bbox:
                                                                                                  type: array
                                                                                                  minItems: 4
                                                                                                  items:
                                                                                                    type: number
                                                                                            - title: GeoJSON MultiPolygon
                                                                                              type: object
                                                                                              required:
                                                                                                - type
                                                                                                - coordinates
                                                                                              properties:
                                                                                                type:
                                                                                                  type: string
                                                                                                  enum:
                                                                                                    - MultiPolygon
                                                                                                coordinates:
                                                                                                  type: array
                                                                                                  items:
                                                                                                    type: array
                                                                                                    items:
                                                                                                      type: array
                                                                                                      minItems: 4
                                                                                                      items:
                                                                                                        type: array
                                                                                                        minItems: 2
                                                                                                        items:
                                                                                                          type: number
                                                                                                bbox:
                                                                                                  type: array
                                                                                                  minItems: 4
                                                                                                  items:
                                                                                                    type: number
                                                                                      required:
                                                                                        - type
                                                                                        - srs
                                                                                        - definition
                                                                                        - label
                                                                    encoding:
                                                                      description: Specifies the type of method used to encode the array values
                                                                      oneOf:
                                                                        - description: Parameters of the binary encoding method
                                                                          type: object
                                                                          allOf: &ref_222
                                                                            - type: object
                                                                              allOf: &ref_53
                                                                                - $schema: http://json-schema.org/draft-07/schema#
                                                                                  description: Base substitution groups for all SWE Common objects other than value objects
                                                                                  type: object
                                                                                  properties: *ref_52
                                                                                - properties: {}
                                                                            - properties:
                                                                                type:
                                                                                  const: BinaryEncoding
                                                                                byteOrder:
                                                                                  description: Byte order convention used to encode this binary data (big endian = most significant byte first, MSB or little endian = least significant byte first, LSB)
                                                                                  type: string
                                                                                  enum:
                                                                                    - bigEndian
                                                                                    - littleEndian
                                                                                byteEncoding:
                                                                                  description: Byte encoding method used to encode the binary data (raw or base 64)
                                                                                  type: string
                                                                                  enum:
                                                                                    - base64
                                                                                    - raw
                                                                                byteLength:
                                                                                  description: Total length in bytes of the binary stream (if known in advance)
                                                                                  type: integer
                                                                                members:
                                                                                  description: Each member contains detailed parameters for encoding a scalar value or a block of values
                                                                                  type: array
                                                                                  minItems: 1
                                                                                  items:
                                                                                    oneOf:
                                                                                      - description: Binary encoding parameters used for encoding a single data component
                                                                                        type: object
                                                                                        allOf: &ref_220
                                                                                          - $schema: http://json-schema.org/draft-07/schema#
                                                                                            description: Base substitution groups for all SWE Common objects other than value objects
                                                                                            type: object
                                                                                            properties: *ref_52
                                                                                          - properties:
                                                                                              type:
                                                                                                const: Component
                                                                                              encryption:
                                                                                                description: Name of the encryption method used to encrypt the value of this field
                                                                                                type: string
                                                                                                format: uri
                                                                                              significantBits:
                                                                                                description: Number of significant bits actually used for a binary encoded numerical value (all remaining bits shall be set to 0)
                                                                                                type: integer
                                                                                              bitLength:
                                                                                                type: integer
                                                                                              byteLength:
                                                                                                description: Byte length of this field when a custom data type is used
                                                                                                type: integer
                                                                                              dataType:
                                                                                                description: Binary data type used to encode the value(s) of the referenced data component
                                                                                                type: string
                                                                                                format: uri
                                                                                              ref:
                                                                                                description: Reference to the data component that these binary encoding settings apply to
                                                                                                type: string
                                                                                            required:
                                                                                              - type
                                                                                              - dataType
                                                                                              - ref
                                                                                      - description: Binary encoding parameters used to encode a block of values at once. This is used for encrypting or compressing a complete array of values for instance
                                                                                        type: object
                                                                                        allOf: &ref_221
                                                                                          - $schema: http://json-schema.org/draft-07/schema#
                                                                                            description: Base substitution groups for all SWE Common objects other than value objects
                                                                                            type: object
                                                                                            properties: *ref_52
                                                                                          - properties:
                                                                                              type:
                                                                                                const: Block
                                                                                              compression:
                                                                                                description: Name of the compression method used to encrypt the block of values described by the referenced data component
                                                                                                type: string
                                                                                                format: uri
                                                                                              encryption:
                                                                                                description: Name of the encryption method used to encrypt the block of values described by the referenced data component
                                                                                                type: string
                                                                                                format: uri
                                                                                              paddingBytes-after:
                                                                                                description: Number of padding bytes present in the stream after this binary block
                                                                                                type: integer
                                                                                              paddingBytes-before:
                                                                                                description: Number of padding bytes present in the stream before this binary block
                                                                                                type: integer
                                                                                              byteLength:
                                                                                                description: Length in byte of this binary block (if known in advance)
                                                                                                type: integer
                                                                                              ref:
                                                                                                description: Reference to the aggregate data component that this binary block encoding settings apply to
                                                                                                type: string
                                                                                            required:
                                                                                              - type
                                                                                              - ref
                                                                              required:
                                                                                - type
                                                                                - byteOrder
                                                                                - byteEncoding
                                                                                - members
                                                                        - description: Parameters of the text encoding method
                                                                          type: object
                                                                          allOf: &ref_223
                                                                            - type: object
                                                                              allOf: *ref_53
                                                                            - properties:
                                                                                type:
                                                                                  const: TextEncoding
                                                                                collapseWhiteSpaces:
                                                                                  description: Indicates whether white spaces (i.e. space, tab, CR, LF) should be collapsed with separators when parsing the data stream
                                                                                  type: boolean
                                                                                decimalSeparator:
                                                                                  description: Character used as the decimal separator
                                                                                  type: string
                                                                                  minLength: 1
                                                                                tokenSeparator:
                                                                                  description: Character sequence used as the token separator (i.e. between two successive values)
                                                                                  type: string
                                                                                  minLength: 1
                                                                                blockSeparator:
                                                                                  description: Character sequence used as the block separator (i.e. between two successive blocks in the data set. The end of a block is reached once all values from the data tree have been encoded once)
                                                                                  type: string
                                                                                  minLength: 1
                                                                              required:
                                                                                - type
                                                                                - tokenSeparator
                                                                                - blockSeparator
                                                                        - description: Parameters of the XML encoding method
                                                                          type: object
                                                                          allOf: &ref_224
                                                                            - type: object
                                                                              allOf: *ref_53
                                                                            - properties:
                                                                                type:
                                                                                  const: XMLEncoding
                                                                                namespace:
                                                                                  type: string
                                                                                  format: uri
                                                                              required:
                                                                                - type
                                                                        - description: Parameters of the JSON encoding method
                                                                          type: object
                                                                          allOf: &ref_225
                                                                            - type: object
                                                                              allOf: *ref_53
                                                                            - properties:
                                                                                type:
                                                                                  const: JSONEncoding
                                                                              required:
                                                                                - type
                                                                    values:
                                                                      description: If present, contains an encoded block of the values contained in the array. Values are optional so that the array definition can be used a as a schema for values provided separately
                                                                      oneOf: &ref_226
                                                                        - type: array
                                                                        - type: object
                                                                          properties: *ref_44
                                                                          required: *ref_45
                                                            - properties:
                                                                type:
                                                                  const: DataArray
                                                              required:
                                                                - type
                                                                - elementType
                                                          definitions: *ref_54
                                                        - $schema: http://json-schema.org/draft-07/schema#
                                                          description: Implementation of ISO-11404 Array datatype. This defines an array of identical data components with a elementCount. Values are given as a block and can be encoded in different ways
                                                          type: object
                                                          allOf: *ref_55
                                                required:
                                                  - characteristics
                                            unevaluatedProperties: false
                                        capabilities:
                                          description: Groups of capabilities applicable to this asset under various conditions
                                          type: array
                                          items:
                                            allOf: &ref_67
                                              - $schema: http://json-schema.org/draft-07/schema#
                                                description: Base substitution groups for all SWE Common objects with identification metadata
                                                type: object
                                                allOf: *ref_22
                                              - description: A group of capabilities.
                                                type: object
                                                properties:
                                                  definition:
                                                    description: Semantic link to the definition of this group of capabilities
                                                    type: string
                                                    format: uri
                                                  conditions:
                                                    description: The conditions under which the capabilities apply
                                                    type: array
                                                    items:
                                                      oneOf: *ref_40
                                                  capabilities:
                                                    description: The list of capabilities in this group
                                                    type: array
                                                    items:
                                                      oneOf: *ref_56
                                                required:
                                                  - capabilities
                                            unevaluatedProperties: false
                                        contacts:
                                          description: The list of contacts related to this asset
                                          type: array
                                          items:
                                            oneOf:
                                              - $schema: http://json-schema.org/draft-07/schema#
                                                type: object
                                                properties: &ref_60
                                                  individualName:
                                                    type: string
                                                  organisationName:
                                                    type: string
                                                  positionName:
                                                    type: string
                                                  contactInfo:
                                                    type: object
                                                    properties: &ref_57
                                                      phone:
                                                        type: object
                                                        properties: &ref_58
                                                          voice:
                                                            type: string
                                                          facsimile:
                                                            type: string
                                                        unevaluatedProperties: false
                                                      address:
                                                        type: object
                                                        properties: &ref_59
                                                          deliveryPoint:
                                                            type: string
                                                          city:
                                                            type: string
                                                          administrativeArea:
                                                            type: string
                                                          postalCode:
                                                            type: string
                                                          country:
                                                            type: string
                                                          electronicMailAddress:
                                                            type: string
                                                            format: email
                                                        unevaluatedProperties: false
                                                      website:
                                                        type: string
                                                      hoursOfService:
                                                        type: string
                                                      contactInstructions:
                                                        type: string
                                                    unevaluatedProperties: false
                                                  role:
                                                    type: string
                                                    format: uri
                                                unevaluatedProperties: false
                                                required: &ref_61
                                                  - role
                                                oneOf: &ref_62
                                                  - title: Individual
                                                    required:
                                                      - individualName
                                                  - title: Organization
                                                    required:
                                                      - organisationName
                                                definitions: &ref_63
                                                  Contact: &ref_241
                                                    type: object
                                                    properties: *ref_57
                                                    unevaluatedProperties: false
                                                  Phone: &ref_239
                                                    type: object
                                                    properties: *ref_58
                                                    unevaluatedProperties: false
                                                  Address: &ref_240
                                                    type: object
                                                    properties: *ref_59
                                                    unevaluatedProperties: false
                                              - $schema: http://json-schema.org/draft-07/schema#
                                                type: object
                                                properties: &ref_242
                                                  role:
                                                    description: Role of the contact
                                                    type: string
                                                    format: uri
                                                  name:
                                                    description: Name of the contact
                                                    type: string
                                                  link:
                                                    description: Link to complete contact information
                                                    $schema: http://json-schema.org/draft-07/schema#
                                                    title: Link
                                                    type: object
                                                    required: *ref_15
                                                    properties: *ref_16
                                                unevaluatedProperties: false
                                                required: &ref_243
                                                  - name
                                                  - link
                                        documents:
                                          description: Additional documentation about the asset
                                          type: array
                                          items:
                                            $schema: http://json-schema.org/draft-07/schema#
                                            type: object
                                            properties: &ref_64
                                              role:
                                                description: Type of document (semantic link)
                                                type: string
                                                format: uri
                                              name:
                                                description: Name of the document
                                                type: string
                                              description:
                                                description: Human readable description of the document
                                                type: string
                                              link:
                                                description: URI of the document (Favor a URL if the document is directly accessible online)
                                                $schema: http://json-schema.org/draft-07/schema#
                                                title: Link
                                                type: object
                                                required: *ref_15
                                                properties: *ref_16
                                            unevaluatedProperties: false
                                            required: &ref_65
                                              - name
                                              - link
                                        history:
                                          description: The list of events related to this asset
                                          type: array
                                          items:
                                            $schema: http://json-schema.org/draft-07/schema#
                                            description: A time tagged event with description and relevant property values.
                                            type: object
                                            allOf: &ref_246
                                              - $schema: http://json-schema.org/draft-07/schema#
                                                description: Base substitution groups for all SWE Common objects with identification metadata
                                                type: object
                                                allOf: *ref_22
                                              - properties:
                                                  definition:
                                                    description: Type of event (semantic link)
                                                    type: string
                                                    format: uri
                                                  identifiers:
                                                    description: Additional identifiers for the event, useful for discovery.
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties: *ref_18
                                                      required: *ref_19
                                                      unevaluatedProperties: false
                                                  classifiers:
                                                    description: Additional classifiers for the event, useful for discovery.
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties: *ref_18
                                                      required: *ref_19
                                                      unevaluatedProperties: false
                                                  contacts:
                                                    description: The list of contacts relevant to this event
                                                    type: array
                                                    items:
                                                      $schema: http://json-schema.org/draft-07/schema#
                                                      type: object
                                                      properties: *ref_60
                                                      unevaluatedProperties: false
                                                      required: *ref_61
                                                      oneOf: *ref_62
                                                      definitions: *ref_63
                                                  documentation:
                                                    description: Additional documentation relevant to this event
                                                    type: array
                                                    items:
                                                      $schema: http://json-schema.org/draft-07/schema#
                                                      type: object
                                                      properties: *ref_64
                                                      unevaluatedProperties: false
                                                      required: *ref_65
                                                  time:
                                                    description: Time of the event
                                                    oneOf: &ref_244
                                                      - $schema: http://json-schema.org/draft-07/schema#
                                                        title: Time Instant
                                                        type: string
                                                        format: date-time
                                                      - $schema: http://json-schema.org/draft-07/schema#
                                                        title: Time Period
                                                        type: array
                                                        minItems: 2
                                                        maxItems: 2
                                                        items: *ref_20
                                                  properties:
                                                    description: A list of additional properties of interest to the event (e.g. calibration values, condition category, error codes, etc).
                                                    type: array
                                                    items:
                                                      oneOf: *ref_56
                                                  configuration:
                                                    description: Configuration settings adjusted during the event.
                                                    $schema: http://json-schema.org/draft-07/schema#
                                                    type: object
                                                    properties: &ref_68
                                                      setValues:
                                                        type: array
                                                        minItems: 1
                                                        items:
                                                          type: object
                                                          properties:
                                                            ref:
                                                              type: string
                                                              pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
                                                            value:
                                                              oneOf:
                                                                - title: Number
                                                                  type: number
                                                                - title: String
                                                                  type: string
                                                          required:
                                                            - ref
                                                            - value
                                                          additionalProperties: false
                                                      setArrayValues:
                                                        type: array
                                                        minItems: 1
                                                        items:
                                                          type: object
                                                          properties:
                                                            ref:
                                                              type: string
                                                              pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
                                                            value:
                                                              type: array
                                                          required:
                                                            - ref
                                                            - value
                                                          additionalProperties: false
                                                      setModes:
                                                        type: array
                                                        minItems: 1
                                                        items:
                                                          type: object
                                                          properties:
                                                            ref:
                                                              type: string
                                                              pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
                                                            value:
                                                              type: string
                                                          required:
                                                            - ref
                                                            - value
                                                          additionalProperties: false
                                                      setConstraints:
                                                        type: array
                                                        minItems: 1
                                                        items:
                                                          allOf:
                                                            - properties:
                                                                ref:
                                                                  type: string
                                                                  pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
                                                            - oneOf: &ref_245
                                                                - description: Defines permitted values for the component, as an enumerated list of tokens or a regular expression pattern
                                                                  type: object
                                                                  oneOf: *ref_30
                                                                - description: Defines the permitted values for the component as an enumerated list and/or a list of inclusive ranges
                                                                  type: object
                                                                  properties: *ref_27
                                                                  anyOf: *ref_28
                                                                - description: Defines the permitted values for the component, as a time range or an enumerated list of time values
                                                                  type: object
                                                                  properties: *ref_37
                                                                  anyOf: *ref_38
                                                          required:
                                                            - type
                                                            - ref
                                                          additionalProperties: true
                                                      setStatus:
                                                        type: array
                                                        minItems: 1
                                                        items:
                                                          type: object
                                                          properties:
                                                            ref:
                                                              type: string
                                                              pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
                                                            value:
                                                              type: string
                                                              enum:
                                                                - enabled
                                                                - disabled
                                                          required:
                                                            - ref
                                                            - value
                                                          additionalProperties: false
                                                required:
                                                  - label
                                                  - time
                                  definitions: &ref_71
                                    CharacteristicList: &ref_237
                                      allOf: *ref_66
                                      unevaluatedProperties: false
                                    CapabilityList: &ref_238
                                      allOf: *ref_67
                                      unevaluatedProperties: false
                                - properties:
                                    definition:
                                      description: The type of process or system as a reference to a concept in an online ontology or dictionary. The value of the property must be a resolvable URI.
                                      type: string
                                      format: uri
                                    typeOf:
                                      description: A reference to a base process from which this process inherits properties and constraints (e.g. original equipment manufacturer's model description, generic equation, etc.).
                                      $schema: http://json-schema.org/draft-07/schema#
                                      title: Link
                                      type: object
                                      required: *ref_15
                                      properties: *ref_16
                                    configuration:
                                      description: Value settings that further constrain the properties of the base process.
                                      $schema: http://json-schema.org/draft-07/schema#
                                      type: object
                                      properties: *ref_68
                                    featuresOfInterest:
                                      description: A collection of sampling features or domain features relevant to the process (e.g. the Gulf of Mexico, the White House, the Atmosphere, a vehicle, etc.).
                                      type: array
                                      minItems: 1
                                      items: &ref_72
                                        $schema: http://json-schema.org/draft-07/schema#
                                        title: Link
                                        description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
                                        type: object
                                        required: *ref_15
                                        properties: *ref_16
                                    inputs:
                                      description: The list of process or system inputs.
                                      type: array
                                      minItems: 1
                                      items: &ref_73
                                        oneOf: &ref_69
                                          - title: DataComponent
                                            allOf:
                                              - type: object
                                                properties: *ref_46
                                                required: *ref_47
                                              - oneOf: *ref_48
                                          - title: ObservableProperty
                                            allOf:
                                              - type: object
                                                properties: *ref_46
                                                required: *ref_47
                                              - description: A physical property that can be observed and possibly measured (e.g. temperature, color, position). An ObservableProperty has unambiguous definition, but does not have units of measure.
                                                type: object
                                                allOf: &ref_230
                                                  - $schema: http://json-schema.org/draft-07/schema#
                                                    description: Base substitution groups for all SWE Common objects with identification metadata
                                                    type: object
                                                    allOf: *ref_22
                                                  - properties:
                                                      type:
                                                        const: ObservableProperty
                                                      definition:
                                                        type: string
                                                        format: uri
                                                    required:
                                                      - type
                                                      - definition
                                    outputs:
                                      description: The list of process or system outputs.
                                      type: array
                                      minItems: 1
                                      items: &ref_74
                                        oneOf: *ref_69
                                    parameters:
                                      description: The list of process or system parameters.
                                      type: array
                                      minItems: 1
                                      items: &ref_75
                                        oneOf: *ref_69
                                    modes:
                                      description: A collection of parameters that can be set at once through the selection of a particular predefined mode.
                                      type: array
                                      items:
                                        $schema: http://json-schema.org/draft-07/schema#
                                        type: object
                                        allOf: &ref_76
                                          - $schema: http://json-schema.org/draft-07/schema#
                                            type: object
                                            allOf: *ref_70
                                            definitions: *ref_71
                                          - properties:
                                              configuration:
                                                description: Value settings that further constrain the properties of the base process in this mode.
                                                $schema: http://json-schema.org/draft-07/schema#
                                                type: object
                                                properties: *ref_68
                              definitions: &ref_79
                                FeatureList: &ref_247
                                  type: array
                                  minItems: 1
                                  items: *ref_72
                                InputList: &ref_248
                                  type: array
                                  minItems: 1
                                  items: *ref_73
                                OutputList: &ref_249
                                  type: array
                                  minItems: 1
                                  items: *ref_74
                                ParameterList: &ref_250
                                  type: array
                                  minItems: 1
                                  items: *ref_75
                                ModeChoice:
                                  type: object
                                  properties:
                                    modes:
                                      type: array
                                      minItems: 1
                                      items:
                                        $schema: http://json-schema.org/draft-07/schema#
                                        type: object
                                        allOf: *ref_76
                                IOComponentChoice: &ref_231
                                  oneOf: *ref_69
                            - properties:
                                type:
                                  const: SimpleProcess
                                method:
                                  type: object
                                  properties: &ref_77
                                    algorithm:
                                      title: A description of the algorithm using a machine readable language, either inline or by reference
                                    description:
                                      title: A description of the method in natural language
                                      type: string
                          definitions: &ref_81
                            ProcessMethod: &ref_251
                              type: object
                              properties: *ref_77
                        - $schema: http://json-schema.org/draft-07/schema#
                          type: object
                          allOf: &ref_82
                            - $schema: http://json-schema.org/draft-07/schema#
                              type: object
                              allOf: *ref_78
                              definitions: *ref_79
                            - properties:
                                type:
                                  const: AggregateProcess
                                components:
                                  description: The list of sub-processes
                                  type: array
                                  minItems: 1
                                  items: &ref_83
                                    allOf:
                                      - type: object
                                        properties: *ref_46
                                        required: *ref_47
                                      - oneOf:
                                          - $schema: http://json-schema.org/draft-07/schema#
                                            type: object
                                            allOf: *ref_80
                                            definitions: *ref_81
                                          - $schema: http://json-schema.org/draft-07/schema#
                                            type: object
                                            allOf: *ref_82
                                            definitions: &ref_99
                                              ComponentList: &ref_259
                                                type: array
                                                minItems: 1
                                                items: *ref_83
                                              ConnectionList: &ref_260
                                                type: array
                                                minItems: 1
                                                items: &ref_98
                                                  type: object
                                                  properties:
                                                    source:
                                                      type: string
                                                      pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
                                                    destination:
                                                      type: string
                                                      pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
                                                  required:
                                                    - source
                                                    - destination
                                          - $schema: http://json-schema.org/draft-07/schema#
                                            type: object
                                            allOf: &ref_100
                                              - $schema: http://json-schema.org/draft-07/schema#
                                                type: object
                                                allOf: &ref_96
                                                  - $schema: http://json-schema.org/draft-07/schema#
                                                    type: object
                                                    allOf: *ref_78
                                                    definitions: *ref_79
                                                  - properties:
                                                      attachedTo:
                                                        description: References the physical component or system (e.g. platform) to which to which this component or system is attached.
                                                        $schema: http://json-schema.org/draft-07/schema#
                                                        title: Link
                                                        type: object
                                                        required: *ref_15
                                                        properties: *ref_16
                                                      localReferenceFrames:
                                                        description: A list of spatial reference frames, attached to the physical component itself.
                                                        type: array
                                                        items:
                                                          description: A general spatial Cartesian Reference Frame where the axes and origin will be defined textually relative to a physical component.
                                                          type: object
                                                          allOf: &ref_93
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Base substitution groups for all SWE Common objects with identification metadata
                                                              type: object
                                                              allOf: *ref_22
                                                            - properties:
                                                                origin:
                                                                  description: A textual description of the origin of the reference frame relative to the physical device (e.g. "the origin is at the point of attachment of the sensor to the platform").
                                                                  type: string
                                                                axes:
                                                                  description: Axis with name attribute and a textual description of the relationship of the axis to the physical device; the order of the axes listed determines their relationship according to the right-handed rule (e.g. axis 1 cross axis 2 = axis 3).
                                                                  type: array
                                                                  items:
                                                                    type: object
                                                                    properties:
                                                                      name:
                                                                        type: string
                                                                      description:
                                                                        type: string
                                                                    required:
                                                                      - name
                                                                      - description
                                                              required:
                                                                - origin
                                                                - axes
                                                          unevaluatedProperties: false
                                                      localTimeFrames:
                                                        description: Supports local time reference frames such as "time past mission start". Note that units are handled in timePosition so they are not specified in the TemporalFrame.
                                                        type: array
                                                        items:
                                                          description: A general temporal frame such as a mission start time or timer start time. The origin should just describe context of the start of time (e.g. start of local timer).
                                                          type: object
                                                          allOf: &ref_94
                                                            - $schema: http://json-schema.org/draft-07/schema#
                                                              description: Base substitution groups for all SWE Common objects with identification metadata
                                                              type: object
                                                              allOf: *ref_22
                                                            - properties:
                                                                origin:
                                                                  type: string
                                                              required:
                                                                - origin
                                                          unevaluatedProperties: false
                                                      position:
                                                        description: Provides positional information relating the component's spatial reference frame to an external spatial reference frame.
                                                        oneOf: &ref_95
                                                          - title: by Text
                                                            description: A textual description of where the system is located (e.g. a building name, a room number, etc.)
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            type: object
                                                            allOf: *ref_35
                                                          - title: by Point
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            $id: https://geojson.org/schema/Point.json
                                                            type: object
                                                            required: &ref_164
                                                              - type
                                                              - coordinates
                                                            properties: &ref_165
                                                              type:
                                                                type: string
                                                                enum:
                                                                  - Point
                                                              coordinates:
                                                                type: array
                                                                minItems: 2
                                                                items:
                                                                  type: number
                                                              bbox:
                                                                type: array
                                                                minItems: 4
                                                                items:
                                                                  type: number
                                                          - title: by Pose
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            description: A Pose object that can be either a GeoPose Basic instance of a relative pose.
                                                            oneOf: &ref_168
                                                              - type: object
                                                                title: GeoPose YPR
                                                                description: 'Basic-YPR: Basic GeoPose using yaw, pitch, and roll to specify orientation'
                                                                properties:
                                                                  type:
                                                                    const: GeoPose
                                                                  ltpReferenceFrame:
                                                                    type: string
                                                                    format: uri
                                                                  position:
                                                                    description: Geographic position in EPSG:4979 CRS (WGS84)
                                                                    properties: &ref_84
                                                                      lat:
                                                                        type: number
                                                                      lon:
                                                                        type: number
                                                                      h:
                                                                        type: number
                                                                    required: &ref_85
                                                                      - lat
                                                                      - lon
                                                                      - h
                                                                  angles:
                                                                    description: Euler angles, with yaw, pitch and roll rotations about the local (rotated) axes Z, Y, and X respectively, applied in that order
                                                                    properties: &ref_86
                                                                      yaw:
                                                                        description: Yaw angle about Z axis, in degrees
                                                                        type: number
                                                                      pitch:
                                                                        description: Pitch angle about Y axis, in degrees
                                                                        type: number
                                                                      roll:
                                                                        description: Roll angle about X axis, in degrees
                                                                        type: number
                                                                    required: &ref_87
                                                                      - yaw
                                                                      - pitch
                                                                      - roll
                                                                required:
                                                                  - type
                                                                  - position
                                                                  - angles
                                                              - type: object
                                                                title: GeoPose Quaternion
                                                                description: 'Basic-Quaternion: Basic GeoPose using quaternion to specify orientation'
                                                                properties:
                                                                  type:
                                                                    const: GeoPose
                                                                  ltpReferenceFrame:
                                                                    type: string
                                                                    format: uri
                                                                  position:
                                                                    description: Geographic position in EPSG:4979 CRS (WGS84)
                                                                    properties: *ref_84
                                                                    required: *ref_85
                                                                  quaternion:
                                                                    description: Quaternion orientation expressed in the specified reference frame
                                                                    properties: &ref_90
                                                                      x:
                                                                        type: number
                                                                      'y':
                                                                        type: number
                                                                      z:
                                                                        type: number
                                                                      w:
                                                                        type: number
                                                                    required: &ref_91
                                                                      - x
                                                                      - 'y'
                                                                      - z
                                                                      - w
                                                                required:
                                                                  - type
                                                                  - position
                                                                  - quaternion
                                                              - type: object
                                                                title: Relative Pose YPR
                                                                description: 'Relative-YPR: Relative pose using yaw, pitch, and roll to specify orientation'
                                                                properties:
                                                                  type:
                                                                    const: RelativePose
                                                                  referenceFrame:
                                                                    type: string
                                                                    format: uri
                                                                  position:
                                                                    description: Cartesian position expressed in the specified reference frame
                                                                    properties: &ref_88
                                                                      x:
                                                                        description: Distance along the X axis, in meters
                                                                        type: number
                                                                      'y':
                                                                        description: Distance along the Y axis, in meters
                                                                        type: number
                                                                      z:
                                                                        description: Distance along the Z axis, in meters
                                                                        type: number
                                                                    required: &ref_89
                                                                      - x
                                                                      - 'y'
                                                                      - z
                                                                  angles:
                                                                    description: Euler angles, with yaw, pitch and roll rotations about the local (rotated) axes Z, Y, and X respectively, applied in that order
                                                                    properties: *ref_86
                                                                    required: *ref_87
                                                                required:
                                                                  - type
                                                                  - referenceFrame
                                                                  - position
                                                                  - angles
                                                              - type: object
                                                                title: Relative Pose Quaternion
                                                                description: 'Relative-Quaternion: Relative pose using quaternion to specify orientation'
                                                                properties:
                                                                  type:
                                                                    const: RelativePose
                                                                  referenceFrame:
                                                                    type: string
                                                                    format: uri
                                                                  position:
                                                                    description: Cartesian position expressed in the specified reference frame
                                                                    properties: *ref_88
                                                                    required: *ref_89
                                                                  quaternion:
                                                                    description: Quaternion orientation expressed in the specified reference frame
                                                                    properties: *ref_90
                                                                    required: *ref_91
                                                                required:
                                                                  - type
                                                                  - referenceFrame
                                                                  - position
                                                                  - quaternion
                                                            definitions: &ref_169
                                                              PositionGeo: &ref_252
                                                                description: Geographic position in EPSG:4979 CRS (WGS84)
                                                                properties: *ref_84
                                                                required: *ref_85
                                                              PositionXYZ: &ref_255
                                                                description: Cartesian position expressed in the specified reference frame
                                                                properties: *ref_88
                                                                required: *ref_89
                                                              AnglesYPR: &ref_253
                                                                description: Euler angles, with yaw, pitch and roll rotations about the local (rotated) axes Z, Y, and X respectively, applied in that order
                                                                properties: *ref_86
                                                                required: *ref_87
                                                              Quaternion: &ref_254
                                                                description: Quaternion orientation expressed in the specified reference frame
                                                                properties: *ref_90
                                                                required: *ref_91
                                                          - title: by Process
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            type: object
                                                            allOf: *ref_78
                                                            definitions: *ref_79
                                                          - title: by Datastream
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
                                                            type: object
                                                            required: *ref_15
                                                            properties: *ref_16
                                                          - title: by Location Vector
                                                            deprecated: true
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            description: Implementation of a mathematical vector composed of a list of scalar coordinates expressed in the mandatory reference frame.
                                                            type: object
                                                            allOf: *ref_49
                                                          - title: by Position (DataRecord)
                                                            deprecated: true
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            description: Implementation of ISO-11404 Record datatype. This allows grouping (sequence) of data components which can themselves be simple types, records, arrays or choices
                                                            type: object
                                                            allOf: *ref_92
                                                          - title: by Trajectory (DataArray)
                                                            deprecated: true
                                                            $schema: http://json-schema.org/draft-07/schema#
                                                            description: Implementation of ISO-11404 Array datatype. This defines an array of identical data components with a elementCount. Values are given as a block and can be encoded in different ways
                                                            allOf: *ref_50
                                                            definitions: *ref_54
                                                definitions: &ref_97
                                                  SpatialFrame: &ref_256
                                                    description: A general spatial Cartesian Reference Frame where the axes and origin will be defined textually relative to a physical component.
                                                    type: object
                                                    allOf: *ref_93
                                                    unevaluatedProperties: false
                                                  TemporalFrame: &ref_257
                                                    description: A general temporal frame such as a mission start time or timer start time. The origin should just describe context of the start of time (e.g. start of local timer).
                                                    type: object
                                                    allOf: *ref_94
                                                    unevaluatedProperties: false
                                                  Position: &ref_258
                                                    oneOf: *ref_95
                                              - properties:
                                                  type:
                                                    const: PhysicalComponent
                                                  method:
                                                    type: object
                                                    properties: *ref_77
                                          - $schema: http://json-schema.org/draft-07/schema#
                                            type: object
                                            allOf: &ref_101
                                              - $schema: http://json-schema.org/draft-07/schema#
                                                type: object
                                                allOf: *ref_96
                                                definitions: *ref_97
                                              - properties:
                                                  type:
                                                    const: PhysicalSystem
                                                  components:
                                                    description: The list of sub-components
                                                    type: array
                                                    minItems: 1
                                                    items: *ref_83
                                                  connections:
                                                    type: array
                                                    minItems: 1
                                                    items: *ref_98
                                          - properties:
                                              type:
                                                const: Link
                                            $schema: http://json-schema.org/draft-07/schema#
                                            title: Link
                                            description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
                                            type: object
                                            required: *ref_15
                                connections:
                                  description: The explicit definition of data links between outputs, inputs, and parameters of the components within an aggregate process.
                                  type: array
                                  minItems: 1
                                  items: *ref_98
                          definitions: *ref_99
                        - $schema: http://json-schema.org/draft-07/schema#
                          type: object
                          allOf: *ref_100
                        - $schema: http://json-schema.org/draft-07/schema#
                          type: object
                          allOf: *ref_101
                    - properties:
                        definition:
                          type: string
                          enum: *ref_102
                        links:
                          description: Links to related resources
                          $schema: http://json-schema.org/draft-07/schema#
                          title: Link Collection
                          type: array
                          minItems: 1
                          items: *ref_103
                      required:
                        - definition
                        - uniqueId
                - title: List of Systems
                  type: array
                  minItems: 1
                  items:
                    $schema: http://json-schema.org/draft-07/schema#
                    allOf: *ref_104
      responses:
        '201':
          description: Success. New resource created.
          headers: &ref_110
            Location:
              schema:
                type: string
              description: URI of newly created resource
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /collections/{collectionId}/items/{resourceId}:
    get:
      summary: Get a collection item
      description: Retrieve a specific item from a collection.
      tags:
        - Collections
      parameters:
        - name: collectionId
          in: path
          description: Local identifier of a collection
          required: true
          schema: *ref_4
        - name: resourceId
          in: path
          description: Local identifier of a Resource
          required: true
          schema: &ref_106
            type: string
            minLength: 1
      responses:
        '200':
          description: Feature resource
          content: &ref_302
            application/geo+json:
              schema:
                allOf:
                  - $schema: http://json-schema.org/draft-07/schema#
                    allOf: *ref_105
                  - type: object
                    required:
                      - id
              examples:
                system:
                  summary: System
                  value:
                    type: Feature
                    id: SYS001
                    geometry: null
                    properties:
                      featureType: http://www.w3.org/ns/sosa/Platform
                      uid: urn:x-ogc:systems:uav:solo154
                      name: UAV System 412
                      description: 3DR Solo UAV
                    links:
                      - rel: self
                        href: https://data.example.com/api/collections/all_systems/items/SYS001?f=json
                        type: application/geo+json
                      - rel: canonical
                        href: https://data.example.com/api/systems/SYS001?f=json
                        type: application/geo+json
                deployment:
                  summary: Deployment
                  value:
                    type: Feature
                    id: iv3f2kcq27gfi
                    geometry:
                      type: Polygon
                      coordinates:
                        - - - 53.76
                            - -173.7
                          - - 53.76
                            - -155.07
                          - - 75.03
                            - -155.07
                          - - 75.03
                            - -173.7
                          - - 53.76
                            - -173.7
                    properties:
                      uid: urn:x-ogc:deployments:D001
                      name: Saildrone - 2017 Arctic Mission
                      featureType: http://www.w3.org/ns/ssn/Deployment
                      description: In July 2017, three saildrones were launched from Dutch Harbor, Alaska, in partnership with NOAA Research...
                      validTime:
                        - '2017-07-17T00:00:00Z'
                        - '2017-09-29T00:00:00Z'
                      members:
                        href: https://data.example.org/api/deployments/iv3f2kcq27gfi/systems?f=json
                        type: application/geo+json
                        title: Deployed Systems
                    links:
                      - rel: self
                        href: https://data.example.com/api/collections/all_deployments/items/iv3f2kcq27gfi?f=json
                        type: application/geo+json
                      - rel: canonical
                        href: https://data.example.com/api/deployments/iv3f2kcq27gfi?f=json
                        type: application/geo+json
    delete:
      summary: Remove a collection item
      description: |-
        Remove a resource from a collection.

        The resource will only be removed from the collection but will still be accessible from its canonical resources endpoint.
        (However, removing the resource from its canonical resources endpoint will remove it from all collections)
      tags:
        - Collections
      parameters:
        - name: collectionId
          in: path
          description: Local identifier of a collection
          required: true
          schema: *ref_4
        - name: resourceId
          in: path
          description: Local identifier of a Resource
          required: true
          schema: *ref_106
      responses:
        '204':
          description: Success. Resource deleted.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        '409':
          description: The resource cannot be deleted because other resources depend on it.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /systems:
    get:
      summary: List all available systems
      description: |-
        List or search all `System` resources available from this server endpoint.

        By default, only top level systems are included (i.e. subsystems are ommitted) unless the `parent` query parameter is set.
      tags:
        - Systems
      parameters:
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: parent
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have a parent that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: &ref_124
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: *ref_109
          explode: false
        - name: procedure
          description: |-
            List of procedure local IDs or unique IDs (URI).
            Only systems that implement a procedure that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: &ref_125
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: *ref_109
          explode: false
        - name: foi
          description: |-
            List of feature local IDs or unique IDs (URI).
            Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: &ref_126
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: *ref_109
          explode: false
        - name: observedProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to an observable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: &ref_127
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: *ref_109
          explode: false
        - name: controlledProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: &ref_128
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: *ref_109
          explode: false
        - description: If true, instructs the server to include subsystems in the search results.
          name: recursive
          in: query
          required: false
          schema: &ref_129
            type: boolean
            default: false
          style: form
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: &ref_130
            application/geo+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: &ref_262
                  - $schema: http://json-schema.org/draft-07/schema#
                    $id: https://geojson.org/schema/FeatureCollection.json
                    title: GeoJSON FeatureCollection
                    type: object
                    required: &ref_131
                      - type
                      - features
                    properties: &ref_132
                      type:
                        type: string
                        enum:
                          - FeatureCollection
                      features:
                        type: array
                        items:
                          title: GeoJSON Feature
                          type: object
                          required:
                            - type
                            - properties
                            - geometry
                          properties:
                            type:
                              type: string
                              enum:
                                - Feature
                            id:
                              oneOf:
                                - type: number
                                - type: string
                            properties:
                              oneOf:
                                - type: 'null'
                                - type: object
                            geometry:
                              oneOf:
                                - type: 'null'
                                - title: GeoJSON Point
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Point
                                    coordinates:
                                      type: array
                                      minItems: 2
                                      items:
                                        type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON LineString
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - LineString
                                    coordinates:
                                      type: array
                                      minItems: 2
                                      items:
                                        type: array
                                        minItems: 2
                                        items:
                                          type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON Polygon
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - Polygon
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        minItems: 4
                                        items:
                                          type: array
                                          minItems: 2
                                          items:
                                            type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON MultiPoint
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - MultiPoint
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        minItems: 2
                                        items:
                                          type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON MultiLineString
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - MultiLineString
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        minItems: 2
                                        items:
                                          type: array
                                          minItems: 2
                                          items:
                                            type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON MultiPolygon
                                  type: object
                                  required:
                                    - type
                                    - coordinates
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - MultiPolygon
                                    coordinates:
                                      type: array
                                      items:
                                        type: array
                                        items:
                                          type: array
                                          minItems: 4
                                          items:
                                            type: array
                                            minItems: 2
                                            items:
                                              type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                                - title: GeoJSON GeometryCollection
                                  type: object
                                  required:
                                    - type
                                    - geometries
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - GeometryCollection
                                    geometries:
                                      type: array
                                      items:
                                        oneOf:
                                          - title: GeoJSON Point
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - Point
                                              coordinates:
                                                type: array
                                                minItems: 2
                                                items:
                                                  type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON LineString
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - LineString
                                              coordinates:
                                                type: array
                                                minItems: 2
                                                items:
                                                  type: array
                                                  minItems: 2
                                                  items:
                                                    type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON Polygon
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - Polygon
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  minItems: 4
                                                  items:
                                                    type: array
                                                    minItems: 2
                                                    items:
                                                      type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON MultiPoint
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - MultiPoint
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  minItems: 2
                                                  items:
                                                    type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON MultiLineString
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - MultiLineString
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  minItems: 2
                                                  items:
                                                    type: array
                                                    minItems: 2
                                                    items:
                                                      type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                          - title: GeoJSON MultiPolygon
                                            type: object
                                            required:
                                              - type
                                              - coordinates
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - MultiPolygon
                                              coordinates:
                                                type: array
                                                items:
                                                  type: array
                                                  items:
                                                    type: array
                                                    minItems: 4
                                                    items:
                                                      type: array
                                                      minItems: 2
                                                      items:
                                                        type: number
                                              bbox:
                                                type: array
                                                minItems: 4
                                                items:
                                                  type: number
                                    bbox:
                                      type: array
                                      minItems: 4
                                      items:
                                        type: number
                            bbox:
                              type: array
                              minItems: 4
                              items:
                                type: number
                      bbox:
                        type: array
                        minItems: 4
                        items:
                          type: number
                  - type: object
                    properties:
                      features:
                        $schema: http://json-schema.org/draft-07/schema#
                        type: array
                        items: &ref_261
                          title: System Feature
                          $schema: http://json-schema.org/draft-07/schema#
                          allOf: *ref_17
                      links:
                        description: Links to related resources (including paging)
                        $schema: http://json-schema.org/draft-07/schema#
                        title: Link Collection
                        type: array
                        minItems: 1
                        items: *ref_103
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                type: object
                properties: &ref_264
                  items:
                    $schema: http://json-schema.org/draft-07/schema#
                    type: array
                    items: &ref_263
                      title: System Feature
                      $schema: http://json-schema.org/draft-07/schema#
                      allOf: *ref_104
                  links:
                    description: Links to related resources (including paging)
                    $schema: http://json-schema.org/draft-07/schema#
                    title: Link Collection
                    type: array
                    minItems: 1
                    items: *ref_103
                required: &ref_265
                  - items
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    post:
      summary: Create a new system
      description: Add a new top-level `System` resource (i.e. the system will have no parent).
      tags:
        - Systems
      requestBody:
        required: true
        content: &ref_123
          application/geo+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              allOf: *ref_17
            examples:
              sensor:
                summary: Sensor - Simple Thermometer
                value:
                  type: Feature
                  id: '123'
                  geometry: &ref_111
                    type: Point
                    coordinates:
                      - 41.8781
                      - -87.6298
                  properties: &ref_112
                    uid: urn:x-ogc:systems:001
                    name: Outdoor Thermometer 001
                    description: Digital thermometer located on first floor window 1
                    featureType: http://www.w3.org/ns/sosa/Sensor
                    assetType: http://www.opengis.net/def/x-OGC/TBD/Equipment
                    systemKind@link:
                      href: https://data.example.org/api/procedures/TP60S?f=json
                      uid: urn:x-myorg:datasheets:ThermoPro:TP60S:v001
                      title: Thermo Pro TP60S
                      type: application/geo+json
              platform:
                summary: Platform - Unmanned Aerial Vehicle (UAV)
                value:
                  type: Feature
                  id: PLT412
                  geometry: null
                  properties: &ref_113
                    uid: urn:x-ogc:systems:uav:solo154
                    name: UAV System 412
                    description: 3DR Solo UAV
                    featureType: http://www.w3.org/ns/sosa/Platform
                    systemKind@link:
                      href: https://data.example.org/api/procedures/nrof8qi7wc9a?f=json
                      uid: urn:x-ogc:datasheets:uav:3dr-solo:v1
                      type: application/geo+json
          application/sml+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              allOf: *ref_104
            examples:
              sensor:
                summary: Sensor - Simple Thermometer
                value:
                  type: PhysicalSystem
                  id: '123'
                  definition: http://www.w3.org/ns/sosa/Sensor
                  uniqueId: urn:x-ogc:systems:001
                  label: Outdoor Thermometer 001
                  description: Digital thermometer located on first floor window 1
                  typeOf: &ref_114
                    href: https://data.example.org/api/procedures/TP60S?f=sml
                    uid: urn:x-myorg:datasheets:ThermoPro:TP60S:v001
                    title: ThermoPro TP60S
                    type: application/sml+json
                  identifiers: &ref_115
                    - definition: http://sensorml.com/ont/swe/property/SerialNumber
                      label: Serial Number
                      value: '0123456879'
                  contacts: &ref_116
                    - role: http://sensorml.com/ont/swe/roles/Operator
                      organisationName: Field Maintenance Corp.
                  position: &ref_117
                    type: Point
                    coordinates:
                      - 41.8781
                      - -87.6298
              platform:
                summary: Platform - Unmanned Aerial Vehicle (UAV)
                value:
                  type: PhysicalSystem
                  id: PLT412
                  definition: http://www.w3.org/ns/sosa/Platform
                  uniqueId: urn:x-usaf:systems:aircraft:101
                  label: Global Hawk 101
                  description: Example UAV platform
                  typeOf: &ref_118
                    href: https://data.example.org/api/procedures/ge4pjqq0hq6y?f=json
                    uid: urn:x-ngc:datasheets:uav:RQ-4B
                    type: application/sml+json
                  identifiers: &ref_119
                    - definition: http://sensorml.com/ont/swe/property/SerialNumber
                      label: Serial Number
                      value: '0123456879'
                  contacts: &ref_120
                    - role: http://sensorml.com/ont/swe/property/Operator
                      organisationName: Field Maintenance Corp.
                  localReferenceFrames: &ref_121
                    - label: Platform Frame
                      description: The platform frame is defined as the aircraft principal axes
                      origin: Center of gravity of the aircraft
                      axes:
                        - name: x
                          description: Longitudinal or roll axis, parallel to the fuselage reference line, directed forward
                        - name: 'y'
                          description: Transverse or pitch axis, parallel to the line drawn from wingtip to wingtip, directed to the right of the aircraft when looking forward
                        - name: z
                          description: Vertical or yaw axis, perpendicular to the wings and to the fuselage reference line, directed toward the bottom of the aircraft
      responses:
        '201':
          description: Success. New resource created.
          headers: *ref_110
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /systems/{systemId}:
    get:
      summary: Get a system by ID
      description: |-
        This will return the latest description of the system valid before or at the current time, by default.

        If system history is supported by the server, descriptions of the system valid at past (or future) time
        can be accessed using the `datetime` parameter or through the `history` sub-collection.
      tags:
        - Systems
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: &ref_122
            type: string
            minLength: 1
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
      responses:
        '200':
          description: OK. Successful request
          content: &ref_303
            application/geo+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: *ref_17
              examples:
                sensor:
                  summary: Sensor - Simple Thermometer
                  value:
                    type: Feature
                    id: '123'
                    geometry: *ref_111
                    properties: *ref_112
                platform:
                  summary: Platform - Unmanned Aerial Vehicle (UAV)
                  value:
                    type: Feature
                    id: PLT412
                    geometry: null
                    properties: *ref_113
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: *ref_104
              examples:
                sensor:
                  summary: Sensor - Simple Thermometer
                  value:
                    type: PhysicalSystem
                    id: '123'
                    definition: http://www.w3.org/ns/sosa/Sensor
                    uniqueId: urn:x-ogc:systems:001
                    label: Outdoor Thermometer 001
                    description: Digital thermometer located on first floor window 1
                    typeOf: *ref_114
                    identifiers: *ref_115
                    contacts: *ref_116
                    position: *ref_117
                platform:
                  summary: Platform - Unmanned Aerial Vehicle (UAV)
                  value:
                    type: PhysicalSystem
                    id: PLT412
                    definition: http://www.w3.org/ns/sosa/Platform
                    uniqueId: urn:x-usaf:systems:aircraft:101
                    label: Global Hawk 101
                    description: Example UAV platform
                    typeOf: *ref_118
                    identifiers: *ref_119
                    contacts: *ref_120
                    localReferenceFrames: *ref_121
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    put:
      summary: Update a system
      description: |-
        This will completely replace the existing description of the system with the provided content.

        If system history is supported and the `validTime` property starts after the time of the previous description,
        the provided description becomes the current one and all previous descriptions are made available via the
        `history` sub collection.
      tags:
        - Systems
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: *ref_122
      requestBody:
        required: true
        content: *ref_123
      responses:
        '204':
          description: Success. Resource updated.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    delete:
      summary: Delete a system
      description: |-
        This will delete the system and remove it from all collections it is associated to.

        If the `cascade` parameter is used, all associated sub-resources hosted by the same server
        (sampling features, datastreams, command streams, observations, and commmands) are also deleted.

        If system history is supported, all historical descriptions are deleted as well.
      tags:
        - Systems
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: *ref_122
        - name: cascade
          in: query
          description: If set to true, dependent resources are also deleted.
          required: false
          schema: &ref_310
            type: boolean
            default: false
      responses:
        '204':
          description: Success. Resource deleted.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        '409':
          description: The resource cannot be deleted because other resources depend on it.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /systems/{systemId}/subsystems:
    get:
      summary: List subsystems
      description: |-
        List or search all `System` resources that are subsystems (i.e. components) of a specific parent system.

        Note that individual members can also be retrieved by ID directly at the canonical `System` resources endpoint.
      tags:
        - Systems
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: *ref_122
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: parent
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have a parent that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_124
          explode: false
        - name: procedure
          description: |-
            List of procedure local IDs or unique IDs (URI).
            Only systems that implement a procedure that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_125
          explode: false
        - name: foi
          description: |-
            List of feature local IDs or unique IDs (URI).
            Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_126
          explode: false
        - name: observedProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to an observable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_127
          explode: false
        - name: controlledProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_128
          explode: false
        - description: If true, instructs the server to include nested subsystems, recursively.
          name: recursive
          in: query
          required: false
          schema: *ref_129
          style: form
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: *ref_130
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    post:
      summary: Add a subsystem
      tags:
        - Systems
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: *ref_122
      requestBody:
        required: true
        content: *ref_123
      responses:
        '201':
          description: Success. New resource created.
          headers: *ref_110
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /deployments:
    get:
      summary: List all available deployments
      description: List or search all `Deployment` resources available from this server endpoint.
      tags:
        - Deployments
      parameters:
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: parent
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have a parent that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_124
          explode: false
        - name: system
          description: |-
            List of system local IDs or unique IDs (URI).
            Only resources that are associated to a System that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: &ref_151
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: *ref_109
          explode: false
        - name: foi
          description: |-
            List of feature local IDs or unique IDs (URI).
            Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_126
          explode: false
        - name: observedProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to an observable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_127
          explode: false
        - name: controlledProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_128
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: &ref_152
            application/geo+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: &ref_267
                  - $schema: http://json-schema.org/draft-07/schema#
                    $id: https://geojson.org/schema/FeatureCollection.json
                    title: GeoJSON FeatureCollection
                    type: object
                    required: *ref_131
                    properties: *ref_132
                  - type: object
                    properties:
                      features:
                        $schema: http://json-schema.org/draft-07/schema#
                        type: array
                        items: &ref_266
                          title: Deployment Feature
                          $schema: http://json-schema.org/draft-07/schema#
                          allOf: &ref_137
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_105
                            - properties:
                                properties:
                                  required:
                                    - validTime
                                  properties:
                                    featureType:
                                      type: string
                                      enum: &ref_136
                                        - http://www.w3.org/ns/sosa/Deployment
                                        - sosa:Deployment
                                    validTime:
                                      description: Time period during which the systems are deployed.
                                      $schema: http://json-schema.org/draft-07/schema#
                                      title: Time Period
                                      type: array
                                      minItems: 2
                                      maxItems: 2
                                      items: *ref_20
                                    platform@link:
                                      description: Link to the platform on which the systems are deployed.
                                      $schema: http://json-schema.org/draft-07/schema#
                                      title: Link
                                      type: object
                                      required: *ref_15
                                      properties: *ref_16
                                    deployedSystems@link:
                                      type: array
                                      items:
                                        description: Link to the system being deployed.
                                        $schema: http://json-schema.org/draft-07/schema#
                                        title: Link
                                        type: object
                                        required: *ref_15
                                        properties: *ref_16
                      links:
                        description: Links to related resources (including paging)
                        $schema: http://json-schema.org/draft-07/schema#
                        title: Link Collection
                        type: array
                        minItems: 1
                        items: *ref_103
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                type: object
                properties: &ref_270
                  items:
                    $schema: http://json-schema.org/draft-07/schema#
                    type: array
                    items: &ref_269
                      title: Deployment Feature
                      $schema: http://json-schema.org/draft-07/schema#
                      allOf: &ref_138
                        - $schema: http://json-schema.org/draft-07/schema#
                          allOf: &ref_268
                            - $schema: http://json-schema.org/draft-07/schema#
                              type: object
                              allOf: *ref_70
                              definitions: *ref_71
                            - properties:
                                type:
                                  const: Deployment
                                definition:
                                  description: Type of deployment (semantic link)
                                  type: string
                                  format: uri
                                location:
                                  description: The deployment location or area
                                  $schema: http://json-schema.org/draft-07/schema#
                                  $id: https://geojson.org/schema/Geometry.json
                                  title: GeoJSON Geometry
                                  oneOf: *ref_133
                                platform:
                                  description: The platform that the systems are deployed on
                                  $schema: http://json-schema.org/draft-07/schema#
                                  type: object
                                  properties: &ref_134
                                    description:
                                      description: A textual description of the deployed system
                                      type: string
                                      minLength: 1
                                    system:
                                      description: Link to the system being deployed
                                      $schema: http://json-schema.org/draft-07/schema#
                                      title: Link
                                      type: object
                                      required: *ref_15
                                      properties: *ref_16
                                    configuration:
                                      description: The configuration of the system used during this deployment (e.g. sampling rate setting, etc.)
                                      $schema: http://json-schema.org/draft-07/schema#
                                      type: object
                                      properties: *ref_68
                                  required: &ref_135
                                    - system
                                deployedSystems:
                                  description: The list of deployed systems
                                  type: array
                                  items:
                                    allOf:
                                      - type: object
                                        properties: *ref_46
                                        required: *ref_47
                                      - $schema: http://json-schema.org/draft-07/schema#
                                        type: object
                                        properties: *ref_134
                                        required: *ref_135
                        - properties:
                            definition:
                              type: string
                              enum: *ref_136
                            links:
                              description: Links to related resources
                              $schema: http://json-schema.org/draft-07/schema#
                              title: Link Collection
                              type: array
                              minItems: 1
                              items: *ref_103
                          required:
                            - definition
                            - uniqueId
                  links:
                    description: Links to related resources (including paging)
                    $schema: http://json-schema.org/draft-07/schema#
                    title: Link Collection
                    type: array
                    minItems: 1
                    items: *ref_103
                required: &ref_271
                  - items
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    post:
      summary: Create a deployment
      description: Add a new top-level `Deployment` resource.
      tags:
        - Deployments
      requestBody:
        required: true
        content: &ref_150
          application/geo+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              allOf: *ref_137
            examples:
              usv:
                summary: Unmanned Surface Vehicle (USV) Deployment
                value:
                  type: Feature
                  id: iv3f2kcq27gfi
                  geometry: &ref_139
                    type: Polygon
                    coordinates:
                      - - - 53.76
                          - -173.7
                        - - 53.76
                          - -155.07
                        - - 75.03
                          - -155.07
                        - - 75.03
                          - -173.7
                        - - 53.76
                          - -173.7
                  properties: &ref_140
                    uid: urn:x-ogc:deployments:D001
                    name: Saildrone - 2017 Arctic Mission
                    featureType: http://www.w3.org/ns/sosa/Deployment
                    description: In July 2017, three saildrones were launched from Dutch Harbor, Alaska, in partnership with NOAA Research...
                    validTime:
                      - '2017-07-17T00:00:00Z'
                      - '2017-09-29T00:00:00Z'
                    platform@link:
                      href: https://data.example.org/api/systems/27559?f=sml
                      uid: urn:x-saildrone:platforms:SD-1003
                      title: Saildrone SD-1003
                    deployedSystems@link:
                      - href: https://data.example.org/api/systems/41548?f=sml
                        uid: urn:x-saildrone:sensors:temp01
                        title: Air Temperature Sensor
                      - href: https://data.example.org/api/systems/36584?f=sml
                        uid: urn:x-saildrone:sensors:temp02
                        title: Water Temperature Sensor
                      - href: https://data.example.org/api/systems/47752?f=sml
                        uid: urn:x-saildrone:sensors:wind01
                        title: Wind Speed and Direction Sensor
                  links: &ref_141
                    - rel: self
                      href: https://data.example.org/api/deployments/iv3f2kcq27gfi?f=json
                      type: application/geo+json
                      title: this document
                    - rel: alternate
                      href: https://data.example.org/api/deployments/iv3f2kcq27gfi?f=sml
                      type: application/sml+json
                      title: this resource as SensorML
          application/sml+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              allOf: *ref_138
            examples:
              usv:
                summary: Unmanned Surface Vehicle (USV) Deployment
                value:
                  type: Deployment
                  id: iv3f2kcq27gfi
                  definition: http://www.w3.org/ns/sosa/Deployment
                  uniqueId: urn:x-saildrone:mission:2025
                  label: Saildrone - 2017 Arctic Mission
                  description: In July 2017, three saildrones were launched from Dutch Harbor, Alaska, in partnership with NOAA Research...
                  classifiers: &ref_142
                    - definition: https://schema.org/DefinedRegion
                      label: Region
                      value: Arctic
                  contacts: &ref_143
                    - role: http://sensorml.com/ont/swe/property/Operator
                      organisationName: Saildrone, Inc.
                      contactInfo:
                        website: https://www.saildrone.com/
                        address:
                          deliveryPoint: 1050 W. Tower Ave.
                          city: Alameda
                          postalCode: '94501'
                          administrativeArea: CA
                          country: USA
                    - role: http://sensorml.com/ont/swe/property/DataProvider
                      organisationName: NOAA Pacific Marine Environmental Laboratory (PMEL)
                      contactInfo:
                        website: https://www.pmel.noaa.gov
                  validTime: &ref_144
                    - '2017-07-17T00:00:00Z'
                    - '2017-09-29T00:00:00Z'
                  location: &ref_145
                    type: Polygon
                    coordinates:
                      - - - -173.7
                          - 53.76
                        - - -173.7
                          - 75.03
                        - - -155.07
                          - 75.03
                        - - -155.07
                          - 53.76
                        - - -173.7
                          - 53.76
                  platform: &ref_146
                    system:
                      href: https://data.example.org/api/systems/27559?f=sml
                      uid: urn:x-saildrone:platforms:SD-1003
                      title: Saildrone SD-1003
                  deployedSystems: &ref_147
                    - name: air_temp_sensor
                      description: Air temperature sensor installed in the boom
                      system:
                        href: https://data.example.org/api/systems/41548?f=sml
                        uid: urn:x-saildrone:sensors:temp01
                        title: Air Temperature Sensor
                      configuration:
                        setValues:
                          - ref: parameters/sampling_rate
                            value: 0.1
                    - name: water_temp_sensor
                      description: Water temperature sensor installed on the keel
                      system:
                        href: https://data.example.org/api/systems/36584?f=sml
                        uid: urn:x-saildrone:sensors:temp02
                        title: Water Temperature Sensor
                    - name: wind_sensor
                      description: Wind sensor installed at the top of the mast
                      system:
                        href: https://data.example.org/api/systems/47752?f=sml
                        uid: urn:x-saildrone:sensors:wind01
                        title: Wind Speed and Direction Sensor
                  links: &ref_148
                    - rel: self
                      href: https://data.example.org/api/deployments/iv3f2kcq27gfi?f=sml
                      type: application/sml+json
                      title: this document
                    - rel: alternate
                      href: https://data.example.org/api/deployments/iv3f2kcq27gfi?f=json
                      type: application/geo+json
                      title: this resource as GeoJSON
      responses:
        '201':
          description: Success. New resource created.
          headers: *ref_110
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /deployments/{deploymentId}:
    get:
      summary: Get a deployment by ID
      tags:
        - Deployments
      parameters:
        - name: deploymentId
          in: path
          description: Local identifier of a Deployment
          required: true
          schema: &ref_149
            type: string
            minLength: 1
      responses:
        '200':
          description: OK. Successful request
          content: &ref_304
            application/geo+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: *ref_137
              examples:
                usv:
                  summary: Unmanned Surface Vehicle (USV) Deployment
                  value:
                    type: Feature
                    id: iv3f2kcq27gfi
                    geometry: *ref_139
                    properties: *ref_140
                    links: *ref_141
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: *ref_138
              examples:
                usv:
                  summary: Unmanned Surface Vehicle (USV) Deployment
                  value:
                    type: Deployment
                    id: iv3f2kcq27gfi
                    definition: http://www.w3.org/ns/sosa/Deployment
                    uniqueId: urn:x-saildrone:mission:2025
                    label: Saildrone - 2017 Arctic Mission
                    description: In July 2017, three saildrones were launched from Dutch Harbor, Alaska, in partnership with NOAA Research...
                    classifiers: *ref_142
                    contacts: *ref_143
                    validTime: *ref_144
                    location: *ref_145
                    platform: *ref_146
                    deployedSystems: *ref_147
                    links: *ref_148
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    put:
      summary: Update a deployment
      description: This will completely replace the existing description of the deployment with the provided content.
      tags:
        - Deployments
      parameters:
        - name: deploymentId
          in: path
          description: Local identifier of a Deployment
          required: true
          schema: *ref_149
      requestBody:
        required: true
        content: *ref_150
      responses:
        '204':
          description: Success. Resource updated.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    delete:
      summary: Delete a deployment
      description: This will delete the deployment and remove it from all collections it is associated to.
      tags:
        - Deployments
      parameters:
        - name: deploymentId
          in: path
          description: Local identifier of a Deployment
          required: true
          schema: *ref_149
      responses:
        '204':
          description: Success. Resource deleted.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        '409':
          description: The resource cannot be deleted because other resources depend on it.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /deployments/{deploymentId}/subdeployments:
    get:
      summary: List subdeployments
      description: |-
        List or search all `Deployment` resources that are part of a specific parent deployment.

        Note that individual members can also be retrieved by ID directly at the canonical `Deployment` resources endpoint.
      tags:
        - Deployments
      parameters:
        - name: deploymentId
          in: path
          description: Local identifier of a Deployment
          required: true
          schema: *ref_149
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: parent
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have a parent that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_124
          explode: false
        - name: system
          description: |-
            List of system local IDs or unique IDs (URI).
            Only resources that are associated to a System that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_151
          explode: false
        - name: foi
          description: |-
            List of feature local IDs or unique IDs (URI).
            Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_126
          explode: false
        - name: observedProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to an observable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_127
          explode: false
        - name: controlledProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_128
          explode: false
        - description: If true, instructs the server to include nested subdeployments, recursively.
          name: recursive
          in: query
          required: false
          schema: *ref_129
          style: form
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: *ref_152
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    post:
      summary: Add a subdeployment
      tags:
        - Deployments
      parameters:
        - name: deploymentId
          in: path
          description: Local identifier of a Deployment
          required: true
          schema: *ref_149
      requestBody:
        required: true
        content: *ref_150
      responses:
        '201':
          description: Success. New resource created.
          headers: *ref_110
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /systems/{systemId}/deployments:
    get:
      summary: List deployments of a specific system
      description: ''
      tags:
        - Deployments
        - Systems
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: *ref_122
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: foi
          description: |-
            List of feature local IDs or unique IDs (URI).
            Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_126
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: *ref_152
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /procedures:
    get:
      summary: List all available procedures
      description: List or search all `Procedure` resources available from this server endpoint.
      tags:
        - Procedures
      parameters:
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: observedProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to an observable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_127
          explode: false
        - name: controlledProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_128
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: &ref_305
            application/geo+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: &ref_273
                  - $schema: http://json-schema.org/draft-07/schema#
                    $id: https://geojson.org/schema/FeatureCollection.json
                    title: GeoJSON FeatureCollection
                    type: object
                    required: *ref_131
                    properties: *ref_132
                  - type: object
                    properties:
                      features:
                        $schema: http://json-schema.org/draft-07/schema#
                        type: array
                        items: &ref_272
                          title: Procedure Feature
                          $schema: http://json-schema.org/draft-07/schema#
                          allOf: &ref_154
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_105
                            - properties:
                                geometry:
                                  type: 'null'
                                properties:
                                  properties:
                                    featureType:
                                      type: string
                                      enum: &ref_153
                                        - http://www.w3.org/ns/sosa/Procedure
                                        - http://www.w3.org/ns/sosa/ObservingProcedure
                                        - http://www.w3.org/ns/sosa/ActuatingProcedure
                                        - http://www.w3.org/ns/sosa/SamplingProcedure
                                        - http://www.w3.org/ns/ssn-system/SystemKind
                                        - http://www.w3.org/ns/ssn-system/SensorKind
                                        - http://www.w3.org/ns/ssn-system/ActuatorKind
                                        - http://www.w3.org/ns/ssn-system/SamplerKind
                                        - http://www.w3.org/ns/ssn-system/PlatformKind
                                        - sosa:Procedure
                                        - sosa:ObservingProcedure
                                        - sosa:ActuatingProcedure
                                        - sosa:SamplingProcedure
                                        - ssn:SystemKind
                                        - ssn:SensorKind
                                        - ssn:ActuatorKind
                                        - ssn:SamplerKind
                                        - ssn:PlatformKind
                      links:
                        description: Links to related resources (including paging)
                        $schema: http://json-schema.org/draft-07/schema#
                        title: Link Collection
                        type: array
                        minItems: 1
                        items: *ref_103
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                type: object
                properties: &ref_275
                  items:
                    $schema: http://json-schema.org/draft-07/schema#
                    type: array
                    items: &ref_274
                      title: Procedure Feature
                      $schema: http://json-schema.org/draft-07/schema#
                      allOf: &ref_155
                        - oneOf:
                            - $schema: http://json-schema.org/draft-07/schema#
                              type: object
                              allOf: *ref_80
                              definitions: *ref_81
                            - $schema: http://json-schema.org/draft-07/schema#
                              type: object
                              allOf: *ref_82
                              definitions: *ref_99
                            - $schema: http://json-schema.org/draft-07/schema#
                              type: object
                              allOf: *ref_100
                            - $schema: http://json-schema.org/draft-07/schema#
                              type: object
                              allOf: *ref_101
                        - properties:
                            definition:
                              type: string
                              enum: *ref_153
                            position:
                              not: {}
                            links:
                              description: Links to related resources
                              $schema: http://json-schema.org/draft-07/schema#
                              title: Link Collection
                              type: array
                              minItems: 1
                              items: *ref_103
                          required:
                            - definition
                            - uniqueId
                  links:
                    description: Links to related resources (including paging)
                    $schema: http://json-schema.org/draft-07/schema#
                    title: Link Collection
                    type: array
                    minItems: 1
                    items: *ref_103
                required: &ref_276
                  - items
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    post:
      summary: Create a procedure
      description: |-
        Add a new `Procedure` resources.

        Note that it is possible to create multiple resources in a single batch request.
        In this case, several resource descriptions are provided in the content body inside a JSON array.
        On success, the server will send a `200` response with the list of URIs of all created resources,
        in the same order as the array in the request.
      tags:
        - Procedures
      requestBody:
        required: true
        content: &ref_163
          application/geo+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              allOf: *ref_154
            examples:
              sensor:
                summary: Sensor Datasheet
                value:
                  type: Feature
                  id: iv3f2kcq27gfi
                  geometry: null
                  properties: &ref_156
                    uid: urn:x-gill:datasheets:windmaster:v1
                    name: Gill WindMaster
                    description: Precision 3-axis ultrasonic anemometer
                    featureType: http://www.w3.org/ns/ssn-system/SensorKind
                  links: &ref_157
                    - href: https://data.example.org/api/procedures/iv3f2kcq27gfi?f=json
                      rel: self
                      type: application/geo+json
                      title: this document
                    - href: https://data.example.org/api/procedures/iv3f2kcq27gfi?f=sml
                      rel: alternate
                      type: application/sml+json
                      title: this resource as SensorML
          application/sml+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              allOf: *ref_155
            examples:
              sensor:
                summary: Sensor Datasheet
                value:
                  type: PhysicalComponent
                  id: iv3f2kcq27gfi
                  definition: http://www.w3.org/ns/ssn-system/SensorKind
                  uniqueId: urn:osh:sensors:saildrone:S0004
                  label: 3D Ultrasonic Anemometer
                  description: Precision 3-axis ultrasonic anemometer
                  identifiers: &ref_158
                    - definition: http://sensorml.com/ont/swe/property/Manufacturer
                      label: Manufacturer Name
                      value: Gill
                    - definition: http://sensorml.com/ont/swe/property/ModelNumber
                      label: Model Number
                      value: WindMaster
                  classifiers: &ref_159
                    - definition: http://sensorml.com/ont/swe/property/SensorType
                      label: Sensor Type
                      value: Anemometer
                  capabilities: &ref_160
                    - definition: http://www.w3.org/ns/ssn/systems/SystemCapability
                      label: Speed Measurement Capabilities
                      capabilities:
                        - name: range
                          type: QuantityRange
                          definition: http://www.w3.org/ns/ssn/systems/MeasurementRange
                          label: Measurement Range
                          uom:
                            code: m/s
                          value:
                            - 0
                            - 50
                        - name: resolution
                          type: Quantity
                          definition: http://www.w3.org/ns/ssn/systems/Resolution
                          label: Resolution
                          uom:
                            code: m/s
                          value: 0.01
                        - name: accuracy
                          type: Quantity
                          definition: http://sensorml.com/ont/swe/property/RelativeAccuracy
                          label: Relative Accuracy
                          uom:
                            code: '%'
                          value: 1.5
                  links: &ref_161
                    - href: https://data.example.org/api/procedures/iv3f2kcq27gfi?f=sml
                      rel: self
                      type: application/sml+json
                      title: this document
                    - href: https://data.example.org/api/procedures/iv3f2kcq27gfi?f=json
                      rel: alternate
                      type: application/geo+json
                      title: this resource as GeoJSON
      responses:
        '201':
          description: Success. New resource created.
          headers: *ref_110
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /procedures/{procedureId}:
    get:
      summary: Get a procedure by ID
      tags:
        - Procedures
      parameters:
        - name: procedureId
          in: path
          description: Local identifier of a Procedure
          required: true
          schema: &ref_162
            type: string
            minLength: 1
      responses:
        '200':
          description: OK. Successful request
          content: &ref_306
            application/geo+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: *ref_154
              examples:
                sensor:
                  summary: Sensor Datasheet
                  value:
                    type: Feature
                    id: iv3f2kcq27gfi
                    geometry: null
                    properties: *ref_156
                    links: *ref_157
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: *ref_155
              examples:
                sensor:
                  summary: Sensor Datasheet
                  value:
                    type: PhysicalComponent
                    id: iv3f2kcq27gfi
                    definition: http://www.w3.org/ns/ssn-system/SensorKind
                    uniqueId: urn:osh:sensors:saildrone:S0004
                    label: 3D Ultrasonic Anemometer
                    description: Precision 3-axis ultrasonic anemometer
                    identifiers: *ref_158
                    classifiers: *ref_159
                    capabilities: *ref_160
                    links: *ref_161
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    put:
      summary: Update a procedure
      description: This will completely replace the existing description of the procedure with the provided content.
      tags:
        - Procedures
      parameters:
        - name: procedureId
          in: path
          description: Local identifier of a Procedure
          required: true
          schema: *ref_162
      requestBody:
        required: true
        content: *ref_163
      responses:
        '204':
          description: Success. Resource updated.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    delete:
      summary: Delete a procedure
      description: This will delete the procedure and remove it from all collections it is associated to.
      tags:
        - Procedures
      parameters:
        - name: procedureId
          in: path
          description: Local identifier of a Procedure
          required: true
          schema: *ref_162
      responses:
        '204':
          description: Success. Resource deleted.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        '409':
          description: The resource cannot be deleted because other resources depend on it.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /samplingFeatures:
    get:
      summary: List all sampling features
      description: List or search all `Sampling Feature` resources available from this server endpoint.
      tags:
        - Sampling Features
      parameters:
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: foi
          description: |-
            List of feature local IDs or unique IDs (URI).
            Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_126
          explode: false
        - name: observedProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to an observable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_127
          explode: false
        - name: controlledProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_128
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: &ref_171
            application/geo+json:
              schema:
                type: object
                required: features
                properties:
                  type:
                    type: string
                    const: FeatureCollection
                  features:
                    type: array
                    items:
                      $schema: http://json-schema.org/draft-07/schema#
                      oneOf: &ref_172
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: SamplingPoint
                          allOf: &ref_277
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: &ref_166
                                - $schema: http://json-schema.org/draft-07/schema#
                                  title: SamplingFeature
                                  allOf: &ref_167
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      allOf: *ref_105
                                    - type: object
                                      properties:
                                        properties:
                                          type: object
                                          required:
                                            - featureType
                                            - sampledFeature@link
                                          properties:
                                            validTime:
                                              $schema: http://json-schema.org/draft-07/schema#
                                              title: Time Period
                                              type: array
                                              minItems: 2
                                              maxItems: 2
                                              items: *ref_20
                                            sampledFeature@link:
                                              $schema: http://json-schema.org/draft-07/schema#
                                              title: Link
                                              description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
                                              type: object
                                              required: *ref_15
                                              properties: *ref_16
                                - anyOf:
                                    - type: object
                                      properties:
                                        geometry:
                                          type: object
                                    - type: object
                                      properties:
                                        properties:
                                          type: object
                                          required:
                                            - pose
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Point.json
                                      title: GeoJSON Point
                                      type: object
                                      required: *ref_164
                                      properties: *ref_165
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: SamplingCurve
                          allOf: &ref_280
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_166
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/LineString.json
                                      title: GeoJSON LineString
                                      type: object
                                      required: &ref_278
                                        - type
                                        - coordinates
                                      properties: &ref_279
                                        type:
                                          type: string
                                          enum:
                                            - LineString
                                        coordinates:
                                          type: array
                                          minItems: 2
                                          items:
                                            type: array
                                            minItems: 2
                                            items:
                                              type: number
                                        bbox:
                                          type: array
                                          minItems: 4
                                          items:
                                            type: number
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingCurve
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: SamplingSurface
                          allOf: &ref_283
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_166
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Polygon.json
                                      title: GeoJSON Polygon
                                      type: object
                                      required: &ref_281
                                        - type
                                        - coordinates
                                      properties: &ref_282
                                        type:
                                          type: string
                                          enum:
                                            - Polygon
                                        coordinates:
                                          type: array
                                          items:
                                            type: array
                                            minItems: 4
                                            items:
                                              type: array
                                              minItems: 2
                                              items:
                                                type: number
                                        bbox:
                                          type: array
                                          minItems: 4
                                          items:
                                            type: number
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingSurface
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: SamplingSolid
                          allOf: &ref_284
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_166
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Point.json
                                      title: GeoJSON Point
                                      type: object
                                      required: *ref_164
                                      properties: *ref_165
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingSolid
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: Specimen
                          allOf: &ref_285
                            - $schema: http://json-schema.org/draft-07/schema#
                              title: SamplingFeature
                              allOf: *ref_167
                            - type: object
                              properties:
                                properties:
                                  type: object
                                  required:
                                    - samplingTime
                                    - materialClass
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_Specimen
                                    samplingTime:
                                      $schema: http://json-schema.org/draft-07/schema#
                                      title: Time Instant
                                      type: string
                                      format: date-time
                                    materialClass:
                                      type: string
                                      format: uri
                                    specimenType:
                                      type: string
                                      format: uri
                                    size:
                                      type: number
                                    samplingMethod@link:
                                      $schema: http://json-schema.org/draft-07/schema#
                                      title: Link
                                      description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
                                      type: object
                                      required: *ref_15
                                      properties: *ref_16
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: SamplingPart
                          allOf: &ref_286
                            - $schema: http://json-schema.org/draft-07/schema#
                              title: SamplingFeature
                              allOf: *ref_167
                            - type: object
                              properties:
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      enum:
                                        - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/FeaturePart
                                    partID:
                                      description: ID of the feature part of interest
                                      type: string
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: FeatureProxy
                          allOf: &ref_287
                            - $schema: http://json-schema.org/draft-07/schema#
                              title: SamplingFeature
                              allOf: *ref_167
                            - type: object
                              properties:
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      enum:
                                        - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/FeatureProxy
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: SamplingPoint XYZ
                          allOf: &ref_288
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: &ref_170
                                - $schema: http://json-schema.org/draft-07/schema#
                                  allOf: *ref_166
                                - type: object
                                  properties:
                                    properties:
                                      type: object
                                      properties:
                                        pose:
                                          description: Pose relative to LTP frame or other local reference frame. If a point geometry is provided, the pose LTP frame is considered to be located at the point location
                                          $schema: http://json-schema.org/draft-07/schema#
                                          oneOf: *ref_168
                                          definitions: *ref_169
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Point.json
                                      title: GeoJSON Point
                                      type: object
                                      required: *ref_164
                                      properties: *ref_165
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SamplingPointXYZ
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: Sampling Sphere
                          allOf: &ref_289
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_170
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Point.json
                                      title: GeoJSON Point
                                      type: object
                                      required: *ref_164
                                      properties: *ref_165
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SamplingSphere
                                    radius:
                                      description: Sphere radius in meters
                                      type: number
                                  required:
                                    - radius
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: SamplingProfile
                          allOf: &ref_290
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_170
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Point.json
                                      title: GeoJSON Point
                                      type: object
                                      required: *ref_164
                                      properties: *ref_165
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SamplingProfile
                                    profileAxis:
                                      description: Axis along which the profile bins are located, in the local frame defined by the pose information (the axis is pointing in the direction of increasing range)
                                      type: string
                                      enum:
                                        - X
                                        - 'Y'
                                        - Z
                                        - '-X'
                                        - '-Y'
                                        - '-Z'
                                    binDistances:
                                      description: Distances of bins along the profile, in meters
                                      type: array
                                      minItems: 2
                                      items:
                                        type: number
                                    numBins:
                                      description: Total number of bins
                                      type: number
                                    startDistance:
                                      description: Distance to first bin, in meters
                                      type: number
                                    stepDistance:
                                      description: Distance between bins, in meters
                                      type: number
                                    spreadAngle:
                                      description: Beam spread angle, in degrees (defaults to 0)
                                      type: number
                                  required:
                                    - profileAxis
                                  oneOf:
                                    - required:
                                        - binDistances
                                    - required:
                                        - numBins
                                        - startDistance
                                        - stepDistance
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: Viewing Frustum
                          allOf: &ref_291
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_170
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Point.json
                                      title: GeoJSON Point
                                      type: object
                                      required: *ref_164
                                      properties: *ref_165
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/ViewingFrustum
                                    frustumAxis:
                                      description: Longitudinal axis of the frustum, expressed in the inner frame defined by the pose information (the axis is pointing from the frustum apex toward its base)
                                      type: string
                                      enum:
                                        - X
                                        - 'Y'
                                        - Z
                                        - '-X'
                                        - '-Y'
                                        - '-Z'
                                    upAxis:
                                      description: Lateral axis of the frustum, pointing in the image up direction, expressed in the inner frame defined by the pose information
                                      type: string
                                      enum:
                                        - X
                                        - 'Y'
                                        - Z
                                        - '-X'
                                        - '-Y'
                                        - '-Z'
                                    fov:
                                      description: Field of view, in degrees. If the aspect ratio is also provided, this is the horizontal field of view of a pyramidal frustum, otherwise the frustum is conical
                                      type: number
                                    aspectRatio:
                                      description: Aspect ratio of the frustum base rectangle, that is the ratio of its width to its height (unitless)
                                      type: number
                                    length:
                                      description: Length of the frustum, in meters
                                      type: number
                                  required:
                                    - frustumAxis
                                    - upAxis
                                    - fov
                        - $schema: http://json-schema.org/draft-07/schema#
                          title: Spherical Sector
                          allOf: &ref_292
                            - $schema: http://json-schema.org/draft-07/schema#
                              allOf: *ref_170
                            - type: object
                              properties:
                                geometry:
                                  oneOf:
                                    - $schema: http://json-schema.org/draft-07/schema#
                                      $id: https://geojson.org/schema/Point.json
                                      title: GeoJSON Point
                                      type: object
                                      required: *ref_164
                                      properties: *ref_165
                                    - type: 'null'
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      const: http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SphericalSector
                                    radius:
                                      description: Radius of the spherical sector, in meters
                                      type: number
                                    innerRadius:
                                      description: Inner radius of the spherical sector, in meters (defaults 0)
                                      type: number
                                    minAzim:
                                      description: Start azimuth of the spherical sector, in degrees (defaults to 0)
                                      type: number
                                    maxAzim:
                                      description: End azimuth of the spherical sector, in degrees (defaults to 360)
                                      type: number
                                    minElev:
                                      description: Start elevation of the spherical sector, in degrees (defaults to -90)
                                      type: number
                                    maxElev:
                                      description: End elevation of the spherical sector, in degrees (defaults to 90)
                                      type: number
                                  required:
                                    - radius
                                    - minAzim
                                    - maxAzim
                                    - minElev
                                    - maxElev
                        - $comment: or something else but it must have another URI
                          allOf:
                            - $schema: http://json-schema.org/draft-07/schema#
                              title: SamplingFeature
                              allOf: *ref_167
                            - type: object
                              properties:
                                properties:
                                  type: object
                                  properties:
                                    featureType:
                                      type: string
                                      not:
                                        enum:
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingCurve
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingSurface
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingSolid
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_Specimen
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/FeaturePart
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/FeatureProxy
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SamplingPointXYZ
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SamplingSphere
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SamplingProfile
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/ViewingFrustum
                                          - http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/SphericalSector
                  links:
                    type: array
                    items:
                      $schema: http://json-schema.org/draft-07/schema#
                      title: Link
                      description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
                      type: object
                      required: *ref_15
                      properties: *ref_16
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /systems/{systemId}/samplingFeatures:
    get:
      summary: List sampling features attached to a specific system
      description: List or search all `Sampling Feature` resources associated to a specific system.
      tags:
        - Systems
        - Sampling Features
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: *ref_122
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: bbox
          in: query
          description: |-
            The bounding box is provided as four or six numbers, depending on whether the
            coordinate reference system includes a vertical axis (height or depth).

            Only features that have a geometry that intersects the bounding box are selected.

            The order of coordinates is as follow:

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84 
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in the parameter `bbox-crs`.

            The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
            Reference Systems by Reference.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are the
            bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          required: false
          schema: *ref_5
          style: form
          explode: false
          examples: *ref_6
        - name: datetime
          in: query
          description: |-
            Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
            Intervals may be bounded or half-bounded (double-dots at start or end).

            Only features that have a `validTime` property that intersects the value of
            `datetime` are selected.

            If history is supported for a feature type, the following also applies:
            - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
            - if `datetime` is a time period, only the latest description valid during the period is selected
            - The response can never include more that one description of the same feature
          required: false
          schema: *ref_7
          style: form
          explode: false
          examples: *ref_8
        - name: geom
          in: query
          description: |-
            WKT geometry and operator to filter resources on their location or geometry.
            Only features that have a geometry that intersects the value of `geom` are selected.
          required: false
          schema: *ref_9
          examples: *ref_10
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: foi
          description: |-
            List of feature local IDs or unique IDs (URI).
            Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_126
          explode: false
        - name: observedProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to an observable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_127
          explode: false
        - name: controlledProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_128
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: *ref_171
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    post:
      summary: Create a Sampling Feature
      description: Add a new `Sampling Feature` resource. Sampling features are always created inside, and thus attached to a parent system.
      tags:
        - Sampling Features
      parameters:
        - name: systemId
          in: path
          description: Local identifier of a System
          required: true
          schema: *ref_122
      requestBody:
        required: true
        content: &ref_181
          application/geo+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              oneOf: *ref_172
            examples:
              sf-point:
                summary: Sampling Point
                value:
                  type: Feature
                  id: SP001
                  geometry: &ref_173
                    type: Point
                    coordinates:
                      - 12.31
                      - -86.98
                      - -21
                  properties: &ref_174
                    uid: urn:x-usgs:sites:301244087575701:sf:bottom
                    name: 'Bottom of Well - USGS Site #301244087575701'
                    description: Sampling point is 2-4 inches above the bottom of the well
                    featureType: http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_SamplingPoint
                    sampledFeature@link:
                      href: https://api.usgs.gov/collections/hydrological_features/items/112TRRC?f=json
                      type: application/geo+json
                      title: Aquifer 112TRRC
              specimen:
                summary: Specimen
                value:
                  type: Feature
                  id: f6b464cf
                  geometry: &ref_175
                    type: Point
                    coordinates:
                      - 30.706
                      - -134.196
                      - 272
                  properties: &ref_176
                    uid: urn:x-csiro:samples:1114457888
                    name: Rock Sample CSIRO:1114457888
                    description: Rock sample collected on traverse
                    featureType: http://www.opengis.net/def/samplingFeatureType/OGC-OM/2.0/SF_Specimen
                    samplingTime: '2007-01-24T12:14:50Z'
                    materialClass: http://dbpedia.org/resource/Rock_(geology)
                    sampledFeature@link:
                      href: https://api.usgs.gov/collections/geological_features/items/1458955?f=json
                      type: application/geo+json
                      title: Geological Unit 235
                  links: &ref_177
                    - rel: parentSystem
                      href: https://data.example.org/api/systems/2ad45f69?f=json
                      type: application/geo+json
                      title: 'Field Technician #123 (Rock Sampler)'
              part:
                summary: Feature Part
                value:
                  type: Feature
                  id: 1a0f80f9
                  geometry: null
                  properties: &ref_178
                    uid: urn:x-ogc:sf:456
                    name: CPU 2
                    description: CPU 2 located in the robot chassis
                    featureType: http://www.opengis.net/def/samplingFeatureType/OGC-SML/2.0/FeaturePart
                    sampledFeature@link:
                      href: https://data.example.org/api/systems/8624d054?f=json
                      type: application/geo+json
                      title: Tactical Ground Robot 457
                  links: &ref_179
                    - rel: parentSystem
                      href: https://data.example.org/api/systems/447845?f=json
                      type: application/geo+json
                      title: Water Level Sensor
      responses:
        '201':
          description: Success. New resource created.
          headers: *ref_110
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /samplingFeatures/{featureId}:
    get:
      summary: Get a sampling feature by ID
      tags:
        - Sampling Features
      parameters:
        - name: featureId
          in: path
          description: Local identifier of a Feature
          required: true
          schema: &ref_180
            type: string
            minLength: 1
      responses:
        '200':
          description: OK. Successful request
          content: &ref_307
            application/geo+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                oneOf: *ref_172
              examples:
                sf-point:
                  summary: Sampling Point
                  value:
                    type: Feature
                    id: SP001
                    geometry: *ref_173
                    properties: *ref_174
                specimen:
                  summary: Specimen
                  value:
                    type: Feature
                    id: f6b464cf
                    geometry: *ref_175
                    properties: *ref_176
                    links: *ref_177
                part:
                  summary: Feature Part
                  value:
                    type: Feature
                    id: 1a0f80f9
                    geometry: null
                    properties: *ref_178
                    links: *ref_179
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    put:
      summary: Update a sampling feature
      description: This will completely replace the existing description of the sampling feature with the provided content.
      tags:
        - Sampling Features
      parameters:
        - name: featureId
          in: path
          description: Local identifier of a Feature
          required: true
          schema: *ref_180
      requestBody:
        required: true
        content: *ref_181
      responses:
        '204':
          description: Success. Resource updated.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    delete:
      summary: Delete a sampling feature
      description: This will delete the sampling feature and remove it from all collections it is associated to.
      tags:
        - Sampling Features
      parameters:
        - name: featureId
          in: path
          description: Local identifier of a Feature
          required: true
          schema: *ref_180
      responses:
        '204':
          description: Success. Resource deleted.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        '409':
          description: The resource cannot be deleted because other resources depend on it.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /properties:
    get:
      summary: List all property definitions
      description: List or search all `Property` resources available from this server endpoint.
      tags:
        - Properties
      parameters:
        - name: id
          description: |-
            List of resource local IDs or unique IDs (URI).
            Only resources that have one of the provided identifiers are selected.
          in: query
          required: false
          schema: *ref_107
          explode: false
          examples: *ref_108
        - name: q
          in: query
          description: |-
            Comma separated list of keywords used for full-text search.
            Only resources that have textual fields that contain one of the specified keywords are selected.
            The resource `name` and `description` properties are always searched.
            It is up to the server to decide which other textual fields are searched.
          required: false
          schema: *ref_11
          explode: false
          examples: *ref_12
        - name: baseProperty
          description: |-
            List of property local IDs or unique IDs (URI).
            Only properties that are derived from the specified base properties are selected.
          in: query
          required: false
          schema: &ref_311
            description: List of resource local IDs or unique identifiers (URIs).
            oneOf: *ref_109
          explode: false
        - name: objectType
          description: |-
            List of object type URIs.
            Only properties that are of one of the specified object types are selected.
          in: query
          required: false
          schema: &ref_312
            type: array
            minItems: 1
            items:
              type: string
              format: uri
          explode: false
        - name: limit
          in: query
          description: |-
            This parameter limits the number of items that are presented in the response document.

            Only items that are on the first level of the collection in the response document are counted.
            Nested objects contained within the explicitly requested items shall not be counted.
          required: false
          schema: *ref_13
          style: form
          explode: false
      responses:
        '200':
          description: OK. Successful request
          content: &ref_308
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                type: object
                properties: &ref_295
                  items:
                    $schema: http://json-schema.org/draft-07/schema#
                    type: array
                    items: &ref_294
                      title: Property Resource
                      $schema: http://json-schema.org/draft-07/schema#
                      allOf: &ref_182
                        - $schema: http://json-schema.org/draft-07/schema#
                          type: object
                          allOf: &ref_293
                            - $schema: http://json-schema.org/draft-07/schema#
                              description: Base substitution groups for all SWE Common objects with identification metadata
                              type: object
                              allOf: *ref_22
                            - properties:
                                uniqueId:
                                  description: Unique identifier of the property
                                  type: string
                                  format: uri
                                  example: urn:example:property:avg-cpu-temp
                                label:
                                  example: Average CPU Temp
                                description:
                                  example: Hourly average of the CPU temperature
                                baseProperty:
                                  description: URI pointing to the definition of the base property this property is derived from
                                  type: string
                                  format: uri
                                  example: https://qudt.org/vocab/quantitykind/Temperature
                                objectType:
                                  description: URI pointing to the type of entity that the base property applies to
                                  type: string
                                  format: uri
                                  example: http://dbpedia.org/resource/Central_processing_unit
                                statistic:
                                  description: URI pointing to the definition of the statistic applied to the base property values
                                  type: string
                                  format: uri
                                  example: http://sensorml.com/ont/x-stats/HourlyMean
                                qualifiers:
                                  description: Additional qualifiers for the property (e.g. frequency range, measurement height, medium, etc.)
                                  type: array
                                  minItems: 1
                                  items:
                                    oneOf: *ref_40
                              required:
                                - label
                                - baseProperty
                        - properties:
                            links:
                              description: Links to related resources
                              $schema: http://json-schema.org/draft-07/schema#
                              title: Link Collection
                              type: array
                              minItems: 1
                              items: *ref_103
                          required:
                            - uniqueId
                  links:
                    description: Links to related resources (including paging)
                    $schema: http://json-schema.org/draft-07/schema#
                    title: Link Collection
                    type: array
                    minItems: 1
                    items: *ref_103
                required: &ref_296
                  - items
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    post:
      summary: Create a property
      description: Add a new `Property` resource.
      tags:
        - Properties
      requestBody:
        required: true
        content: &ref_185
          application/sml+json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              allOf: *ref_182
            examples:
              enginetemp:
                summary: Engine Temperature
                value:
                  id: EngineTemp
                  label: Engine Temp
                  description: Temperature of the engine oil, measured at the bottom of the engine block
                  baseProperty: http://qudt.org/vocab/quantitykind/Temperature
                  objectType: http://dbpedia.org/resource/Engine
              cputemp:
                summary: Average CPU Temperature
                value:
                  id: AverageCpuTemp
                  label: Average CPU Temp
                  description: Hourly average of the CPU temperature
                  baseProperty: http://qudt.org/vocab/quantitykind/Temperature
                  objectType: http://dbpedia.org/resource/Central_processing_unit
                  statistic: http://sensorml.com/ont/x-stats/HourlyMean
              rfpower:
                summary: Received Band-X RF Power
                value:
                  id: RFPower_Received_620-720
                  baseProperty: http://qudt.org/vocab/quantitykind/RF-Power
                  label: Received RF Power
                  description: RF Power received in band 620-720 MHz
                  qualifiers: &ref_183
                    - type: QuantityRange
                      definition: http://qudt.org/vocab/quantitykind/Frequency
                      label: Frequency Range
                      uom:
                        code: MHz
                      value:
                        - 620
                        - 720
      responses:
        '201':
          description: Success. New resource created.
          headers: *ref_110
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
  /properties/{propId}:
    get:
      summary: Get a property by ID
      tags:
        - Properties
      parameters:
        - name: propId
          in: path
          description: Local identifier of a Property
          required: true
          schema: &ref_184
            type: string
            minLength: 1
      responses:
        '200':
          description: OK. Successful request
          content: &ref_309
            application/sml+json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                allOf: *ref_182
              examples:
                enginetemp:
                  summary: Engine Temperature
                  value:
                    id: EngineTemp
                    label: Engine Temp
                    description: Temperature of the engine oil, measured at the bottom of the engine block
                    baseProperty: http://qudt.org/vocab/quantitykind/Temperature
                    objectType: http://dbpedia.org/resource/Engine
                cputemp:
                  summary: Average CPU Temperature
                  value:
                    id: AverageCpuTemp
                    label: Average CPU Temp
                    description: Hourly average of the CPU temperature
                    baseProperty: http://qudt.org/vocab/quantitykind/Temperature
                    objectType: http://dbpedia.org/resource/Central_processing_unit
                    statistic: http://sensorml.com/ont/x-stats/HourlyMean
                rfpower:
                  summary: Received Band-X RF Power
                  value:
                    id: RFPower_Received_620-720
                    baseProperty: http://qudt.org/vocab/quantitykind/RF-Power
                    label: Received RF Power
                    description: RF Power received in band 620-720 MHz
                    qualifiers: *ref_183
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    put:
      summary: Update a property
      description: This will completely replace the existing definition of the property with the provided content.
      tags:
        - Properties
      parameters:
        - name: propId
          in: path
          description: Local identifier of a Property
          required: true
          schema: *ref_184
      requestBody:
        required: true
        content: *ref_185
      responses:
        '204':
          description: Success. Resource updated.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
    delete:
      summary: Delete a property
      description: This will delete the property and remove it from all collections it is associated to.
      tags:
        - Properties
      parameters:
        - name: propId
          in: path
          description: Local identifier of a Property
          required: true
          schema: *ref_184
      responses:
        '204':
          description: Success. Resource deleted.
        '400':
          description: Bad request. Either the query parameters or the content body are invalid.
        '401':
          description: No authentication information was provided.
        '403':
          description: The user doesn't have the necessary permissions to access the resource.
        '404':
          description: No resource was found with the specified URL.
        '409':
          description: The resource cannot be deleted because other resources depend on it.
        5XX:
          description: Unexpected server error. Only retry on 502 and 503.
components:
  schemas:
    link:
      type: object
      required: *ref_0
      properties: *ref_1
    landingPage:
      type: object
      required: *ref_186
      properties: *ref_187
    confClasses:
      type: object
      required: *ref_188
      properties: *ref_189
    datetimeSchema:
      oneOf: *ref_190
    extent:
      description: |-
        The extent of the features in the collection. In the Core only spatial and temporal
        extents are specified. Extensions may add additional members to represent other
        extents, for example, thermal or pressure ranges.

        An array of extents is provided for each extent type (spatial, temporal). The first item
        in the array describes the overall extent of the data. All subsequent items describe more
        precise extents, e.g., to identify clusters of data. Clients only interested in the
        overall extent will only need to access the first extent in the array.
      type: object
      properties: *ref_191
    collection_schema:
      type: object
      required: *ref_2
      properties: *ref_3
    idListSchema:
      description: List of resource local IDs or unique identifiers (URIs).
      oneOf: *ref_109
    pointGeoJSON:
      type: object
      required: *ref_192
      properties: *ref_193
    multipointGeoJSON:
      type: object
      required: *ref_194
      properties: *ref_195
    linestringGeoJSON:
      type: object
      required: *ref_196
      properties: *ref_197
    multilinestringGeoJSON:
      type: object
      required: *ref_198
      properties: *ref_199
    polygonGeoJSON:
      type: object
      required: *ref_200
      properties: *ref_201
    multipolygonGeoJSON:
      type: object
      required: *ref_202
      properties: *ref_203
    geometryGeoJSON:
      oneOf: *ref_14
    geometrycollectionGeoJSON:
      type: object
      required: *ref_204
      properties: *ref_205
    featureGeoJSON:
      type: object
      required: *ref_206
      properties: *ref_207
    featureCollectionGeoJSON:
      type: object
      required: *ref_208
      properties: *ref_209
    Feature:
      $schema: http://json-schema.org/draft-07/schema#
      $id: https://geojson.org/schema/Feature.json
      title: GeoJSON Feature
      type: object
      required: *ref_210
      properties: *ref_211
    link-2:
      $schema: http://json-schema.org/draft-07/schema#
      title: Link
      description: Link object following standard Web Linking conventions (see RFC5988 and RFC6690)
      type: object
      required: *ref_15
      properties: *ref_16
    links:
      $schema: http://json-schema.org/draft-07/schema#
      title: Link Collection
      type: array
      minItems: 1
      items: *ref_103
    feature:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_105
    SystemTypeUris:
      type: string
      enum: *ref_102
    timeInstant:
      $schema: http://json-schema.org/draft-07/schema#
      title: Time Instant
      type: string
      format: date-time
    timeInstantOrNow:
      $schema: http://json-schema.org/draft-07/schema#
      title: Time Instant
      oneOf: *ref_212
    timePeriod:
      $schema: http://json-schema.org/draft-07/schema#
      title: Time Period
      type: array
      minItems: 2
      maxItems: 2
      items: *ref_20
    system:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_17
    NameToken:
      type: string
      minLength: 1
      pattern: ^[A-Za-z][A-Za-z0-9_\-]*$
    SoftNamedProperty:
      type: object
      properties: *ref_46
      required: *ref_47
    AbstractSWE:
      $schema: http://json-schema.org/draft-07/schema#
      description: Base substitution groups for all SWE Common objects other than value objects
      type: object
      properties: *ref_52
    AbstractSweIdentifiable:
      $schema: http://json-schema.org/draft-07/schema#
      description: Base substitution groups for all SWE Common objects with identification metadata
      type: object
      allOf: *ref_22
    AbstractDataComponent:
      $schema: http://json-schema.org/draft-07/schema#
      description: Abstract base class for all data components
      type: object
      allOf: *ref_41
    AssociationAttributeGroup:
      type: object
      properties: *ref_44
      required: *ref_45
    AbstractSimpleComponent:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_23
    UnitReference:
      type: object
      properties: *ref_25
      oneOf: *ref_26
      unevaluatedProperties: false
    NumberOrSpecial:
      oneOf: *ref_24
    AllowedValues:
      description: Defines the permitted values for the component as an enumerated list and/or a list of inclusive ranges
      type: object
      properties: *ref_27
      anyOf: *ref_28
    NilValuesNumber:
      type: array
      minItems: 1
      items: *ref_29
    Quantity:
      $schema: http://json-schema.org/draft-07/schema#
      description: Scalar component with decimal representation and a unit of measure used to store value of a continuous quantity
      type: object
      allOf: *ref_32
    QuantityRange:
      $schema: http://json-schema.org/draft-07/schema#
      description: Decimal pair for specifying a quantity range with a unit of measure
      type: object
      allOf: *ref_36
    AllowedTokens:
      description: Defines permitted values for the component, as an enumerated list of tokens or a regular expression pattern
      type: object
      oneOf: *ref_30
    NilValuesText:
      type: array
      minItems: 1
      items: *ref_31
    Category:
      $schema: http://json-schema.org/draft-07/schema#
      description: Scalar component used to represent a categorical value as a simple token identifying a term in a code space
      type: object
      allOf: *ref_34
    Text:
      $schema: http://json-schema.org/draft-07/schema#
      description: Free text component used to store comments or any other type of textual statement
      type: object
      allOf: *ref_35
    Boolean:
      $schema: http://json-schema.org/draft-07/schema#
      description: 'Scalar component used to express truth: True or False, 0 or 1'
      type: object
      allOf: *ref_213
    NilValuesInteger:
      type: array
      minItems: 1
      items: *ref_214
    Count:
      $schema: http://json-schema.org/draft-07/schema#
      description: Scalar component with integer representation used for a discrete counting value
      type: object
      allOf: *ref_42
    DateTimeNumberOrSpecial:
      oneOf: *ref_33
    AllowedTimes:
      description: Defines the permitted values for the component, as a time range or an enumerated list of time values
      type: object
      properties: *ref_37
      anyOf: *ref_38
    NilValuesTime:
      type: array
      minItems: 1
      items: *ref_39
    Time:
      $schema: http://json-schema.org/draft-07/schema#
      description: Scalar component used to represent a time quantity either as ISO 8601 (e.g. 2004-04-18T12:03:04.6Z) or as a duration relative to a time of reference
      type: object
      allOf: *ref_43
    AnyScalarComponent:
      oneOf: *ref_215
    CountRange:
      $schema: http://json-schema.org/draft-07/schema#
      description: Integer pair used for specifying a count range
      type: object
      allOf: *ref_216
    TimeRange:
      $schema: http://json-schema.org/draft-07/schema#
      description: Time value pair for specifying a time range (can be a decimal or ISO 8601)
      type: object
      allOf: *ref_217
    CategoryRange:
      $schema: http://json-schema.org/draft-07/schema#
      description: Pair of categorical values used to specify a range in an ordinal reference system (specified by the code space)
      type: object
      allOf: *ref_218
    AnySimpleComponent:
      oneOf: *ref_40
    AnyComponent:
      oneOf: *ref_48
    DataRecord:
      $schema: http://json-schema.org/draft-07/schema#
      description: Implementation of ISO-11404 Record datatype. This allows grouping (sequence) of data components which can themselves be simple types, records, arrays or choices
      type: object
      allOf: *ref_92
    Vector:
      $schema: http://json-schema.org/draft-07/schema#
      description: Implementation of a mathematical vector composed of a list of scalar coordinates expressed in the mandatory reference frame.
      type: object
      allOf: *ref_49
    ElementCount:
      type: object
      allOf: *ref_219
    AbstractEncoding:
      type: object
      allOf: *ref_53
    Component:
      description: Binary encoding parameters used for encoding a single data component
      type: object
      allOf: *ref_220
    Block:
      description: Binary encoding parameters used to encode a block of values at once. This is used for encrypting or compressing a complete array of values for instance
      type: object
      allOf: *ref_221
    BinaryEncoding:
      description: Parameters of the binary encoding method
      type: object
      allOf: *ref_222
    TextEncoding:
      description: Parameters of the text encoding method
      type: object
      allOf: *ref_223
    XMLEncoding:
      description: Parameters of the XML encoding method
      type: object
      allOf: *ref_224
    JSONEncoding:
      description: Parameters of the JSON encoding method
      type: object
      allOf: *ref_225
    EncodedValues:
      oneOf: *ref_226
    AbstractArray: *ref_227
    DataArray:
      $schema: http://json-schema.org/draft-07/schema#
      description: Implementation of ISO-11404 Array datatype. This defines an array of identical data components with a elementCount. Values are given as a block and can be encoded in different ways
      allOf: *ref_50
      definitions: *ref_54
    Matrix:
      $schema: http://json-schema.org/draft-07/schema#
      description: Implementation of ISO-11404 Array datatype. This defines an array of identical data components with a elementCount. Values are given as a block and can be encoded in different ways
      type: object
      allOf: *ref_55
    DataChoice:
      $schema: http://json-schema.org/draft-07/schema#
      description: Implementation of a choice of two or more Data Components (also called disjoint union)
      type: object
      allOf: *ref_228
    Geometry:
      $schema: http://json-schema.org/draft-07/schema#
      $id: https://geojson.org/schema/Geometry.json
      title: GeoJSON Geometry
      oneOf: *ref_133
    Geometry-2:
      $schema: http://json-schema.org/draft-07/schema#
      title: Geometry
      description: Implementation of ISO-19107 geometry datatype. This allows embedding a geometry in a larger schema
      type: object
      allOf: *ref_229
    ObservableProperty:
      description: A physical property that can be observed and possibly measured (e.g. temperature, color, position). An ObservableProperty has unambiguous definition, but does not have units of measure.
      type: object
      allOf: *ref_230
    IOComponentChoice: *ref_231
    AnyProperty:
      oneOf: *ref_56
    AbstractFeature:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_232
      required: *ref_233
    Term:
      type: object
      properties: *ref_18
      required: *ref_19
      unevaluatedProperties: false
    CodeListValue: *ref_234
    LegalConstraint:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_235
      definitions: *ref_236
    CharacteristicList: *ref_237
    CapabilityList: *ref_238
    Phone: *ref_239
    Address: *ref_240
    Contact: *ref_241
    ResponsibleParty:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_60
      unevaluatedProperties: false
      required: *ref_61
      oneOf: *ref_62
      definitions: *ref_63
    ContactLink:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_242
      unevaluatedProperties: false
      required: *ref_243
    Document:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_64
      unevaluatedProperties: false
      required: *ref_65
    TimeInstantOrPeriod:
      oneOf: *ref_244
    PathRef:
      type: string
      pattern: ^(components|inputs|outputs|parameters|modes)/([A-Za-z][A-Za-z0-9_\-]*/)*[A-Za-z][A-Za-z0-9_\-]*$
    AnyConstraint:
      oneOf: *ref_245
    Settings:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_68
    Event:
      $schema: http://json-schema.org/draft-07/schema#
      description: A time tagged event with description and relevant property values.
      type: object
      allOf: *ref_246
    DescribedObject:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_70
      definitions: *ref_71
    Mode:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_76
    FeatureList: *ref_247
    InputList: *ref_248
    OutputList: *ref_249
    ParameterList: *ref_250
    AbstractProcess:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_78
      definitions: *ref_79
    ProcessMethod: *ref_251
    SimpleProcess:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_80
      definitions: *ref_81
    AggregateProcess:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_82
      definitions: *ref_99
    Point:
      $schema: http://json-schema.org/draft-07/schema#
      $id: https://geojson.org/schema/Point.json
      title: GeoJSON Point
      type: object
      required: *ref_164
      properties: *ref_165
    PositionGeo: *ref_252
    AnglesYPR: *ref_253
    Quaternion: *ref_254
    PositionXYZ: *ref_255
    Pose:
      $schema: http://json-schema.org/draft-07/schema#
      description: A Pose object that can be either a GeoPose Basic instance of a relative pose.
      oneOf: *ref_168
      definitions: *ref_169
    SpatialFrame: *ref_256
    TemporalFrame: *ref_257
    Position: *ref_258
    AbstractPhysicalProcess:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_96
      definitions: *ref_97
    PhysicalComponent:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_100
    ComponentList: *ref_259
    ConnectionList: *ref_260
    PhysicalSystem:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_101
    system-2:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_104
    FeatureCollection:
      $schema: http://json-schema.org/draft-07/schema#
      $id: https://geojson.org/schema/FeatureCollection.json
      title: GeoJSON FeatureCollection
      type: object
      required: *ref_131
      properties: *ref_132
    systemArray:
      $schema: http://json-schema.org/draft-07/schema#
      type: array
      items: *ref_261
    systemCollection:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_262
    systemArray-2:
      $schema: http://json-schema.org/draft-07/schema#
      type: array
      items: *ref_263
    systemCollection-2:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_264
      required: *ref_265
    DeploymentTypeUris:
      type: string
      enum: *ref_136
    deployment:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_137
    deploymentArray:
      $schema: http://json-schema.org/draft-07/schema#
      type: array
      items: *ref_266
    deploymentCollection:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_267
    DeployedSystem:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_134
      required: *ref_135
    Deployment:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_268
    deployment-2:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_138
    deploymentArray-2:
      $schema: http://json-schema.org/draft-07/schema#
      type: array
      items: *ref_269
    deploymentCollection-2:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_270
      required: *ref_271
    ProcedureTypeUris:
      type: string
      enum: *ref_153
    procedure:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_154
    procedureArray:
      $schema: http://json-schema.org/draft-07/schema#
      type: array
      items: *ref_272
    procedureCollection:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_273
    procedure-2:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_155
    procedureArray-2:
      $schema: http://json-schema.org/draft-07/schema#
      type: array
      items: *ref_274
    procedureCollection-2:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_275
      required: *ref_276
    samplingFeature:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingFeature
      allOf: *ref_167
    samplingSpatial:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_166
    samplingPoint:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingPoint
      allOf: *ref_277
    LineString:
      $schema: http://json-schema.org/draft-07/schema#
      $id: https://geojson.org/schema/LineString.json
      title: GeoJSON LineString
      type: object
      required: *ref_278
      properties: *ref_279
    samplingCurve:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingCurve
      allOf: *ref_280
    Polygon:
      $schema: http://json-schema.org/draft-07/schema#
      $id: https://geojson.org/schema/Polygon.json
      title: GeoJSON Polygon
      type: object
      required: *ref_281
      properties: *ref_282
    samplingSurface:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingSurface
      allOf: *ref_283
    samplingSolid:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingSolid
      allOf: *ref_284
    samplingSpecimen:
      $schema: http://json-schema.org/draft-07/schema#
      title: Specimen
      allOf: *ref_285
    samplingPart:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingPart
      allOf: *ref_286
    samplingProxy:
      $schema: http://json-schema.org/draft-07/schema#
      title: FeatureProxy
      allOf: *ref_287
    samplingSpatialParametric:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_170
    samplingPointXYZ:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingPoint XYZ
      allOf: *ref_288
    samplingSphere:
      $schema: http://json-schema.org/draft-07/schema#
      title: Sampling Sphere
      allOf: *ref_289
    samplingProfile:
      $schema: http://json-schema.org/draft-07/schema#
      title: SamplingProfile
      allOf: *ref_290
    viewingFrustum:
      $schema: http://json-schema.org/draft-07/schema#
      title: Viewing Frustum
      allOf: *ref_291
    sphericalSector:
      $schema: http://json-schema.org/draft-07/schema#
      title: Spherical Sector
      allOf: *ref_292
    anySamplingFeature:
      $schema: http://json-schema.org/draft-07/schema#
      oneOf: *ref_172
    DerivedProperty:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      allOf: *ref_293
    property:
      $schema: http://json-schema.org/draft-07/schema#
      allOf: *ref_182
    propertyArray:
      $schema: http://json-schema.org/draft-07/schema#
      type: array
      items: *ref_294
    propertyCollection:
      $schema: http://json-schema.org/draft-07/schema#
      type: object
      properties: *ref_295
      required: *ref_296
  responses:
    '201':
      description: Success. New resource created.
      headers: *ref_110
    '400':
      description: Bad request. Either the query parameters or the content body are invalid.
    '401':
      description: No authentication information was provided.
    '403':
      description: The user doesn't have the necessary permissions to access the resource.
    '404':
      description: No resource was found with the specified URL.
    landingPage:
      description: The links to the API capabilities.
      content: *ref_297
    conformance:
      description: The URIs of all requirements classes supported by the server.
      content: *ref_298
    collections:
      description: The list of collections available on this endpoint
      content: *ref_299
    collection:
      description: Metadata for a feature collection.
      content: *ref_300
    featureCollection:
      description: Feature collection resource
      content: *ref_301
    5XX:
      description: Unexpected server error. Only retry on 502 and 503.
    feature:
      description: Feature resource
      content: *ref_302
    204_DELETE:
      description: Success. Resource deleted.
    409_DELETE:
      description: The resource cannot be deleted because other resources depend on it.
    systemCollection:
      description: OK. Successful request
      content: *ref_130
    system:
      description: OK. Successful request
      content: *ref_303
    204_PUT:
      description: Success. Resource updated.
    deploymentCollection:
      description: OK. Successful request
      content: *ref_152
    deployment:
      description: OK. Successful request
      content: *ref_304
    procedureCollection:
      description: OK. Successful request
      content: *ref_305
    procedure:
      description: OK. Successful request
      content: *ref_306
    samplingFeatureCollection:
      description: OK. Successful request
      content: *ref_171
    samplingFeature:
      description: OK. Successful request
      content: *ref_307
    propertyCollection:
      description: OK. Successful request
      content: *ref_308
    property:
      description: OK. Successful request
      content: *ref_309
  parameters:
    bbox:
      name: bbox
      in: query
      description: |-
        The bounding box is provided as four or six numbers, depending on whether the
        coordinate reference system includes a vertical axis (height or depth).

        Only features that have a geometry that intersects the bounding box are selected.

        The order of coordinates is as follow:

        * Lower left corner, coordinate axis 1
        * Lower left corner, coordinate axis 2
        * Minimum value, coordinate axis 3 (optional)
        * Upper right corner, coordinate axis 1
        * Upper right corner, coordinate axis 2
        * Maximum value, coordinate axis 3 (optional)

        If the value consists of four numbers, the coordinate reference system is
        WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
        unless a different coordinate reference system is specified in the parameter `bbox-crs`.

        If the value consists of six numbers, the coordinate reference system is WGS 84 
        longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
        unless a different coordinate reference system is specified in the parameter `bbox-crs`.

        The query parameter `bbox-crs` is specified in OGC API - Features - Part 2: Coordinate 
        Reference Systems by Reference.

        For WGS 84 longitude/latitude the values are in most cases the sequence of
        minimum longitude, minimum latitude, maximum longitude and maximum latitude.
        However, in cases where the box spans the antimeridian the first value
        (west-most box edge) is larger than the third value (east-most box edge).

        If the vertical axis is included, the third and the sixth number are the
        bottom and the top of the 3-dimensional bounding box.

        If a feature has multiple spatial geometry properties, it is the decision of the
        server whether only a single spatial geometry property is used to determine
        the extent or all relevant geometries.
      required: false
      schema: *ref_5
      style: form
      explode: false
      examples: *ref_6
    datetime:
      name: datetime
      in: query
      description: |-
        Either a date-time or an interval. Date and time expressions adhere to RFC 3339. 
        Intervals may be bounded or half-bounded (double-dots at start or end).

        Only features that have a `validTime` property that intersects the value of
        `datetime` are selected.

        If history is supported for a feature type, the following also applies:
        - if `datetime` is a time instant or `now`, only the description valid at the specified time is selected
        - if `datetime` is a time period, only the latest description valid during the period is selected
        - The response can never include more that one description of the same feature
      required: false
      schema: *ref_7
      style: form
      explode: false
      examples: *ref_8
    geom:
      name: geom
      in: query
      description: |-
        WKT geometry and operator to filter resources on their location or geometry.
        Only features that have a geometry that intersects the value of `geom` are selected.
      required: false
      schema: *ref_9
      examples: *ref_10
    keyword:
      name: q
      in: query
      description: |-
        Comma separated list of keywords used for full-text search.
        Only resources that have textual fields that contain one of the specified keywords are selected.
        The resource `name` and `description` properties are always searched.
        It is up to the server to decide which other textual fields are searched.
      required: false
      schema: *ref_11
      explode: false
      examples: *ref_12
    limit:
      name: limit
      in: query
      description: |-
        This parameter limits the number of items that are presented in the response document.

        Only items that are on the first level of the collection in the response document are counted.
        Nested objects contained within the explicitly requested items shall not be counted.
      required: false
      schema: *ref_13
      style: form
      explode: false
    collectionId:
      name: collectionId
      in: path
      description: Local identifier of a collection
      required: true
      schema: *ref_4
    idList:
      name: id
      description: |-
        List of resource local IDs or unique IDs (URI).
        Only resources that have one of the provided identifiers are selected.
      in: query
      required: false
      schema: *ref_107
      explode: false
      examples: *ref_108
    resourceId:
      name: resourceId
      in: path
      description: Local identifier of a Resource
      required: true
      schema: *ref_106
    parentIdList:
      name: parent
      description: |-
        List of resource local IDs or unique IDs (URI).
        Only resources that have a parent that has one of the provided identifiers are selected.
      in: query
      required: false
      schema: *ref_124
      explode: false
    procedureIdList:
      name: procedure
      description: |-
        List of procedure local IDs or unique IDs (URI).
        Only systems that implement a procedure that has one of the provided identifiers are selected.
      in: query
      required: false
      schema: *ref_125
      explode: false
    foiIdList:
      name: foi
      description: |-
        List of feature local IDs or unique IDs (URI).
        Only resources that are associated to a feature of interest that has one of the provided identifiers are selected.
      in: query
      required: false
      schema: *ref_126
      explode: false
    obsPropIdList:
      name: observedProperty
      description: |-
        List of property local IDs or unique IDs (URI).
        Only resources that are associated to an observable property that has one of the provided identifiers are selected.
      in: query
      required: false
      schema: *ref_127
      explode: false
    controlPropIdList:
      name: controlledProperty
      description: |-
        List of property local IDs or unique IDs (URI).
        Only resources that are associated to a controllable property that has one of the provided identifiers are selected.
      in: query
      required: false
      schema: *ref_128
      explode: false
    recursive:
      name: recursive
      in: query
      description: If true, intructs the server to include nested resources in the search results.
      required: false
      schema: *ref_129
      style: form
      explode: false
    systemId:
      name: systemId
      in: path
      description: Local identifier of a System
      required: true
      schema: *ref_122
    cascade:
      name: cascade
      in: query
      description: If set to true, dependent resources are also deleted.
      required: false
      schema: *ref_310
    systemIdList:
      name: system
      description: |-
        List of system local IDs or unique IDs (URI).
        Only resources that are associated to a System that has one of the provided identifiers are selected.
      in: query
      required: false
      schema: *ref_151
      explode: false
    deploymentId:
      name: deploymentId
      in: path
      description: Local identifier of a Deployment
      required: true
      schema: *ref_149
    procedureId:
      name: procedureId
      in: path
      description: Local identifier of a Procedure
      required: true
      schema: *ref_162
    featureId:
      name: featureId
      in: path
      description: Local identifier of a Feature
      required: true
      schema: *ref_180
    basePropIdList:
      name: baseProperty
      description: |-
        List of property local IDs or unique IDs (URI).
        Only properties that are derived from the specified base properties are selected.
      in: query
      required: false
      schema: *ref_311
      explode: false
    objectTypeUriList:
      name: objectType
      description: |-
        List of object type URIs.
        Only properties that are of one of the specified object types are selected.
      in: query
      required: false
      schema: *ref_312
      explode: false
    propId:
      name: propId
      in: path
      description: Local identifier of a Property
      required: true
      schema: *ref_184
  requestBodies:
    systemOrArrayOrRefs:
      required: true
      content: *ref_313
    system:
      required: true
      content: *ref_123
    deployment:
      required: true
      content: *ref_150
    procedure:
      required: true
      content: *ref_163
    samplingFeature:
      required: true
      content: *ref_181
    property:
      required: true
      content: *ref_185
