openapi: 3.0.1
info:
  title: OGC API - Features Server
  version: 1.0.0
externalDocs:
  description: WFS specification
  url: http://docs.opengeospatial.org/is/17-069r3/17-069r3.html
servers:
- url: https://services-eu1.arcgis.com/NdTsShglmet2f8ai/arcgis/rest/services/ICENC/OGCFeatureServer
  description: This server
tags:
- name: Capabilities
  description: Essential characteristics of this API including information about the data.
- name: Features
  description: Access to data(features).
paths:
  /:
    get:
      tags:
      - Capabilities
      summary: landing page of this API
      description: The landing page provides links to the API definition, the Conformance statements and the metadata about the feature data in this dataset.
      operationId: getLandingPage
      responses:
        200:
          description: links to the API capabilities
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/root'
            text/html:
              schema:
                type: string
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/root'
  /conformance:
    get:
      tags:
      - Capabilities
      summary: information about standards that this API conforms to
      description: 'list all requirements classes specified in a standard(e.g., WFS 3.0 Part 1: Core) that the server conforms to'
      operationId: getRequirementsClasses
      responses:
        200:
          description: the URIs of all requirements classes supported by the server
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/req-classes'
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/req-classes'
        default:
          description: An error occured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
  /collections:
    get:
      tags:
      - Capabilities
      summary: describe the feature collections in the dataset
      operationId: describeCollections
      responses:
        200:
          description: Metdata about the feature collections shared by this API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/content'
            text/html:
              schema:
                type: string
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/content'
        default:
          description: An error occured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
            text/html:
              schema:
                type: string
  /collections/{collectionId}:
    get:
      tags:
      - Capabilities
      summary: describe the { collectionId} feature collection
      operationId: describeCollection
      parameters:
      - $ref: '#/components/parameters/collectionId'
      responses:
        200:
          description: Metadata about the { collectionId } collection shared by this API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/collectionInfo'
            text/html:
              schema:
                type: string
            application/x-yaml:
              schema:
                $ref: '#/components/schemas/collectionInfo'
        default:
          description: An error occured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
            text/html:
              schema:
                type: string
  /collections/{collectionId}/items:
    get:
      tags:
      - Features
      summary: Retrieve features of feature collection {collectionId}. Every feature in a dataset belongs to a collection.A dataset may consist of multiple feature collections. A feature collection is often a collection of features of a similar type, based on a common schema. Use content negotiation to request HTML or GeoJSON.
      operationId: getFeatures
      parameters:
      - $ref: '#/components/parameters/collectionId'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/bbox'
      - $ref: '#/components/parameters/datetime'
      responses:
        200:
          description: Information about the feature collection plus the first features matching the selection parameters.
          content:
            application/geo+json:
              schema:
                $ref: '#/components/schemas/featureCollectionGeoJSON'
            text/html:
              schema:
                type: string
            application/json:
              schema:
                type: object
        default:
          description: An error occured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
            text/html:
              schema:
                type: string
  /collections/{collectionId}/items/{featureId}:
    get:
      tags:
      - Features
      summary: retrieve a feature; use content negotiation to request HTML or GeoJSON
      operationId: getFeature
      parameters:
      - $ref: '#/components/parameters/collectionId'
      - $ref: '#/components/parameters/featureId'
      responses:
        200:
          description: A feature
          content:
            application/geo+json:
              schema:
                $ref: '#/components/schemas/featureGeoJSON'
            text/html:
              schema:
                type: string
            application/json:
              schema:
                type: object
        default:
          description: An error occured.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/exception'
            text/html:
              schema:
                type: string
components:
  schemas:
    queryables:
      required:
      - queryables
      type: object
      properties:
        queryables:
          type: array
          description: list of queryable properties
          items:
            $ref: '#/components/schemas/queryable'
    queryable:
      required:
      - name
      - type
      type: object
      properties:
        Id:
          type: string
          description: identifier of the attribute that can be used in CQL filters.
          example: zipcode
        type:
          type: string
          description: The property type.
    exception:
      required:
      - code
      type: object
      properties:
        code:
          type: string
        description:
          type: string
    root:
      required:
      - links
      type: object
      properties:
        links:
          type: array
          example:
          - href: http://data.example.org/
            rel: self
            type: application/json
            title: this document
          - href: http://data.example.org/api
            rel: service
            type: application/openapi+json;version=3.0
            title: the API definition
          - href: http://data.example.org/conformance
            rel: conformance
            type: application/json
            title: WFS 3.0 conformance classes implemented by this server
          - href: http://data.example.org/collections
            rel: data
            type: application/json
            title: Metadata about the feature collections
          items:
            $ref: '#/components/schemas/link'
    req-classes:
      required:
      - conformsTo
      type: object
      properties:
        conformsTo:
          type: array
          example:
          - http://www.opengis.net/spec/wfs-1/3.0/req/core
          - http://www.opengis.net/spec/wfs-1/3.0/req/oas30
          - http://www.opengis.net/spec/wfs-1/3.0/req/html
          - http://www.opengis.net/spec/wfs-1/3.0/req/geojson
          items:
            type: string
    link:
      required:
      - href
      type: object
      properties:
        href:
          type: string
        rel:
          type: string
          example: prev
        type:
          type: string
          example: application/geo+json
        hreflang:
          type: string
          example: en
    content:
      required:
      - collections
      - links
      type: object
      properties:
        links:
          type: array
          example:
          - href: http://data.example.org/collections.json
            rel: self
            type: application/json
            title: this document
          - href: http://data.example.org/collections.html
            rel: alternate
            type: text/html
            title: this document as HTML
          items:
            $ref: '#/components/schemas/link'
        collections:
          type: array
          items:
            $ref: '#/components/schemas/collectionInfo'
    collectionInfo:
      required:
      - links
      - name
      type: object
      properties:
        name:
          type: string
          description: identifier of the collection used, for example, in URIs
          example: buildings
        title:
          type: string
          description: human readable title of the collection
          example: buildings
        description:
          type: string
          description: a description of the features in the collection
          example: buildings
        links:
          type: array
          example:
          - href: http://data.example.org/collections/buildings/items
            rel: item
            type: application/geo+json
            title: Building
          - href: http://example.org/concepts/building.html
            rel: describedBy
            type: text/html
            title: Feature catalogue for buildings
          items:
            $ref: '#/components/schemas/link'
        extent:
          $ref: '#/components/schemas/extent'
        crs:
          type: array
          description: The coordinate reference systems in which geometries may be retrieved.Coordinate reference systems are identified by a URI.The first coordinate reference system is the coordinate reference system that is used by default. This is always "http://www.opengis.net/def/crs/OGC/1.3/CRS84", i.e.WGS84 longitude/latitude.
          items:
            type: string
          default:
          - http://www.opengis.net/def/crs/OGC/1.3/CRS84
    extent:
      type: object
      properties:
        crs:
          type: string
          description: Coordinate reference system of the coordinates in the spatial extent(property `spatial`). In the Core, only WGS84 longitude/latitude is supported.Extensions may support additional coordinate reference systems.
          enum:
          - http://www.opengis.net/def/crs/OGC/1.3/CRS84
          default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
        spatial:
          maxItems: 6
          minItems: 4
          type: array
          example:
          - -180
          - -90
          - 180
          - 90
          items:
            type: number
        trs:
          type: string
          enum:
          - http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
          default: http://www.opengis.net/def/uom/ISO-8601/0/Gregorian
        temporal:
          maxItems: 2
          minItems: 2
          type: array
          example:
          - 2011-11-11T12:22:11Z
          - 2012-11-24T12:32:43Z
          items:
            type: string
            format: dateTime
    featureCollectionGeoJSON:
      Required:
      - features
      - type
      Type: object
      Properties:
        CollectionType:
          CType: string
          CEnum:
          - FeatureCollection
        Features:
          CType: array
          Items:
            $ref: '#/components/schemas/featureGeoJSON'
        Links:
          CType: array
          Items:
            $ref: '#/components/schemas/link'
        TimeStamp:
          type: string
          format: dateTime
        NumberMatched:
          minimum: 0
          type: integer
        NumberReturned:
          minimum: 0
          type: integer
    featureGeoJSON:
      Required:
      - geometry
      - properties
      - type
      Type: object
      Properties:
        FeatureType:
          Type: string
          CEnum:
          - Feature
        FGeometry:
          $ref: '#/components/schemas/geometryGeoJSON'
        Properties:
          type: object
          nullable: true
        OneOf:
          Ids:
          - type: string
          - type: integer
    geometryGeoJSON:
      Required:
      - type
      Type: object
      Properties:
        GeometryGeoJSONType:
          CType: string
          CEnum:
          - Point
          - MultiPoint
          - LineString
          - MultiLineString
          - Polygon
          - MultiPolygon
          - GeometryCollection
    timeStamp:
      type: string
      description: This property indicates the time and date when the response was generated.
      format: date-time
  parameters:
    limit:
      name: limit
      in: query
      description: The optional limit parameter limits the number of items that are presented in the response document. Only items are counted that are on the first level of the collection in the response document.Nested objects contained within the explicitly requested items shall not be counted.
      required: false
      style: form
      explode: false
      schema:
        maximum: 5000
        minimum: 1
        type: integer
        default: 5000
    bbox:
      name: bbox
      in: query
      description: 'Only features that have a geometry that intersects the bounding box are selected.The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis(elevation or depth): * Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Lower left corner, coordinate axis 3 (optional) * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2 * Upper right corner, coordinate axis 3 (optional) The coordinate reference system of the values is WGS84 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`. For WGS84 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 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
      style: form
      explode: false
      schema:
        maxItems: 6
        minItems: 4
        type: array
        items:
          type: number
    datetime:
      name: time
      in: query
      description: 'Either a date-time or a period string that adheres to RFC 3339. Examples: * A date-time: "2018-02-12T23:20:50Z" * A period: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z" or "2018-02-12T00:00:00Z/P1M6DT12H31M12S" Only features that have a temporal property that intersects the value of `time` are selected. If a feature has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties.'
      required: false
      style: form
      explode: false
      schema:
        type: string
    collectionId:
      Name: collectionId
      In: path
      Description: Identifier(name) of a specific collection
      Required: true
      Schema:
        type: integer
        enum:
        - 0
    featureId:
      Name: featureId
      In: path
      Description: Local identifier of a specific feature
      Required: true
      Schema:
        type: string
    filter:
      Name: filter
      In: query
      Description: Filter features in the collection using the query expression in the parameter value.
      Required: false
      Explode: false
      Schema:
        type: string
    filter-lang:
      Name: filter-lang
      In: query
      Description: Language of the query expression in the 'filter' parameter.
      Required: false
      Explode: false
      Style: form
      Schema:
        type: string
        default: cql-text
        enum:
        - cql-text
        - sql
    crs:
      Name: crs
      In: query
      Description: The coordinate reference system. Default is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
      Required: true
      Style: form
      Explode: false
      Schema:
        type: string
        default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
    bbox-crs:
      Name: crs
      In: query
      Description: The coordinate reference system. Default is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
      Required: true
      Style: form
      Explode: false
      Schema:
        type: string
        default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
