openapi: 3.1.0
info:
  title: API Reference
  description: >
    This page contains the documentation on how to use sentinel hub services
    through API calls.


    > Note: This documentation is not complete
  version: 1.0.0
  contact:
    name: Sentinel Hub
servers:
  - url: https://sh.dataspace.copernicus.eu
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      description: >
        ### Authentication


        More about the authentication <a
        href="https://eu-cdse.github.io/documentation/APIs/SentinelHub/Overview/Authentication.html"
        target="_blank">here</a>.


        To get an access token using curl:


        ```

        curl --request POST \
          --url https://identity.dataspace.copernicus.eu/auth/realms/CDSE/protocol/openid-connect/token \
          --header "content-type: application/x-www-form-urlencoded" \
          --data "grant_type=client_credentials&client_id=<your client id>&client_secret=<your client secret>"
        ```
      flows:
        clientCredentials:
          tokenUrl: >-
            https://identity.dataspace.copernicus.eu/auth/realms/CDSE/protocol/openid-connect/token
          scopes:
            SH: Sentinel Hub
  parameters:
    SearchBeanSearch:
      name: search
      description: >-
        Optional search query. Either a single word to search for or multiple
        words separated by the `|` (or) and `&` (and) operators. If omitted, all
        items are returned.
      in: query
      schema:
        type: string
    SearchBeanCount:
      name: count
      description: >-
        Upper limit to the number of items to retrieve. It cannot be larger than
        the endpoint-specific limit. If omitted, the endpoint-specific limit is
        used.

        For more records, use *viewtoken* to page through.
      in: query
      schema:
        type: integer
        format: int32
    SearchBeanViewtoken:
      name: viewtoken
      description: >
        When the total number of items is larger than *count*, the response
        contains *viewtoken*.

        This *viewtoken* can be used in the next request to retrieve the next
        page of items.


        The next page can be retrieved by repeating the query. However, replace
        your URL with the

        next URL in the returned links object.
      in: query
      schema:
        type: string
    SearchBeanSort:
      name: sort
      description: sort
      in: query
      schema:
        type: string
    CatalogCollectionsCollectionId:
      name: collectionId
      in: path
      description: local identifier of a collection
      required: true
      schema:
        type: string
    CatalogFeaturesBbox:
      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 (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)


        The coordinate reference system of the values is WGS 84
        longitude/latitude

        (http://www.opengis.net/def/crs/OGC/1.3/CRS84).


        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:
        type: array
        oneOf:
          - minItems: 4
            maxItems: 4
          - minItems: 6
            maxItems: 6
        items:
          type: number
      style: form
      explode: false
    CatalogFeaturesCollectionId:
      name: collectionId
      in: path
      description: local identifier of a collection
      required: true
      schema:
        type: string
    CatalogFeaturesDatetime:
      name: datetime
      in: query
      description: >-
        Either a date-time or an interval, open or closed. Date and time
        expressions

        adhere to RFC 3339. Open intervals are expressed using double-dots.


        Examples:


        * A date-time: "2018-02-12T23:20:50Z"

        * A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z"

        * Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z"


        Only features that have a temporal property that intersects the value of

        `datetime` 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
      schema:
        type: string
      style: form
      explode: false
    CatalogFeaturesFeatureId:
      name: featureId
      in: path
      description: local identifier of a feature
      required: true
      schema:
        type: string
    CatalogFeaturesLimit:
      name: limit
      in: query
      description: >-
        The optional limit parameter recommends the number of items that should
        be present in the response document.


        If the limit parameter value is greater than advertised limit maximum,
        the server must return the

        maximum possible number of items, rather than responding with an error.


        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 must not
        be counted.


        Minimum = 1. Maximum = 100. Default = 10.
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
      style: form
      explode: false
    CatalogItemSearchFieldsFields:
      name: fields
      x-stac-api-fragment: fields
      in: query
      description: |-
        **Extension:** Fields

        Determines the shape of the features in the response
      required: false
      schema:
        type: string
        example: id,type,-geometry,bbox,properties,-links,-assets
      style: form
      explode: false
    CatalogItemSearchFilterFilter:
      name: filter
      x-stac-api-fragment: filter
      in: query
      description: |-
        **Extension:** Filter

        A CQL2 filter expression for filtering items.
      required: false
      schema:
        $ref: '#/components/schemas/CatalogItemSearchFilterFilterCql2Text'
      example: eo:cloud_cover>90
    CatalogItemSearchDistinctDistinct:
      name: distinct
      x-stac-api-fragment: distinct
      in: query
      description: |-
        **Extension:** Distinct

        Return distinct values of specified property.
      required: false
      schema:
        type: string
      style: form
      explode: false
    CatalogItemSearchIds:
      name: ids
      in: query
      description: Array of Item ids to return.
      required: false
      schema:
        $ref: '#/components/schemas/CatalogItemSearchIds'
      explode: false
    CatalogItemSearchCollectionsArray:
      name: collections
      in: query
      description: |
        Array of Collection IDs to include in the search for items.
        Only Item objects in one of the provided collections will be searched
      required: true
      schema:
        $ref: '#/components/schemas/CatalogItemSearchCollectionsArray'
      explode: false
      example:
        - sentinel-2-l2a
    CatalogItemSearchDatetime:
      name: datetime
      in: query
      description: >-
        Either a date-time or an interval, open or closed. Date and time
        expressions

        adhere to RFC 3339. Open intervals are expressed using double-dots.


        Examples:


        * A date-time: "2018-02-12T23:20:50Z"

        * A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z"

        * Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z"


        Only features that have a temporal property that intersects the value of

        `datetime` 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: true
      schema:
        type: string
      style: form
      explode: false
      example: 2020-12-10T00:00:00Z/2020-12-30T00:00:00Z
    CatalogItemSearchBbox:
      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 (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)


        The coordinate reference system of the values is WGS 84

        longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).


        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.


        Example: The bounding box of the New Zealand Exclusive Economic Zone in

        WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be

        represented in JSON as `[160.6, -55.95, -170, -25.89]` and in a query as

        `bbox=160.6,-55.95,-170,-25.89`.
      required: false
      schema:
        type: array
        oneOf:
          - minItems: 4
            maxItems: 4
          - minItems: 6
            maxItems: 6
        items:
          type: number
      style: form
      explode: false
      example:
        - 13
        - 45
        - 14
        - 46
    CatalogItemSearchLimit:
      name: limit
      in: query
      description: >-
        The optional limit parameter recommends the number of items that should
        be present 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 must not
        be counted.


        Minimum = 1. Maximum = 100. Default = 10.
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
      style: form
      explode: false
      example: 1
    CatalogItemSearchIntersects:
      name: intersects
      in: query
      description: >-
        The optional intersects parameter filters the result Items in the same
        was as bbox, only with

        a GeoJSON Geometry rather than a bbox.
      required: false
      schema:
        $ref: '#/components/schemas/CatalogGeometryGeoJSON'
      style: form
      explode: false
    AsyncProcessRequestId:
      name: requestId
      description: Request ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    BatchRequestId:
      name: requestId
      description: Request ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    BatchCollectionId:
      name: collectionId
      description: Collection ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    BatchTileId:
      name: tileId
      description: Tile ID
      in: path
      required: true
      schema:
        type: integer
        format: int64
    BatchTilinggridsId:
      name: id
      description: Tilinggrids ID
      in: path
      required: true
      schema:
        type: integer
        format: int64
    BatchV2TaskId:
      name: taskId
      description: Task ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    BatchV2TilinggridsId:
      name: id
      description: Tilinggrids ID
      in: path
      required: true
      schema:
        type: integer
        format: int64
    ByocCollectionId:
      name: collectionId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    ByocTileId:
      name: tileId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    OrderId:
      name: orderId
      description: Order ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    OrderStatus:
      name: status
      description: Filter orders by status. Omit to get all orders.
      in: query
      schema:
        $ref: '#/components/schemas/OrderStatus'
    DeliveryId:
      name: deliveryId
      description: Delivery ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    TileId:
      name: tileId
      description: Tile ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    TpdiCollectionId:
      name: collectionId
      description: Collection ID
      in: path
      required: true
      schema:
        type: string
        enum:
          - AIRBUS_PLEIADES
          - AIRBUS_SPOT
    QuotaTpdiCollectionId:
      name: collectionId
      description: Collection ID
      in: path
      required: true
      schema:
        type: string
        enum:
          - AIRBUS_PLEIADES
          - AIRBUS_SPOT
    DeliveryStatus:
      name: status
      description: Filter deliveries by status. Omit to get all deliveries.
      in: query
      schema:
        $ref: '#/components/schemas/DeliveryStatus'
    DeliveryFile:
      name: file
      description: File with full path as returned by the "List delivery files" endpoint.
      in: path
      required: true
      schema:
        type: string
    DeliveryArchiveFormat:
      name: format
      description: One of supported archive formats. Currently only `zip` is supported.
      in: query
      schema:
        $ref: '#/components/schemas/DeliveryArchiveFormat'
  responses:
    '400':
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RestErrorWrapper'
    '401':
      description: Unauthorized
    '403':
      description: Insufficient permissions
    '404':
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RestErrorWrapper'
    '409':
      description: Conflict in the request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RestErrorWrapper'
    '500':
      description: Server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RestErrorWrapper'
    CatalogError:
      description: An error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogException'
    CatalogAccessControlIllegalCollection:
      description: Illegal collection.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogException'
    CatalogAccessControlInsufficientPermissions:
      description: Insufficient permissions.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogException'
    CatalogCoreLandingPage:
      description: |-
        The landing page provides links to the API definition
        (link relations `service-desc` and `service-doc`),
        the Conformance declaration (path `/conformance`,
        link relation `conformance`), and the Feature
        Collections (path `/collections`, link relation
        `data`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogCoreLandingPage'
          example:
            type: Catalog
            stac_version: 1.0.0
            id: sentinel-hub
            title: Sentinel Hub STAC catalog
            description: STAC v1.0.0 implementation by Sentinel Hub
            conformsTo:
              - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core
              - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30
              - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson
              - https://api.stacspec.org/v1.0.0/core
              - https://api.stacspec.org/v1.0.0/collections
              - https://api.stacspec.org/v1.0.0/ogcapi-features
              - https://api.stacspec.org/v1.0.0/ogcapi-features#fields
              - https://api.stacspec.org/v1.0.0/ogcapi-features#context
              - https://api.stacspec.org/v1.0.0/ogcapi-features#filter
              - https://api.stacspec.org/v1.0.0/item-search
              - https://api.stacspec.org/v1.0.0/item-search#fields
              - https://api.stacspec.org/v1.0.0/item-search#context
              - https://api.stacspec.org/v1.0.0/item-search#filter
              - http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/filter
              - >-
                http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter
              - http://www.opengis.net/spec/cql2/1.0/conf/cql2-text
              - http://www.opengis.net/spec/cql2/1.0/conf/cql2-json
              - http://www.opengis.net/spec/cql2/1.0/conf/basic-cql2
            links:
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                rel: root
                type: application/json
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                rel: self
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections
                rel: data
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/conformance
                rel: conformance
                type: application/json
                title: STAC conformance classes implemented by this server
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/search
                rel: search
                type: application/geo+json
                title: STAC search
                method: GET
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/search
                rel: search
                type: application/geo+json
                title: STAC search
                method: POST
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/queryables
                rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
                type: application/schema+json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l1c
                rel: child
                type: application/json
                title: Sentinel 2 L1C
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-1-grd
                rel: child
                type: application/json
                title: Sentinel 1 GRD
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                rel: child
                type: application/json
                title: Sentinel 2 L2A
              - href: >-
                  https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/ApiReference/openapi.v1.yaml
                rel: service-desc
                type: application/vnd.oai.openapi;version="3.1"
                title: OpenAPI service description
              - href: >-
                  https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/ApiReference.html#tag/catalog_core
                rel: service-doc
                type: text/html
                title: OpenAPI service documentation
    CatalogConformanceDeclaration:
      description: |-
        The URIs of all conformance classes supported by the server.

        To support "generic" clients that want to access multiple
        OGC API Features implementations - and not "just" a specific
        API / server, the server declares the conformance
        classes it implements and conforms to.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogConformanceClasses'
          example:
            conformsTo:
              - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core
              - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30
              - http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson
              - https://api.stacspec.org/v1.0.0/core
              - https://api.stacspec.org/v1.0.0/collections
              - https://api.stacspec.org/v1.0.0/ogcapi-features
              - https://api.stacspec.org/v1.0.0/ogcapi-features#fields
              - https://api.stacspec.org/v1.0.0/ogcapi-features#context
              - https://api.stacspec.org/v1.0.0/ogcapi-features#filter
              - https://api.stacspec.org/v1.0.0/item-search
              - https://api.stacspec.org/v1.0.0/item-search#fields
              - https://api.stacspec.org/v1.0.0/item-search#context
              - https://api.stacspec.org/v1.0.0/item-search#filter
              - http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/filter
              - >-
                http://www.opengis.net/spec/ogcapi-features-3/1.0/conf/features-filter
              - http://www.opengis.net/spec/cql2/1.0/conf/cql2-text
              - http://www.opengis.net/spec/cql2/1.0/conf/cql2-json
              - http://www.opengis.net/spec/cql2/1.0/conf/basic-cql2
    CatalogCollectionsCollections:
      description: >-
        The feature collections shared by this API.


        The dataset is organized as one or more feature collections. This
        resource

        provides information about and access to the collections.


        The response contains the list of collections. For each collection, a
        link

        to the items in the collection (path
        `/collections/{collectionId}/items`,

        link relation `items`) as well as key information about the collection.

        This information includes:


        * A local identifier for the collection that is unique for the dataset;

        * A list of coordinate reference systems (CRS) in which geometries may
        be returned by the server. The first CRS is the default coordinate
        reference system (the default is always WGS 84 with axis order
        longitude/latitude);

        * An optional title and description for the collection;

        * An optional extent that can be used to provide an indication of the
        spatial and temporal extent of the collection - typically derived from
        the data;

        * An optional indicator about the type of the items in the collection
        (the default value, if the indicator is not provided, is 'feature').
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogCollectionsCollections'
          example:
            links:
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                rel: root
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/
                rel: self
                type: application/json
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                rel: parent
                type: application/json
            collections:
              - stac_version: 1.0.0
                stac_extensions:
                  - >-
                    https://stac-extensions.github.io/scientific/v1.0.0/schema.json
                  - https://stac-extensions.github.io/eo/v1.0.0/schema.json
                type: Collection
                id: sentinel-2-l1c
                title: Sentinel 2 L1C
                description: Sentinel 2 imagery processed to level 1C
                sci:citation: Modified Copernicus Sentinel data [Year]/Sentinel Hub
                license: proprietary
                providers:
                  - name: ESA
                    roles:
                      - producer
                    url: https://esa.int/
                  - name: AWS
                    roles:
                      - host
                    url: https://aws.amazon.com/
                  - name: Sinergise
                    roles:
                      - processor
                    url: https://www.sinergise.com/
                extent:
                  spatial:
                    bbox:
                      - - -180
                        - -56
                        - 180
                        - 83
                  temporal:
                    interval:
                      - - '2015-11-01T00:00:00Z'
                        - null
                summaries:
                  platform:
                    - sentinel-2a
                    - sentinel-2b
                  instrument:
                    - msi
                  constellation:
                    - sentinel-2
                  gsd:
                    - 10
                  eo:cloud_cover:
                    minimum: 0
                    maximum: 100
                  eo:bands:
                    - name: B01
                      common_name: coastal
                      center_wavelength: 0.4427
                      full_width_half_max: 0.021
                    - name: B02
                      common_name: blue
                      center_wavelength: 0.4924
                      full_width_half_max: 0.066
                    - name: B03
                      common_name: green
                      center_wavelength: 0.5598
                      full_width_half_max: 0.036
                    - name: B04
                      common_name: red
                      center_wavelength: 0.6646
                      full_width_half_max: 0.031
                    - name: B05
                      center_wavelength: 0.7041
                      full_width_half_max: 0.015
                    - name: B06
                      center_wavelength: 0.7405
                      full_width_half_max: 0.015
                    - name: B07
                      center_wavelength: 0.7828
                      full_width_half_max: 0.02
                    - name: B08
                      common_name: nir
                      center_wavelength: 0.8328
                      full_width_half_max: 0.106
                    - name: B8A
                      common_name: nir08
                      center_wavelength: 0.8647
                      full_width_half_max: 0.021
                    - name: B09
                      common_name: nir09
                      center_wavelength: 0.9451
                      full_width_half_max: 0.02
                    - name: B10
                      common_name: cirrus
                      center_wavelength: 1.3735
                      full_width_half_max: 0.031
                    - name: B11
                      common_name: swir16
                      center_wavelength: 1.6137
                      full_width_half_max: 0.091
                    - name: B12
                      common_name: swir22
                      center_wavelength: 2.2024
                      full_width_half_max: 0.175
                links:
                  - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                    rel: root
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l1c
                    rel: self
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections
                    rel: parent
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l1c/queryables
                    rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
                    type: application/schema+json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l1c/items
                    rel: items
                    type: application/geo+json
              - stac_version: 1.0.0
                stac_extensions:
                  - >-
                    https://stac-extensions.github.io/scientific/v1.0.0/schema.json
                  - https://stac-extensions.github.io/sat/v1.0.0/schema.json
                  - https://stac-extensions.github.io/sar/v1.0.0/schema.json
                  - >-
                    https://docs.sentinel-hub.com/api/latest/stac/s1/v1.0.0/schema.json
                type: Collection
                id: sentinel-1-grd
                title: Sentinel 1 GRD
                description: Sentinel 1 Ground Range Detected Imagery
                sci:citation: Modified Copernicus Sentinel data [Year]/Sentinel Hub
                license: proprietary
                providers:
                  - name: ESA
                    roles:
                      - producer
                    url: https://esa.int/
                  - name: AWS
                    roles:
                      - host
                    url: https://aws.amazon.com/
                  - name: Sinergise
                    roles:
                      - processor
                    url: https://www.sinergise.com/
                extent:
                  spatial:
                    bbox:
                      - - -180
                        - -85
                        - 180
                        - 85
                  temporal:
                    interval:
                      - - '2014-10-03T00:00:00Z'
                        - null
                summaries:
                  platform:
                    - sentinel-1a
                    - sentinel-1b
                  instrument:
                    - c-sar
                  constellation:
                    - sentinel-1
                  sat:orbit_state:
                    - ascending
                    - descending
                  sar:instrument_mode:
                    - SM
                    - IW
                    - EW
                    - WV
                    - EN
                    - AN
                    - IM
                  sar:frequency_band:
                    - C
                  sar:center_frequency:
                    - 5.405
                  sar:product_type:
                    - GRD
                  sar:polarizations:
                    - HH
                    - HV
                    - VH
                    - VV
                  sar:resolution_range:
                    - 9
                    - 20
                    - 23
                    - 50
                    - 52
                    - 84
                    - 88
                    - 93
                  sar:resolution_azimuth:
                    - 9
                    - 22
                    - 23
                    - 50
                    - 51
                    - 84
                    - 87
                  sar:pixel_spacing_range:
                    - 3.5
                    - 10
                    - 25
                    - 40
                  sar:pixel_spacing_azimuth:
                    - 3.5
                    - 10
                    - 25
                    - 40
                  s1:timeliness:
                    - NRT10m
                    - NRT1h
                    - NRT3h
                    - Fast24h
                    - Offline
                    - Reprocessing
                    - ArchNormal
                  s1:resolution:
                    - HIGH
                    - MEDIUM
                    - FULL
                  s1:polarization:
                    - SH
                    - SV
                    - DH
                    - DV
                    - HH
                    - HV
                    - VV
                    - VH
                links:
                  - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                    rel: root
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-1-grd
                    rel: self
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections
                    rel: parent
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-1-grd/queryables
                    rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
                    type: application/schema+json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-1-grd/items
                    rel: items
                    type: application/geo+json
              - stac_version: 1.0.0
                stac_extensions:
                  - >-
                    https://stac-extensions.github.io/scientific/v1.0.0/schema.json
                  - https://stac-extensions.github.io/eo/v1.0.0/schema.json
                type: Collection
                id: sentinel-2-l2a
                title: Sentinel 2 L2A
                description: Sentinel 2 imagery processed to level 2A
                sci:citation: Modified Copernicus Sentinel data [Year]/Sentinel Hub
                license: proprietary
                providers:
                  - name: ESA
                    roles:
                      - producer
                    url: https://esa.int/
                  - name: AWS
                    roles:
                      - host
                    url: https://aws.amazon.com/
                  - name: Sinergise
                    roles:
                      - processor
                    url: https://www.sinergise.com/
                extent:
                  spatial:
                    bbox:
                      - - -180
                        - -56
                        - 180
                        - 83
                  temporal:
                    interval:
                      - - '2016-11-01T00:00:00Z'
                        - null
                summaries:
                  platform:
                    - sentinel-2a
                    - sentinel-2b
                  instrument:
                    - msi
                  constellation:
                    - sentinel-2
                  gsd:
                    - 10
                  eo:cloud_cover:
                    minimum: 0
                    maximum: 100
                  eo:bands:
                    - name: B01
                      common_name: coastal
                      center_wavelength: 0.4427
                      full_width_half_max: 0.021
                    - name: B02
                      common_name: blue
                      center_wavelength: 0.4924
                      full_width_half_max: 0.066
                    - name: B03
                      common_name: green
                      center_wavelength: 0.5598
                      full_width_half_max: 0.036
                    - name: B04
                      common_name: red
                      center_wavelength: 0.6646
                      full_width_half_max: 0.031
                    - name: B05
                      center_wavelength: 0.7041
                      full_width_half_max: 0.015
                    - name: B06
                      center_wavelength: 0.7405
                      full_width_half_max: 0.015
                    - name: B07
                      center_wavelength: 0.7828
                      full_width_half_max: 0.02
                    - name: B08
                      common_name: nir
                      center_wavelength: 0.8328
                      full_width_half_max: 0.106
                    - name: B8A
                      common_name: nir08
                      center_wavelength: 0.8647
                      full_width_half_max: 0.021
                    - name: B09
                      common_name: nir09
                      center_wavelength: 0.9451
                      full_width_half_max: 0.02
                    - name: B11
                      common_name: swir16
                      center_wavelength: 1.6137
                      full_width_half_max: 0.091
                    - name: B12
                      common_name: swir22
                      center_wavelength: 2.2024
                      full_width_half_max: 0.175
                links:
                  - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                    rel: root
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                    rel: self
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections
                    rel: parent
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/queryables
                    rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
                    type: application/schema+json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/items
                    rel: items
                    type: application/geo+json
    CatalogCollectionsCollection:
      description: >-
        Information about the feature collection with id `collectionId`.


        The response contains a link to the items in the collection

        (path `/collections/{collectionId}/items`, link relation `items`)

        as well as key information about the collection. This information

        includes:


        * A local identifier for the collection that is unique for the dataset;

        * A list of coordinate reference systems (CRS) in which geometries may
        be returned by the server. The first CRS is the default coordinate
        reference system (the default is always WGS 84 with axis order
        longitude/latitude);

        * An optional title and description for the collection;

        * An optional extent that can be used to provide an indication of the
        spatial and temporal extent of the collection - typically derived from
        the data;

        * An optional indicator about the type of the items in the collection
        (the default value, if the indicator is not provided, is 'feature').
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogCollection'
          example:
            stac_version: 1.0.0
            stac_extensions:
              - https://stac-extensions.github.io/scientific/v1.0.0/schema.json
              - https://stac-extensions.github.io/eo/v1.0.0/schema.json
            type: Collection
            id: sentinel-2-l2a
            title: Sentinel 2 L2A
            description: Sentinel 2 imagery processed to level 2A
            sci:citation: Modified Copernicus Sentinel data [Year]/Sentinel Hub
            license: proprietary
            providers:
              - name: ESA
                roles:
                  - producer
                url: https://esa.int/
              - name: AWS
                roles:
                  - host
                url: https://aws.amazon.com/
              - name: Sinergise
                roles:
                  - processor
                url: https://www.sinergise.com/
            extent:
              spatial:
                bbox:
                  - - -180
                    - -56
                    - 180
                    - 83
              temporal:
                interval:
                  - - '2016-11-01T00:00:00Z'
                    - null
            summaries:
              platform:
                - sentinel-2a
                - sentinel-2b
              instrument:
                - msi
              constellation:
                - sentinel-2
              gsd:
                - 10
              eo:cloud_cover:
                minimum: 0
                maximum: 100
              eo:bands:
                - name: B01
                  common_name: coastal
                  center_wavelength: 0.4427
                  full_width_half_max: 0.021
                - name: B02
                  common_name: blue
                  center_wavelength: 0.4924
                  full_width_half_max: 0.066
                - name: B03
                  common_name: green
                  center_wavelength: 0.5598
                  full_width_half_max: 0.036
                - name: B04
                  common_name: red
                  center_wavelength: 0.6646
                  full_width_half_max: 0.031
                - name: B05
                  center_wavelength: 0.7041
                  full_width_half_max: 0.015
                - name: B06
                  center_wavelength: 0.7405
                  full_width_half_max: 0.015
                - name: B07
                  center_wavelength: 0.7828
                  full_width_half_max: 0.02
                - name: B08
                  common_name: nir
                  center_wavelength: 0.8328
                  full_width_half_max: 0.106
                - name: B8A
                  common_name: nir08
                  center_wavelength: 0.8647
                  full_width_half_max: 0.021
                - name: B09
                  common_name: nir09
                  center_wavelength: 0.9451
                  full_width_half_max: 0.02
                - name: B11
                  common_name: swir16
                  center_wavelength: 1.6137
                  full_width_half_max: 0.091
                - name: B12
                  common_name: swir22
                  center_wavelength: 2.2024
                  full_width_half_max: 0.175
            links:
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                rel: root
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                rel: self
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections
                rel: parent
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/queryables
                rel: http://www.opengis.net/def/rel/ogc/1.0/queryables
                type: application/schema+json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/items
                rel: items
                type: application/geo+json
    CatalogCollectionQueryables:
      description: A JSON Schema defining the Queryables allowed in CQL2 expressions
      content:
        application/schema+json:
          schema:
            type: object
          example:
            $schema: https://json-schema.org/draft/2019-09/schema
            $id: >-
              https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/queryables/
            type: object
            title: Queryables for Catalog STAC API
            description: Queryable names for the Catalog STAC API Item Search filter.
            properties:
              eo:cloud_cover:
                description: Cloud Cover
                type: number
                minimum: 0
                maximum: 100
            additionalProperties: false
    CatalogCollectionsNotFound:
      description: The requested URI was not found.
    CatalogCollectionsServerError:
      description: A server error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogException'
    CatalogFeaturesFeatures:
      description: >-
        The response is a document consisting of features in the collection.

        The features included in the response are determined by the server

        based on the query parameters of the request. To support access to

        larger collections without overloading the client, the API supports

        paged access with links to the next page, if more features are selected

        that the page size.


        The `bbox` and `datetime` parameter can be used to select only a

        subset of the features in the collection (the features that are in the

        bounding box or time interval). The `bbox` parameter matches all
        features

        in the collection that are not associated with a location, too. The

        `datetime` parameter matches all features in the collection that are

        not associated with a time stamp or interval, too.


        The `limit` parameter may be used to control the subset of the

        selected features that should be returned in the response, the page
        size.

        Each page may include information about the number of selected and

        returned features (`numberMatched` and `numberReturned`) as well as

        links to support paging (link relation `next`).
      content:
        application/geo+json:
          schema:
            $ref: '#/components/schemas/CatalogFeaturesFeatureCollectionGeoJSON'
          example:
            type: FeatureCollection
            features:
              - stac_version: 1.0.0
                stac_extensions:
                  - https://stac-extensions.github.io/eo/v1.0.0/schema.json
                  - >-
                    https://stac-extensions.github.io/projection/v1.0.0/schema.json
                id: S2B_MSIL2A_20201229T101329_N0214_R022_T33TUK_20201229T115442
                type: Feature
                geometry:
                  type: MultiPolygon
                  crs:
                    type: name
                    properties:
                      name: urn:ogc:def:crs:OGC::CRS84
                  coordinates:
                    - - - - 12.456873618680804
                          - 45.12550485074961
                        - - 12.499663722139168
                          - 44.138006014975964
                        - - 13.153277241744092
                          - 44.15044712021016
                        - - 13.558241653952589
                          - 45.144727105915536
                        - - 12.456873618680804
                          - 45.12550485074961
                bbox:
                  - 12.456873618680804
                  - 44.138006014975964
                  - 13.558241653952589
                  - 45.144727105915536
                properties:
                  datetime: '2020-12-29T10:18:19Z'
                  platform: sentinel-2b
                  instruments:
                    - msi
                  constellation: sentinel-2
                  gsd: 10
                  eo:cloud_cover: 93.93
                  proj:epsg: 32633
                  proj:bbox:
                    - 300000
                    - 4890240
                    - 409800
                    - 5000040
                  proj:geometry:
                    type: MultiPolygon
                    crs:
                      type: name
                      properties:
                        name: urn:ogc:def:crs:EPSG::32633
                    coordinates:
                      - - - - 300000.99988415383
                            - 5000039.000148304
                          - - 300000.99989785976
                            - 4890241.000124758
                          - - 352314.4884079728
                            - 4890241.000125499
                          - - 386653.8629171661
                            - 5000039.000149397
                          - - 300000.99988415383
                            - 5000039.000148304
                assets:
                  data:
                    href: s3://sentinel-s2-l2a/tiles/33/T/UK/2020/12/29/0/
                    title: s3
                    type: inode/directory
                collection: sentinel-2-l2a
                links:
                  - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                    rel: root
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/items/S2B_MSIL2A_20201229T101329_N0214_R022_T33TUK_20201229T115442
                    rel: self
                    type: application/geo+json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                    rel: parent
                    type: application/json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                    rel: collection
                    type: application/json
                  - href: >-
                      https://scihub.copernicus.eu/dhus/odata/v1/Products('1da14794-939f-4ede-b490-cd3a2348b495')/$value
                    rel: derived_from
                    title: scihub download
            links:
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                rel: root
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/items?bbox=13,45,14,46&limit=1&datetime=2020-12-10T00:00:00Z/2020-12-30T00:00:00Z
                rel: self
                type: application/geo+json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                rel: parent
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/items?limit=1&next=1&datetime=2020-12-10T00:00:00Z/2020-12-30T00:00:00Z&bbox=13,45,14,46
                rel: next
                type: application/geo+json
                title: Next set of results
            timeStamp: '2023-05-19T12:54:40.429059Z'
            numberReturned: 1
    CatalogFeaturesFeature:
      description: |-
        fetch the feature with id `featureId` in the feature collection
        with id `collectionId`
      content:
        application/geo+json:
          schema:
            $ref: '#/components/schemas/CatalogItem'
          example:
            stac_version: 1.0.0
            stac_extensions:
              - https://stac-extensions.github.io/eo/v1.0.0/schema.json
              - https://stac-extensions.github.io/projection/v1.0.0/schema.json
            id: S2B_MSIL2A_20201229T101329_N0214_R022_T33TUK_20201229T115442
            type: Feature
            geometry:
              type: MultiPolygon
              crs:
                type: name
                properties:
                  name: urn:ogc:def:crs:OGC::CRS84
              coordinates:
                - - - - 12.456873618680804
                      - 45.12550485074961
                    - - 12.499663722139168
                      - 44.138006014975964
                    - - 13.153277241744092
                      - 44.15044712021016
                    - - 13.558241653952589
                      - 45.144727105915536
                    - - 12.456873618680804
                      - 45.12550485074961
            bbox:
              - 12.456873618680804
              - 44.138006014975964
              - 13.558241653952589
              - 45.144727105915536
            properties:
              datetime: '2020-12-29T10:18:19Z'
              platform: sentinel-2b
              instruments:
                - msi
              constellation: sentinel-2
              gsd: 10
              eo:cloud_cover: 93.93
              proj:epsg: 32633
              proj:bbox:
                - 300000
                - 4890240
                - 409800
                - 5000040
              proj:geometry:
                type: MultiPolygon
                crs:
                  type: name
                  properties:
                    name: urn:ogc:def:crs:EPSG::32633
                coordinates:
                  - - - - 300000.99988415383
                        - 5000039.000148304
                      - - 300000.99989785976
                        - 4890241.000124758
                      - - 352314.4884079728
                        - 4890241.000125499
                      - - 386653.8629171661
                        - 5000039.000149397
                      - - 300000.99988415383
                        - 5000039.000148304
            assets:
              data:
                href: s3://sentinel-s2-l2a/tiles/33/T/UK/2020/12/29/0/
                title: s3
                type: inode/directory
            collection: sentinel-2-l2a
            links:
              - href: https://sh.dataspace.copernicus.eu/catalog/v1/
                rel: root
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a/items/S2B_MSIL2A_20201229T101329_N0214_R022_T33TUK_20201229T115442
                rel: self
                type: application/geo+json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                rel: parent
                type: application/json
              - href: >-
                  https://sh.dataspace.copernicus.eu/catalog/v1/collections/sentinel-2-l2a
                rel: collection
                type: application/json
              - href: >-
                  https://scihub.copernicus.eu/dhus/odata/v1/Products('1da14794-939f-4ede-b490-cd3a2348b495')/$value
                rel: derived_from
                title: scihub download
    CatalogFeaturesInvalidParameter:
      description: A query parameter has an invalid value.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogException'
    CatalogFeaturesNotFound:
      description: The requested URI was not found.
    CatalogFeaturesServerError:
      description: A server error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CatalogException'
  schemas:
    Boom:
      type: object
      properties:
        status:
          description: HTTP status code
          type: integer
          format: int32
        reason:
          description: Reason for the error
          type: string
        message:
          description: Friendly error message
          type: string
        code:
          description: Code that uniquely identifies the error
          type: string
          enum:
            - COMMON_BAD_PAYLOAD
            - COMMON_NOT_FOUND
            - COMMON_DATABASE_ERROR
            - COMMON_UNIQUE_KEY_VIOLATION
            - COMMON_INSUFFICIENT_PERMISSIONS
            - COMMON_SENTINEL_ACCOUNT_EXPIRED
            - COMMON_METHOD_NOT_ALLOWED
            - COMMON_UNSUPPORTED_MEDIA_TYPE
            - COMMON_ELASTICSEARCH_ERROR
            - COMMON_UNAUTHORIZED
            - COMMON_EXCEPTION
            - RATE_LIMIT_STORAGE_TIMEOUT
            - RATE_LIMIT_OVERLAPPING_POLICIES
            - RATE_LIMIT_EXCEEDED
            - RATE_LIMIT_TOKEN_COUNT_EXCEEDS_CAPACITY
            - DASHBOARD_PAYPAL_SALE_ERROR
            - DASHBOARD_PAYPAL_SUBSCRIPTION_ERROR
            - DASHBOARD_INVALID_PAYPAL_RESPONSE
            - DASHBOARD_EXECUTE_SALE_ERROR
            - DASHBOARD_EXECUTE_AGREEMENT_ERROR
            - DASHBOARD_IPN_ERROR
            - DASHBOARD_ADYEN_SALE_ERROR
            - DASHBOARD_ADYEN_PAYMENT_CANCELLED
            - RENDERER_EXCEPTION
            - OAUTH_ERROR
            - EMAIL_OCTOPUS_ERROR
        errors:
          description: Additional information about the error (Optional)
          type: object
    RestErrorWrapper:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Boom'
    DatasetType:
      type: string
      enum:
        - sentinel-1-grd
        - sentinel-2-l1c
        - sentinel-2-l2a
        - sentinel-3-olci
        - sentinel-3-olci-l2
        - sentinel-3-slstr
        - sentinel-5p-l2
        - dem
        - s2gm
        - custom
    Interpolator:
      type: string
      enum:
        - BILINEAR
        - BICUBIC
        - LANCZOS
        - BOX
        - NEAREST
    DateTimeInterval:
      type: object
      properties:
        from:
          type: string
          description: >-
            ISO-8601 time representing start of search interval, e.g.
            2019-01-31T14:00:00+01:00
          format: date-time
        to:
          type: string
          description: >-
            ISO-8601 time representing end of search interval, e.g.
            2019-02-05T15:00:00+01:00.
          format: date-time
    Geometry:
      description: >-
        The request area of interest geometry. This and/or BBOX must be
        specified. Coordinates need to be in easting,northing or
        longitude,latitude, in that order in the CRS defined in the
        "bounds.properties.crs" parameter. A GeoJsonObject.
      type: object
      oneOf:
        - $ref: '#/components/schemas/Polygon'
        - $ref: '#/components/schemas/MultiPolygon'
      example:
        type: Polygon
        coordinates:
          - - - 14.000701904296873
              - 46.23685258143992
            - - 13.822174072265625
              - 46.09037664604301
            - - 14.113311767578125
              - 45.85080395917834
            - - 14.55963134765625
              - 46.038922598236
            - - 14.441528320312498
              - 46.28717293114449
            - - 14.17236328125
              - 46.29191774991382
            - - 14.000701904296873
              - 46.23685258143992
    Polygon:
      type: object
      properties:
        type:
          type: string
          enum:
            - Polygon
        coordinates:
          type: array
          items:
            type: array
            items:
              maxItems: 2
              minItems: 2
              type: array
              items:
                type: number
                format: double
    MultiPolygon:
      type: object
      properties:
        type:
          type: string
          enum:
            - MultiPolygon
        coordinates:
          type: array
          items:
            type: array
            items:
              type: array
              items:
                maxItems: 2
                minItems: 2
                type: array
                items:
                  type: number
                  format: double
    View:
      description: Links to paginate the resource
      type: object
      properties:
        currentToken:
          type: string
        nextToken:
          type: string
        previousToken:
          type: string
        '@id':
          type: string
          format: uri
        next:
          type: string
          format: uri
        previous:
          type: string
          format: uri
    ResourceReference:
      type: object
      properties:
        '@id':
          description: Resource URL reference
          type: string
    BaseDataset:
      type: object
      properties:
        type:
          description: Datasource abbreviation
          type: string
        id:
          description: Identifier
          type: string
    S2L1CDataset:
      title: sentinel-2-l1c
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/S2L1CFiltering'
            processing:
              $ref: '#/components/schemas/S2Processing'
            type:
              type: string
              enum:
                - sentinel-2-l1c
    S2L2ADataset:
      title: sentinel-2-l2a
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/S2L2AFiltering'
            processing:
              $ref: '#/components/schemas/S2Processing'
            type:
              type: string
              enum:
                - sentinel-2-l2a
    DEMDataset:
      title: dem
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/DEMFiltering'
            processing:
              $ref: '#/components/schemas/DEMProcessing'
            type:
              type: string
              enum:
                - dem
    S1Dataset:
      title: sentinel-1-grd
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/S1Filtering'
            processing:
              $ref: '#/components/schemas/S1Processing'
            type:
              type: string
              enum:
                - sentinel-1-grd
    S3OlciDataset:
      title: sentinel-3-olci
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/S3OlciFiltering'
            processing:
              $ref: '#/components/schemas/BaseDatasetProcessing'
            type:
              type: string
              enum:
                - sentinel-3-olci
    S3OlciL2Dataset:
      title: sentinel-3-olci-l2
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/S3OlciL2Filtering'
            processing:
              $ref: '#/components/schemas/BaseDatasetProcessing'
            type:
              type: string
              enum:
                - sentinel-3-olci-l2
    S3SlstrDataset:
      title: sentinel-3-slstr
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/S3SlstrFiltering'
            processing:
              $ref: '#/components/schemas/S3SlstrProcessing'
            type:
              type: string
              enum:
                - sentinel-3-slstr
    S5PDataset:
      title: sentinel-5p-l2
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDataset'
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/S5PFiltering'
            processing:
              $ref: '#/components/schemas/S5PProcessing'
            type:
              type: string
              enum:
                - sentinel-5p-l2
    BYOCDataset:
      title: BYOC / BATCH / ZARR
      type: object
      allOf:
        - type: object
          properties:
            dataFilter:
              $ref: '#/components/schemas/BYOCFiltering'
            processing:
              $ref: '#/components/schemas/BaseDatasetProcessing'
            type:
              type: string
              description: >
                For a BYOC collection, set to "byoc-\<collectionId\>", for
                example "byoc-017aa0ae-33a6-45d3-8548-0f7d1041b40c".


                For a BATCH collection, set to "batch-\<collectionId\>", for
                example "batch-9688cd56-6c70-4221-add8-a5821d0256a9".


                For a ZARR collection, set to "zarr-\<collectionId\>", for
                example "zarr-e2c7baec-3dfa-4523-b125-e242bdb5dd7c".
        - $ref: '#/components/schemas/BaseDataset'
    S2L2AFiltering:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        mosaickingOrder:
          description: >-
            The order in which tiles are overlapped from which the output result
            is mosaicked.
          type: string
          enum:
            - mostRecent
            - leastRecent
            - leastCC
          default: mostRecent
        maxCloudCoverage:
          $ref: '#/components/schemas/MaxCloudCoverage'
    S2L1CFiltering:
      allOf:
        - $ref: '#/components/schemas/S2L2AFiltering'
        - type: object
          properties:
            previewMode:
              type: string
              description: The preview mode
              enum:
                - DETAIL
                - TILE_PREVIEW
                - PREVIEW
                - EXTENDED_PREVIEW
              default: DETAIL
    S1Filtering:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        mosaickingOrder:
          description: >-
            The order in which tiles are overlapped from which the output result
            is mosaicked.
          type: string
          enum:
            - mostRecent
            - leastRecent
          default: mostRecent
        resolution:
          type: string
          enum:
            - HIGH
            - MEDIUM
            - FULL
        acquisitionMode:
          type: string
          enum:
            - SM
            - IW
            - EW
            - WV
            - EN
            - AN
            - IM
        polarization:
          type: string
          enum:
            - SH
            - SV
            - DH
            - DV
            - HH
            - HV
            - VV
            - VH
        orbitDirection:
          type: string
          enum:
            - ASCENDING
            - DESCENDING
        timeliness:
          type: string
          enum:
            - NRT10m
            - NRT1h
            - NRT3h
            - Fast24h
            - Offline
            - Reprocessing
            - ArchNormal
    S3OlciFiltering:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        mosaickingOrder:
          description: >-
            The order in which tiles are overlapped from which the output result
            is mosaicked.
          type: string
          enum:
            - mostRecent
            - leastRecent
          default: mostRecent
    S3OlciL2Filtering:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        mosaickingOrder:
          description: >-
            The order in which tiles are overlapped from which the output result
            is mosaicked.
          type: string
          enum:
            - mostRecent
            - leastRecent
            - leastCC
          default: mostRecent
        maxCloudCoverage:
          $ref: '#/components/schemas/MaxCloudCoverage'
    S3SlstrFiltering:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        mosaickingOrder:
          description: >-
            The order in which tiles are overlapped from which the output result
            is mosaicked.
          type: string
          enum:
            - mostRecent
            - leastRecent
            - leastCC
          default: mostRecent
        maxCloudCoverage:
          $ref: '#/components/schemas/MaxCloudCoverage'
        orbitDirection:
          description: Orbit direction.
          type: string
          enum:
            - ASCENDING
            - DESCENDING
    S5PFiltering:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        mosaickingOrder:
          description: >-
            The order in which tiles are overlapped from which the output result
            is mosaicked.
          type: string
          enum:
            - mostRecent
            - leastRecent
          default: mostRecent
        timeliness:
          description: Data timeliness.
          type: string
          enum:
            - NRTI
            - OFFL
            - RPRO
    BYOCFiltering:
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/TimeRange'
        mosaickingOrder:
          description: >-
            The order in which tiles are overlapped from which the output result
            is mosaicked.
          type: string
          enum:
            - mostRecent
            - leastRecent
          default: mostRecent
    DEMFiltering:
      type: object
      properties:
        demInstance:
          description: Selects DEM instance.
          type: string
          enum:
            - MAPZEN
            - COPERNICUS_30
            - COPERNICUS_90
          default: MAPZEN
    TimeRange:
      type: object
      description: >-
        A time interval to filter data by acquisition date. It is defined by a
        start and end date and time, e.g. 2019-01-31T14:00:00+01:00. A date
        representation without time (e.g. 2019-01-31) will not work. Both the
        start and end of a time interval are inclusive and can be equal.
      properties:
        from:
          description: The start of a search interval.
          type: string
          format: date-time
        to:
          description: The end of a search interval.
          type: string
          format: date-time
      example:
        from: 2018-10-01T00:00:00.000Z
        to: 2018-11-01T00:00:00.000Z
    MaxCloudCoverage:
      description: The maximum allowable cloud coverage in percent.
      type: number
      format: double
      minimum: 0
      maximum: 100
      default: 100
    BaseDatasetProcessing:
      type: object
      properties:
        upsampling:
          description: |
            The interpolation used when the requested
            resolution is higher than the source resolution.
          type: string
          enum:
            - NEAREST
            - BILINEAR
            - BICUBIC
          default: NEAREST
        downsampling:
          description: |
            The interpolation used when the requested
            resolution is lower than the source resolution.
          type: string
          enum:
            - NEAREST
            - BILINEAR
            - BICUBIC
          default: NEAREST
    S2Processing:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDatasetProcessing'
        - type: object
          properties:
            harmonizeValues:
              description: >-
                Harmonizes data values to be comparable with old processing
                baselines.
              type: boolean
              default: true
    DEMProcessing:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDatasetProcessing'
        - type: object
          properties:
            clampNegative:
              type: boolean
              default: false
              description: >-
                Mapzen DEM specific option. It replaces negative orthometric
                heights with 0. Useful for removing ocean bathymetry, for
                example.
            egm:
              type: boolean
              default: false
              description: >-
                It replaces orthometric heights with ellipsoidal heights
                relative to the WGS84 ellipsoid.
    S1Processing:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDatasetProcessing'
        - type: object
          properties:
            speckleFilter:
              type: object
              oneOf:
                - $ref: '#/components/schemas/S1ProcessingSpeckleFilterLEE'
                - $ref: '#/components/schemas/S1ProcessingSpeckleFilterNONE'
              discriminator:
                propertyName: type
                mapping:
                  LEE: '#/components/schemas/S1ProcessingSpeckleFilterLEE'
                  NONE: '#/components/schemas/S1ProcessingSpeckleFilterNONE'
            backCoeff:
              type: string
              enum:
                - BETA0
                - SIGMA0_ELLIPSOID
                - GAMMA0_ELLIPSOID
                - GAMMA0_TERRAIN
              default: GAMMA0_ELLIPSOID
            orthorectify:
              type: boolean
              default: false
            demInstance:
              type: string
              enum:
                - MAPZEN
                - COPERNICUS
                - COPERNICUS_30
                - COPERNICUS_90
              default: MAPZEN
            radiometricTerrainOversampling:
              type: number
              format: double
              minimum: 1
              maximum: 4
              default: 2
    S1ProcessingSpeckleFilterLEE:
      type: object
      description: >-
        The Lee speckle filter. Note that processing time rapidly increases as
        window size increases.
      required:
        - type
        - windowSizeX
        - windowSizeY
      properties:
        type:
          type: string
        windowSizeX:
          type: integer
          minimum: 1
          maximum: 7
          description: >-
            The window size in the X direction of the source data. Odd values
            recommended.
        windowSizeY:
          type: integer
          minimum: 1
          maximum: 7
          description: >-
            The window size in the Y direction of the source data. Odd values
            recommended.
    S1ProcessingSpeckleFilterNONE:
      type: object
      description: >-
        Does NO speckle filtering. Equivalent to not having speckleFilter
        defined.
      required:
        - type
      properties:
        type:
          type: string
    S3SlstrProcessing:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDatasetProcessing'
        - type: object
          properties:
            view:
              description: The satellite view.
              type: string
              enum:
                - NADIR
                - OBLIQUE
              default: NADIR
    S5PProcessing:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDatasetProcessing'
        - type: object
          properties:
            minQa:
              description: |
                The minimum (inclusive) pixel quality to be displayed.

                For NO2, default is 75.
              type: integer
              format: int32
              minimum: 0
              maximum: 100
              default: 50
    ProcessRequest:
      type: object
      required:
        - evalscript
        - input
      properties:
        input:
          $ref: '#/components/schemas/ProcessRequestInput'
        output:
          $ref: '#/components/schemas/ProcessRequestOutput'
        evalscript:
          description: >
            Your evalscript. For details, click

            <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
            target="_blank">here</a>.
          type: string
    MultiPartProcessRequest:
      type: object
      properties:
        request:
          required:
            - input
          type: object
          properties:
            input:
              $ref: '#/components/schemas/ProcessRequestInput'
            output:
              $ref: '#/components/schemas/ProcessRequestOutput'
        evalscript:
          description: >
            Your evalscript. For details, click

            <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
            target="_blank">here</a>.
          type: string
    ProcessRequestInput:
      title: Input
      type: object
      required:
        - bounds
        - data
      properties:
        bounds:
          $ref: '#/components/schemas/ProcessRequestInputBounds'
        data:
          $ref: '#/components/schemas/ProcessRequestInputData'
    ProcessRequestInputData:
      description: >
        The collections you wish to request, along with certain processing and
        filtering parameters.

        To learn how to request and work with multiple collection, check the
        "Data Fusion" page in our documentation
        https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Process/DataFusion.html.
      type: array
      minItems: 1
      items:
        oneOf:
          - $ref: '#/components/schemas/S1Dataset'
          - $ref: '#/components/schemas/S2L1CDataset'
          - $ref: '#/components/schemas/S2L2ADataset'
          - $ref: '#/components/schemas/S3OlciDataset'
          - $ref: '#/components/schemas/S3OlciL2Dataset'
          - $ref: '#/components/schemas/S3SlstrDataset'
          - $ref: '#/components/schemas/S5PDataset'
          - $ref: '#/components/schemas/DEMDataset'
          - $ref: '#/components/schemas/BYOCDataset'
    ProcessRequestInputBounds:
      title: Bounds
      description: >
        Defines the request bounds by specifying the bounding box and/or

        geometry for the request. If both are specified it will generate an
        image

        for the bounding box and render data contained within the geometry.
      type: object
      properties:
        bbox:
          description: >
            The request bounding box. This and/or GEOMETRY must be specified.

            Specify with a coordinate pair on two (opposite) vertices of the
            bounding

            box rectangle. Coordinates need to be in easting,northing or
            longitude, latitude,

            in that order in the CRS defined in the "bounds.properties.crs"
            parameter.
          type: array
          minItems: 4
          maxItems: 4
          items:
            type: number
            format: double
          example:
            - 13.822174072265625
            - 45.85080395917834
            - 14.55963134765625
            - 46.29191774991382
        geometry:
          $ref: '#/components/schemas/Geometry'
        properties:
          $ref: '#/components/schemas/ProcessRequestInputBoundsProperties'
    ProcessRequestInputBoundsProperties:
      title: BoundsProperties
      type: object
      properties:
        crs:
          description: >
            The coordinate reference system of the coordinates. Must be

            one of the values listed at
            https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Process/Crs.html.

            Default CRS is WGS84, http://www.opengis.net/def/crs/OGC/1.3/CRS84.
          type: string
          default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
    ProcessRequestOutput:
      type: object
      properties:
        width:
          description: >
            The request image width. Must be an integer between 1 and 2500.

            <br />*Only one pair of parameters "width"/"height" or "resx"/"resy"
            must

            be set at the same time.*
          type: integer
          format: int32
          minimum: 1
          maximum: 2500
          default: 256
          example: 512
        height:
          description: >
            The request image height. Must be an integer between 1 and 2500.

            <br />*Only one pair of parameters "width"/"height" or "resx"/"resy"
            must

            be set at the same time.*
          type: integer
          format: int32
          minimum: 1
          maximum: 2500
          default: 256
          example: 512
        resx:
          description: >
            Spatial resolution of the request image in a horizontal direction.

            Its units are defined by the CRS given in
            "input.bounds.properties.crs"

            parameter. <br />*Only one pair of parameters "width"/"height" or
            "resx"/"resy"

            must be set at the same time.*
          type: number
          format: double
        resy:
          description: >
            Spatial resolution of the request image in a vertical direction.

            Its units are defined by the CRS given in
            "input.bounds.properties.crs"

            parameter. <br />*Only one pair of parameters "width"/"height" or
            "resx"/"resy"

            must be set at the same time.*
          type: number
          format: double
        responses:
          type: array
          description: |
            Response object(s). <br/>
            If you request multiple responses, set the `Accept` header to
            `application/tar`, `application/x-tar` or `multipart/mixed`.
          items:
            $ref: '#/components/schemas/ProcessRequestOutputResponse'
    ProcessRequestOutputResponse:
      type: object
      properties:
        identifier:
          type: string
          description: >
            Response's identifier is used to connect the results of an
            evalscript with the output file.

            Each response identifier value must either match one of the values
            in `setup()` -> `output.id` in the evalscript (see <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Process/Examples/S2L1C.html#ndvi-image-and-value-multi-part-response-png-and-geotiff"
            target="_blank">example</a>)

            or be `userdata` (see <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Process/Examples/S2L1C.html#true-color-and-metadata-multi-part-response-geotiff-and-json"
            target="_blank">example</a>).
          enum:
            - <identifier>
            - userdata
        format:
          description: Format object (default is `image/png`).
          type: object
          oneOf:
            - $ref: '#/components/schemas/ProcessRequestOutputFormatPng'
            - $ref: '#/components/schemas/ProcessRequestOutputFormatJpeg'
            - $ref: '#/components/schemas/ProcessRequestOutputFormatTiff'
            - $ref: '#/components/schemas/ProcessRequestOutputFormatJson'
    ProcessRequestOutputFormat:
      type: object
      properties:
        type:
          type: string
          description: Output format mime-type
    ProcessRequestOutputFormatJpeg:
      title: image/jpeg
      type: object
      allOf:
        - $ref: '#/components/schemas/ProcessRequestOutputFormat'
        - type: object
          properties:
            quality:
              description: Quality level of JPEG compression.
              type: integer
              format: int32
              minimum: 0
              maximum: 100
              default: 90
            type:
              type: string
              enum:
                - image/jpeg
    ProcessRequestOutputFormatPng:
      title: image/png
      type: object
      allOf:
        - $ref: '#/components/schemas/ProcessRequestOutputFormat'
        - type: object
          properties:
            type:
              type: string
              enum:
                - image/png
    ProcessRequestOutputFormatTiff:
      title: image/tiff
      type: object
      allOf:
        - $ref: '#/components/schemas/ProcessRequestOutputFormat'
        - type: object
          properties:
            type:
              type: string
              enum:
                - image/tiff
    ProcessRequestOutputFormatJson:
      title: application/json
      type: object
      allOf:
        - $ref: '#/components/schemas/ProcessRequestOutputFormat'
        - type: object
          properties:
            type:
              type: string
              enum:
                - application/json
    ProcessRequestOutputFormatZarr:
      title: zarr/array
      type: object
      allOf:
        - $ref: '#/components/schemas/ProcessRequestOutputFormat'
        - type: object
          properties:
            type:
              type: string
              enum:
                - zarr/array
    CatalogException:
      title: exception
      type: object
      description: >-
        Information about the exception: an error code plus an optional
        description.
      required:
        - code
      properties:
        code:
          type: string
        description:
          type: string
    CatalogConformanceClasses:
      title: conformanceClasses
      type: object
      required:
        - conformsTo
      properties:
        conformsTo:
          description: >-
            A list of all conformance classes implemented by the server. In
            addition to the STAC-specific conformance classes, all OGC-related
            conformance classes listed at `GET /conformances` must be listed
            here. This entry should mirror what `GET /conformances` returns, if
            implemented.
          type: array
          items:
            type: string
    CatalogCatalog:
      title: catalog
      type: object
      required:
        - stac_version
        - type
        - id
        - description
        - links
      properties:
        stac_version:
          $ref: '#/components/schemas/CatalogStacVersion'
        stac_extensions:
          $ref: '#/components/schemas/CatalogStacExtensions'
        type:
          type: string
        id:
          type: string
        title:
          type: string
        description:
          type: string
        links:
          $ref: '#/components/schemas/CatalogLinks'
    CatalogCollection:
      title: collection
      type: object
      required:
        - stac_version
        - type
        - id
        - description
        - license
        - extent
        - links
      properties:
        stac_version:
          $ref: '#/components/schemas/CatalogStacVersion'
        stac_extensions:
          $ref: '#/components/schemas/CatalogStacExtensions'
        type:
          type: string
        id:
          description: identifier of the collection used, for example, in URIs
          type: string
        title:
          description: human readable title of the collection
          type: string
        description:
          type: string
          description: >-
            Detailed multi-line description to fully explain the catalog or
            collection.

            [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for
            rich text representation.
        keywords:
          type: array
          description: List of keywords describing the collection.
          items:
            type: string
        license:
          $ref: '#/components/schemas/CatalogLicense'
        extent:
          $ref: '#/components/schemas/CatalogExtent'
        providers:
          $ref: '#/components/schemas/CatalogProviders'
        links:
          $ref: '#/components/schemas/CatalogLinks'
        summaries:
          description: |-
            Summaries are either a unique set of all available values *or*
            statistics. Statistics by default only specify the range (minimum
            and maximum values), but can optionally be accompanied by additional
            statistical values. The range can specify the potential range of
            values, but it is recommended to be as precise as possible. The set
            of values must contain at least one element and it is strongly
            recommended to list all values. It is recommended to list as many
            properties as reasonable so that consumers get a full overview of
            the Collection. Properties that are covered by the Collection
            specification (e.g. `providers` and `license`) may not be repeated
            in the summaries.
          type: object
          additionalProperties:
            oneOf:
              - type: array
                title: Set of values
                items:
                  description: A value of any type.
              - type: object
                title: Statistics
                description: |-
                  By default, only ranges with a minimum and a maximum value can
                  be specified. Ranges can be specified for ordinal values only,
                  which means they need to have a rank order. Therefore, ranges
                  can only be specified for numbers and some special types of
                  strings. Examples: grades (A to F), dates or times.
                  Implementors are free to add other derived statistical values
                  to the object, for example `mean` or `stddev`.
                required:
                  - min
                  - max
                properties:
                  min:
                    anyOf:
                      - type: string
                      - type: number
                  max:
                    anyOf:
                      - type: string
                      - type: number
    CatalogExtent:
      title: extent
      type: object
      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.


        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 item in each array.
      required:
        - spatial
        - temporal
      properties:
        spatial:
          description: The spatial extent of the features in the collection.
          type: object
          required:
            - bbox
          properties:
            bbox:
              description: >-
                One or more bounding boxes that describe the spatial extent of
                the dataset.


                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 item in each 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)


                  The coordinate reference system of the values is WGS 84
                  longitude/latitude

                  (http://www.opengis.net/def/crs/OGC/1.3/CRS84).


                  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
                minItems: 4
                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 this is the only supported coordinate reference
                system.

                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
              default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
        temporal:
          description: The temporal extent of the features in the collection.
          type: object
          required:
            - interval
          properties:
            interval:
              description: >-
                One or more time intervals that describe the temporal extent of
                the dataset.


                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 extent will only need

                to access the first item in each array.
              type: array
              minItems: 1
              items:
                description: >-
                  Begin and end times of the time interval. The timestamps

                  are in the coordinate reference system specified in `trs`. By
                  default

                  this is the Gregorian calendar.


                  The value `null` is supported and indicates an open time
                  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 reference
                system.

                Extensions may support additional temporal 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
    CatalogLinks:
      title: links
      type: array
      items:
        $ref: '#/components/schemas/CatalogLink'
    CatalogLink:
      title: Link
      type: object
      required:
        - href
        - rel
      properties:
        href:
          type: string
          format: uri
          description: The location of the resource
        rel:
          type: string
          description: Relation type of the link
        type:
          type: string
          description: The media type of the resource
        title:
          type: string
          description: Title of the resource
        method:
          type: string
          enum:
            - GET
            - POST
          default: GET
          description: Specifies the HTTP method that the resource expects
        headers:
          type: object
          description: Object key values pairs they map to headers
          example:
            Accept: application/json
        body:
          type: object
          description: >-
            For POST requests, the resource can specify the HTTP body as a JSON
            object.
        merge:
          type: boolean
          default: false
          description: |-
            This is only valid when the server is responding to POST request.

            If merge is true, the client is expected to merge the body value
            into the current request body before following the link.
            This avoids passing large post bodies back and forth when following
            links, particularly for navigating pages through the `POST /search`
            endpoint.

            NOTE: To support form encoding it is expected that a client be able
            to merge in the key value pairs specified as JSON
            `{"next": "token"}` will become `&next=token`.
    CatalogLicense:
      title: license
      type: string
      description: |-
        License(s) of the data as a SPDX
        [License identifier](https://spdx.org/licenses/). Alternatively, use
        `proprietary` if the license is not on the SPDX license list or
        `various` if multiple licenses apply. In these two cases links to the
        license texts SHOULD be added, see the `license` link relation type.

        Non-SPDX licenses SHOULD add a link to the license text with the
        `license` relation in the links section. The license text MUST NOT be
        provided as a value of this field. If there is no public license URL
        available, it is RECOMMENDED to host the license text and
        link to it.
      example: Apache-2.0
    CatalogProviders:
      title: providers
      type: array
      description: >-
        A list of providers, which may include all organizations capturing or
        processing the data or the hosting provider. Providers should be listed
        in chronological order with the most recent provider being the last
        element of the list.
      items:
        type: object
        title: Provider
        required:
          - name
        properties:
          name:
            description: The name of the organization or the individual.
            type: string
          description:
            description: >-
              Multi-line description to add further provider information such as
              processing details for processors and producers, hosting details
              for hosts or basic contact information.


              [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for
              rich text representation.
            type: string
          roles:
            description: |-
              Roles of the provider.

              The provider's role(s) can be one or more of the following
              elements:

              * licensor: The organization that is licensing the dataset under
                the license specified in the collection's license field.
              * producer: The producer of the data is the provider that
                initially captured and processed the source data, e.g. ESA for
                Sentinel-2 data.
              * processor: A processor is any provider who processed data to a
                derived product.
              * host: The host is the actual provider offering the data on their
                storage. There should be no more than one host, specified as last
                element of the list.
            type: array
            items:
              type: string
              enum:
                - producer
                - licensor
                - processor
                - host
          url:
            description: >-
              Homepage on which the provider describes the dataset and publishes
              contact information.
            type: string
            format: url
    CatalogBbox:
      title: bbox
      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).

        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.

        Example: The bounding box of the New Zealand Exclusive Economic Zone in
        WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be
        represented in JSON as `[160.6, -55.95, -170, -25.89]` and in a query as
        `bbox=160.6,-55.95,-170,-25.89`.
      type: array
      minItems: 4
      maxItems: 6
      items:
        type: number
      example:
        - -110
        - 39.5
        - -105
        - 40.5
    CatalogDatetime:
      title: datetime
      type: string
      format: date-time
      nullable: true
      description: >-
        The searchable date and time of the assets, in UTC.

        It is formatted according to [RFC 3339, section
        5.6](https://tools.ietf.org/html/rfc3339#section-5.6).

        `null` is allowed, but requires `start_datetime` and `end_datetime` from
        common metadata to be set.
      example: '2018-02-12T00:00:00Z'
    CatalogStacVersion:
      title: STAC version
      type: string
      example: 1.0.0
    CatalogStacExtensions:
      title: STAC extensions
      type: array
      uniqueItems: true
      items:
        anyOf:
          - title: Reference to a JSON Schema
            type: string
            format: uri
          - title: Reference to a core extension
            type: string
    CatalogItem:
      title: item
      description: >-
        A GeoJSON Feature augmented with foreign members that contain values
        relevant to a STAC entity
      type: object
      required:
        - stac_version
        - id
        - type
        - geometry
        - bbox
        - links
        - properties
        - assets
      properties:
        stac_version:
          $ref: '#/components/schemas/CatalogStacVersion'
        stac_extensions:
          $ref: '#/components/schemas/CatalogStacExtensions'
        id:
          $ref: '#/components/schemas/CatalogItemId'
        bbox:
          $ref: '#/components/schemas/CatalogBbox'
        geometry:
          $ref: '#/components/schemas/CatalogGeometryGeoJSON'
        type:
          $ref: '#/components/schemas/CatalogItemType'
        links:
          $ref: '#/components/schemas/CatalogLinks'
        properties:
          $ref: '#/components/schemas/CatalogProperties'
        assets:
          $ref: '#/components/schemas/CatalogAssets'
      example:
        stac_version: 1.0.0
        stac_extensions:
          - https://stac-extensions.github.io/eo/v1.0.0/schema.json
          - https://stac-extensions.github.io/view/v1.0.0/schema.json
        type: Feature
        id: CS3-20160503_132131_05
        bbox:
          - -122.59750209
          - 37.48803556
          - -122.2880486
          - 37.613537207
        geometry:
          type: Polygon
          coordinates:
            - - - -122.308150179
                - 37.488035566
              - - -122.597502109
                - 37.538869539
              - - -122.576687533
                - 37.613537207
              - - -122.2880486
                - 37.562818007
              - - -122.308150179
                - 37.488035566
        properties:
          datetime: '2016-05-03T13:22:30.040Z'
          title: A CS3 item
          license: PDDL-1.0
          providers:
            - name: CoolSat
              roles:
                - producer
                - licensor
              url: https://cool-sat.com/
          view:sun_azimuth: 168.7
          eo:cloud_cover: 0.12
          view:off_nadir: 1.4
          platform: coolsat2
          instruments:
            - cool_sensor_v1
          eo:bands: []
          view:sun_elevation: 33.4
          eo:gsd: 0.512
        collection: CS3
        links:
          - rel: self
            href: http://cool-sat.com/collections/CS3/items/20160503_132130_04
          - rel: root
            href: http://cool-sat.com/collections
          - rel: parent
            href: http://cool-sat.com/collections/CS3
          - rel: collection
            href: http://cool-sat.com/collections/CS3
        assets:
          analytic:
            href: >-
              http://cool-sat.com/static-catalog/CS3/20160503_132130_04/analytic.tif
            title: 4-Band Analytic
          thumbnail:
            href: >-
              http://cool-sat.com/static-catalog/CS3/20160503_132130_04/thumbnail.png
            title: Thumbnail
    CatalogItemId:
      title: itemId
      type: string
      description: Provider identifier, a unique ID.
    CatalogItemType:
      title: itemType
      type: string
      description: The GeoJSON type
      enum:
        - Feature
    CatalogProperties:
      title: properties
      type: object
      required:
        - datetime
      description: provides the core metadata fields plus extensions
      properties:
        datetime:
          $ref: '#/components/schemas/CatalogDatetime'
      additionalProperties:
        description: >-
          Any additional properties added in via Item specification or
          extensions.
    CatalogAssets:
      title: assets
      type: object
      additionalProperties:
        type: object
        required:
          - href
        properties:
          href:
            type: string
            format: url
            description: Link to the asset object
          title:
            type: string
            description: Displayed title
            example: Thumbnail
          description:
            type: string
            description: >-
              Multi-line description to explain the asset.


              [CommonMark 0.29](http://commonmark.org/) syntax MAY be used for
              rich text representation.
            example: Small 256x256px PNG thumbnail for a preview.
          type:
            type: string
            description: Media type of the asset
            example: image/png
          roles:
            type: array
            items:
              type: string
            description: Purposes of the asset
            example:
              - thumbnail
    CatalogGeometryGeoJSON:
      title: geometryGeoJSON
      oneOf:
        - $ref: '#/components/schemas/CatalogPointGeoJSON'
        - $ref: '#/components/schemas/CatalogMultipointGeoJSON'
        - $ref: '#/components/schemas/CatalogLinestringGeoJSON'
        - $ref: '#/components/schemas/CatalogMultilinestringGeoJSON'
        - $ref: '#/components/schemas/CatalogPolygonGeoJSON'
        - $ref: '#/components/schemas/CatalogMultipolygonGeoJSON'
        - $ref: '#/components/schemas/CatalogGeometrycollectionGeoJSON'
    CatalogGeometrycollectionGeoJSON:
      title: geometrycollectionGeoJSON
      type: object
      required:
        - type
        - geometries
      properties:
        type:
          type: string
          enum:
            - GeometryCollection
        geometries:
          type: array
          items:
            $ref: '#/components/schemas/CatalogGeometryGeoJSON'
    CatalogLinestringGeoJSON:
      title: linestringGeoJSON
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - LineString
        coordinates:
          type: array
          minItems: 2
          items:
            type: array
            minItems: 2
            items:
              type: number
    CatalogMultilinestringGeoJSON:
      title: multilinestringGeoJSON
      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
    CatalogMultipointGeoJSON:
      title: multipointGeoJSON
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - MultiPoint
        coordinates:
          type: array
          items:
            type: array
            minItems: 2
            items:
              type: number
    CatalogMultipolygonGeoJSON:
      title: multipolygonGeoJSON
      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
    CatalogPointGeoJSON:
      title: pointGeoJSON
      type: object
      required:
        - type
        - coordinates
      properties:
        type:
          type: string
          enum:
            - Point
        coordinates:
          type: array
          minItems: 2
          items:
            type: number
    CatalogPolygonGeoJSON:
      title: polygonGeoJSON
      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
    CatalogFeatureCollectionGeoJSON:
      title: featureCollectionGeoJSON
      type: object
      required:
        - type
        - features
      properties:
        type:
          type: string
          enum:
            - FeatureCollection
        features:
          type: array
          items:
            $ref: '#/components/schemas/CatalogFeatureGeoJSON'
    CatalogFeatureGeoJSON:
      title: featureGeoJSON
      type: object
      required:
        - type
        - geometry
        - properties
      properties:
        type:
          type: string
          enum:
            - Feature
        geometry:
          $ref: '#/components/schemas/CatalogGeometryGeoJSON'
        properties:
          type: object
          nullable: true
    CatalogCoreLandingPage:
      allOf:
        - $ref: '#/components/schemas/CatalogCatalog'
        - $ref: '#/components/schemas/CatalogConformanceClasses'
    CatalogCollectionsCollections:
      title: collections
      type: object
      required:
        - links
        - collections
      properties:
        links:
          $ref: '#/components/schemas/CatalogLinks'
        collections:
          type: array
          items:
            $ref: '#/components/schemas/CatalogCollection'
    CatalogFeaturesFeatureCollectionGeoJSON:
      title: featureCollectionGeoJSON
      allOf:
        - $ref: '#/components/schemas/CatalogFeatureCollectionGeoJSON'
        - type: object
          required:
            - features
          properties:
            features:
              type: array
              items:
                $ref: '#/components/schemas/CatalogItem'
            links:
              $ref: '#/components/schemas/CatalogLinks'
            timeStamp:
              $ref: '#/components/schemas/CatalogFeaturesTimeStamp'
            numberReturned:
              $ref: '#/components/schemas/CatalogFeaturesNumberReturned'
    CatalogFeaturesNumberReturned:
      title: numberReturned
      description: |-
        The number of features in the feature collection.

        A server may omit this information in a response, if the information
        about the number of features is not known or difficult to compute.

        If the value is provided, the value must be identical to the number
        of items in the "features" array.
      type: integer
      minimum: 0
      example: 10
    CatalogFeaturesTimeStamp:
      title: timeStamp
      description: >-
        This property indicates the time and date when the response was
        generated.
      type: string
      format: date-time
      example: '2017-08-17T08:05:32Z'
    CatalogItemSearchFieldsSearchBody:
      title: searchBody
      type: object
      x-stac-api-fragment: fields
      description: |-
        **Extension:** Fields

        Determines the shape of the features in the response
      properties:
        fields:
          $ref: '#/components/schemas/CatalogItemSearchFieldsFields'
    CatalogItemSearchFieldsFields:
      title: fields
      description: |
        The include and exclude members specify an array of
        property names that are either included or excluded
        from the result, respectively. If both include and
        exclude are specified, include takes precedence.
        Values should include the full JSON path of the property.
      type: object
      properties:
        include:
          type: array
          items:
            type: string
        exclude:
          type: array
          items:
            type: string
      example:
        include:
          - id
          - properties.eo:cloud_cover
        exclude:
          - geometry
          - properties.datetime
    CatalogItemSearchContextItemCollection:
      title: itemCollection
      type: object
      description: >-
        **Extension:** Context


        Augments lists of resources with the number of returned and matches
        resource and the given limit for the request.
      x-stac-api-fragment: context
      properties:
        context:
          type: object
          required:
            - returned
          properties:
            next:
              type: integer
              minimum: 0
              example: 1
            limit:
              type: integer
              minimum: 0
              example: 1
            returned:
              type: integer
              minimum: 0
              example: 1
    CatalogItemSearchItemCollectionItemCollection:
      title: itemCollection
      description: >-
        A GeoJSON FeatureCollection augmented with foreign members that contain
        values relevant to a STAC entity
      type: object
      required:
        - features
        - type
      properties:
        type:
          type: string
          enum:
            - FeatureCollection
        features:
          type: array
          items:
            $ref: '#/components/schemas/CatalogItem'
        links:
          type: array
          description: >-
            An array of links. Can be used for pagination, e.g. by providing a
            link with the `next` relation type.
          items:
            $ref: '#/components/schemas/CatalogLink'
          example:
            - rel: next
              href: >-
                https://sh.dataspace.copernicus.eu/catalog/v1/search?next=10
    Cql2BooleanExpression:
      title: booleanExpression
      oneOf:
        - $ref: '#/components/schemas/Cql2AndExpression'
        - $ref: '#/components/schemas/Cql2NotExpression'
        - $ref: '#/components/schemas/Cql2ComparisonPredicate'
    Cql2AndExpression:
      title: andExpression
      type: object
      required:
        - op
        - args
      properties:
        op:
          type: string
          enum:
            - and
        args:
          type: array
          minItems: 2
          items:
            $ref: '#/components/schemas/Cql2BooleanExpression'
    Cql2NotExpression:
      title: cql2NotExpression
      type: object
      required:
        - op
        - args
      properties:
        op:
          type: string
          enum:
            - not
        args:
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/Cql2BooleanExpression'
    Cql2ComparisonPredicate:
      title: comparisonPredicate
      oneOf:
        - $ref: '#/components/schemas/Cql2BinaryComparisonPredicate'
        - $ref: '#/components/schemas/Cql2IsBetweenPredicate'
    Cql2BinaryComparisonPredicate:
      title: binaryComparisonPredicate
      type: object
      required:
        - op
        - args
      properties:
        op:
          type: string
          enum:
            - '='
            - <
            - '>'
            - <=
            - '>='
            - <>
        args:
          $ref: '#/components/schemas/Cql2ScalarOperands'
    Cql2ScalarOperands:
      title: scalarOperands
      type: array
      minItems: 2
      maxItems: 2
      items:
        $ref: '#/components/schemas/Cql2ScalarExpression'
    Cql2ScalarExpression:
      title: scalarExpression
      oneOf:
        - $ref: '#/components/schemas/Cql2CharacterExpression'
        - $ref: '#/components/schemas/Cql2NumericExpression'
    Cql2IsBetweenPredicate:
      title: isBetweenPredicate
      type: object
      required:
        - op
        - args
      properties:
        op:
          type: string
          enum:
            - between
        args:
          $ref: '#/components/schemas/Cql2IsBetweenOperands'
    Cql2IsBetweenOperands:
      title: isBetweenOperands
      type: array
      minItems: 3
      maxItems: 3
      items:
        $ref: '#/components/schemas/Cql2NumericExpression'
    Cql2NumericExpression:
      title: numericExpression
      oneOf:
        - type: number
        - $ref: '#/components/schemas/Cql2PropertyRef'
    Cql2CharacterExpression:
      title: characterExpression
      oneOf:
        - type: string
        - $ref: '#/components/schemas/Cql2PropertyRef'
    Cql2PropertyRef:
      title: propertyRef
      type: object
      required:
        - property
      properties:
        property:
          type: string
    CatalogItemSearchFilterSearchBody:
      title: searchBody
      type: object
      x-stac-api-fragment: filter
      description: |-
        **Extension:** Filter

        A filter for properties in Items.
      properties:
        filter:
          $ref: '#/components/schemas/CatalogItemSearchFilterFilterCql2Json'
        filter-lang:
          $ref: '#/components/schemas/CatalogItemSearchFilterFilterLang'
        filter-crs:
          $ref: '#/components/schemas/CatalogItemSearchFilterFilterCrs'
    CatalogItemSearchFilterFilterCql2Text:
      title: filter-cql2-text
      description: |
        A CQL2 filter expression in the 'cql2-text' encoding.
      type: string
    CatalogItemSearchFilterFilterCql2Json:
      title: filter-cql2-json
      allOf:
        - $ref: '#/components/schemas/Cql2BooleanExpression'
    CatalogItemSearchFilterFilterLang:
      title: filter-lang
      description: |
        The CQL2 filter encoding that the 'filter' value uses.
      type: string
      enum:
        - cql2-text
        - cql2-json
    CatalogItemSearchFilterFilterCrs:
      title: filter-crs
      description: >
        The coordinate reference system (CRS) used by spatial literals in the
        'filter' value.  The only value that STAC APIs must

        accept is 'http://www.opengis.net/def/crs/OGC/1.3/CRS84'.
      type: string
      format: uri
    CatalogItemSearchDistinctSearchBody:
      title: searchBody
      type: object
      x-stac-api-fragment: distinct
      description: |-
        **Extension:** Distinct

        Return distinct values of specified property.
      properties:
        distinct:
          $ref: '#/components/schemas/CatalogItemSearchDistinctDistinct'
    CatalogItemSearchDistinctDistinct:
      title: distinct
      description: |
        Return distinct values of specified property.
      type: string
    CatalogItemSearchSearchBody:
      title: searchBody
      description: The search criteria
      type: object
      required:
        - datetime
        - collections
      allOf:
        - $ref: '#/components/schemas/CatalogItemSearchBboxFilter'
        - $ref: '#/components/schemas/CatalogItemSearchDatetimeFilter'
        - $ref: '#/components/schemas/CatalogItemSearchIntersectsFilter'
        - $ref: '#/components/schemas/CatalogItemSearchCollectionsFilter'
        - $ref: '#/components/schemas/CatalogItemSearchIdsFilter'
        - $ref: '#/components/schemas/CatalogItemSearchLimitFilter'
    CatalogItemSearchLimit:
      title: limit
      type: integer
      minimum: 1
      example: 10
      default: 10
      maximum: 100
      description: >-
        The optional limit parameter limits the number of items that are
        presented in the response document.


        If the limit parameter value is greater than advertised limit maximum,
        the server must return the

        maximum possible number of items, rather than responding with an error.


        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 must not
        be counted.


        Minimum = 1. Maximum = 100. Default = 10.
    CatalogItemSearchBboxFilter:
      title: bboxFilter
      type: object
      description: Only return items that intersect the provided bounding box.
      properties:
        bbox:
          $ref: '#/components/schemas/CatalogBbox'
    CatalogItemSearchCollectionsArray:
      title: collectionsArray
      type: array
      description: |-
        Array of Collection IDs to include in the search for items.
        Only Item objects in one of the provided collections will be searched.
      items:
        type: string
      minItems: 1
      maxItems: 1
    CatalogItemSearchIds:
      title: ids
      type: array
      description: Array of Item ids to return.
      items:
        type: string
    CatalogItemSearchDatetimeFilter:
      title: datetimeFilter
      description: An object representing a date+time based filter.
      type: object
      properties:
        datetime:
          $ref: '#/components/schemas/CatalogItemSearchDatetimeInterval'
    CatalogItemSearchIntersectsFilter:
      title: intersectsFilter
      type: object
      description: Only returns items that intersect with the provided polygon.
      properties:
        intersects:
          $ref: '#/components/schemas/CatalogGeometryGeoJSON'
    CatalogItemSearchLimitFilter:
      title: limitFilter
      type: object
      description: Only returns maximum number of results (page size)
      properties:
        limit:
          $ref: '#/components/schemas/CatalogItemSearchLimit'
    CatalogItemSearchIdsFilter:
      title: idsFilter
      type: object
      description: Only returns items that match the array of given ids
      properties:
        ids:
          $ref: '#/components/schemas/CatalogItemSearchIds'
    CatalogItemSearchCollectionsFilter:
      title: collectionsFilter
      type: object
      description: Only returns the collections specified
      properties:
        collections:
          $ref: '#/components/schemas/CatalogItemSearchCollectionsArray'
    CatalogItemSearchDatetimeInterval:
      title: datetimeInterval
      type: string
      description: >-
        Either a date-time or an interval, open or closed. Date and time
        expressions

        adhere to RFC 3339. Open intervals are expressed using double-dots.


        Examples:


        * A date-time: "2018-02-12T23:20:50Z"

        * A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z"

        * Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z"


        Only features that have a temporal property that intersects the value of

        `datetime` 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.
      example: 2018-02-12T00:00:00Z/2018-03-18T12:31:12Z
    AsyncProcessRequest:
      type: object
      required:
        - input
        - output
      properties:
        input:
          $ref: '#/components/schemas/ProcessRequestInput'
        output:
          $ref: '#/components/schemas/AsyncProcessRequestOutput'
        evalscript:
          description: >
            Your evalscript. For details, click

            <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
            target="_blank">here</a>.


            Either this or `evalscriptReference` parameter is required.
          type: string
        evalscriptReference:
          description: >
            Reference to your evalscript stored in an object storage. For
            details, click

            <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
            target="_blank">here</a>.


            Either this or `evalscript` parameter is required.
          $ref: '#/components/schemas/ObjectStorageInfo'
    AsyncProcessRequestOutput:
      type: object
      required:
        - delivery
      properties:
        width:
          description: >
            The request image width. Must be an integer between 1 and 10000.

            <br />*Only one pair of parameters "width"/"height" or "resx"/"resy"
            must

            be set at the same time.*
          type: integer
          format: int32
          minimum: 1
          maximum: 10000
          example: 512
        height:
          description: >
            The request image height. Must be an integer between 1 and 10000.

            <br />*Only one pair of parameters "width"/"height" or "resx"/"resy"
            must

            be set at the same time.*
          type: integer
          format: int32
          minimum: 1
          maximum: 10000
          example: 512
        resx:
          description: >
            Spatial resolution of the request image in a horizontal direction.

            Its units are defined by the CRS given in
            "input.bounds.properties.crs"

            parameter. <br />*Only one pair of parameters "width"/"height" or
            "resx"/"resy"

            must be set at the same time.*
          type: number
          format: double
        resy:
          description: >
            Spatial resolution of the request image in a vertical direction.

            Its units are defined by the CRS given in
            "input.bounds.properties.crs"

            parameter. <br />*Only one pair of parameters "width"/"height" or
            "resx"/"resy"

            must be set at the same time.*
          type: number
          format: double
        responses:
          type: array
          description: |
            Response object(s). <br/>
          items:
            $ref: '#/components/schemas/ProcessRequestOutputResponse'
        delivery:
          $ref: '#/components/schemas/AsyncProcessOutputDelivery'
    AsyncStatusResponse:
      type: object
      properties:
        id:
          description: UUID of the submitted request
          format: UUID
          type: string
        status:
          description: Status of the request
          type: string
          enum:
            - RUNNING
    AsyncProcessOutputDelivery:
      type: object
      required:
        - s3
      properties:
        s3:
          $ref: '#/components/schemas/AsyncProcessS3BucketInfoTemplated'
    AsyncProcessS3BucketInfoTemplated:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          description: >-
            A URL or URL template specifying where the results shall be written.
            Supported formats: <ul> <li>a valid S3 URL, e.g.
            `s3://my-personal-bucket/some-folder`. A subdirectory will be
            created for this statistical batch request, named after the request
            ID, and output JSON files will be stored there. This is equivalent
            to the template
            `s3://my-personal-bucket/some-folder/<REQUEST_ID>/<ID>.json`. </li>
            <li>a templated S3 URL, e.g.
            `s3://my-personal-bucket/some-folder/<ID>.json`. Templating allows
            custom organization of the output files. Templates can contain the
            following placeholders, which are replaced by respective actual
            values when writing results: <ul> <li> `<REQUEST_ID>` - the ID of
            your statistical batch request,</li> <li> `<ID>` - the `id` property
            of the feature,</li> <li> `<IDENTIFIER>` - the `identifier` property
            of the feature.</li> </ul> The template must contain `<ID>` or
            `<IDENTIFIER>` in order to ensure unique output files. </li> </ul>
        accessKey:
          type: string
          description: >-
            access key, which allows programmatic access to the S3 bucket
            specified in the `url` field.
        secretAccessKey:
          type: string
          description: secret access key which must correspond to the access key.
        region:
          type: string
          description: >-
            The region where the S3 bucket is located. If omitted, the region of
            the Sentinel Hub deployment that the request is submitted to is
            assumed.
    BatchV2ProcessRequest:
      required:
        - processRequest
        - output
        - input
      type: object
      properties:
        processRequest:
          $ref: '#/components/schemas/ProcessRequestForBatchV2'
        input:
          $ref: '#/components/schemas/BatchV2ProcessInput'
        output:
          $ref: '#/components/schemas/BatchV2ProcessOutput'
        instanceType:
          $ref: '#/components/schemas/InstanceType'
        description:
          description: Optional description that can be used to keep track of requests
          type: string
    MultiPartBatchV2Request:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/BatchV2ProcessRequest'
        evalscript:
          description: Block of JavaScript code.
          type: string
    BatchV2ProcessTask:
      type: object
      properties:
        id:
          description: Unique identifier of the request
          type: string
          format: uuid
        request:
          $ref: '#/components/schemas/BatchV2ProcessRequest'
        domainAccountId:
          description: Account that submitted the request
          type: string
          format: uuid
        status:
          description: Current processing status of the request
          type: string
          enum:
            - CREATED
            - ANALYSING
            - ANALYSIS_DONE
            - PROCESSING
            - DONE
            - FAILED
            - STOPPED
        error:
          description: >-
            Error description for requests that were submitted but failed during
            analysis or processing
          type: string
        userAction:
          description: Last user action on the request
          type: string
          enum:
            - NONE
            - ANALYSE
            - START
            - STOP
        userActionUpdated:
          description: Time of last user action update in ISO 8601
          type: string
          format: date-time
        created:
          description: Creation time of the request in ISO 8601
          type: string
          format: date-time
        completionPercentage:
          type: number
        lastUpdated:
          description: Last updated time of the request in ISO 8601
          type: string
          format: date-time
        costPU:
          type: number
        stoppedStatusReason:
          description: Description of why job status is STOPPED
          type: string
          enum:
            - OUT_OF_PU
            - USER_ACTION
            - UNHEALTHY
    ProcessRequestOutputBatchV2Response:
      type: object
      required:
        - format
      properties:
        identifier:
          type: string
          description: >
            Response's identifier is used to connect the results of an
            evalscript with the output file.

            Each response identifier value must either match one of the values
            in `setup()` -> `output.id` in the evalscript (see <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Process/Examples/S2L1C.html#ndvi-image-and-value-multi-part-response-png-and-geotiff"
            target="_blank">example</a>)

            or be `userdata` (see <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Process/Examples/S2L1C.html#true-color-and-metadata-multi-part-response-geotiff-and-json"
            target="_blank">example</a>).
          enum:
            - <identifier>
            - userdata
        format:
          description: |
            Format object
          type: object
          oneOf:
            - $ref: '#/components/schemas/ProcessRequestOutputFormatTiff'
            - $ref: '#/components/schemas/ProcessRequestOutputFormatJson'
            - $ref: '#/components/schemas/ProcessRequestOutputFormatZarr'
    BatchV2ProcessRequestUpdatePayload:
      type: object
      properties:
        description:
          description: >
            Optional description that can be used to keep track of requests. If
            omitted, the description will not be changed.
          type: string
    BatchV2TilingGridInput:
      title: TilingGridInput
      required:
        - id
        - resolution
        - type
      properties:
        type:
          type: string
          enum:
            - tiling-grid
        id:
          description: Id of one of the supported tiling grids
          type: integer
          format: int64
        resolution:
          description: Output resolution in units of the tiling grid
          type: number
          format: double
        bufferX:
          description: >
            Will expand each output tile horizontally (on the left and the
            right) by number of pixels specified by this value. <br><br>
            <b>Example:</b> <br> If bufferX is 5, the output tile will be wider
            by 10 pixels. Coordinates of the tile are also moved accordingly by
            the number of pixels multiplied by resolution in each direction.
          type: integer
          format: int16
        bufferY:
          description: >
            Will expand each output tile vertically (on the top and the bottom)
            by number of pixels specified by this value. See `bufferX` above for
            an example.
          type: integer
          format: int16
    BatchV2ProcessOutput:
      title: ProcessOutput
      description: >
        Parameters that will be used for all output arrays, except where
        overriden with `arrayOverrides`. Required unless `arrayOverrides`
        includes all required fields for all output arrays. All fields are
        standard Zarr fields. Further information can be found on the link
        below.
      oneOf:
        - $ref: '#/components/schemas/BatchV2RasterOutput'
        - $ref: '#/components/schemas/BatchV2ZarrOutput'
    BatchV2ProcessInput:
      title: ProcessInput
      oneOf:
        - $ref: '#/components/schemas/BatchV2GeoPackageInput'
        - $ref: '#/components/schemas/BatchV2TilingGridInput'
    BatchV2RasterOutput:
      title: RasterOutput
      type: object
      required:
        - delivery
        - group
        - type
      properties:
        type:
          type: string
          enum:
            - raster
        delivery:
          description: >-
            Path or path template specifying where batch processing results
            shall be stored. Supported formats: <ul> <li>a valid S3 URL, e.g.
            `s3://some-bucket/some/folder`.<br/> A subdirectory will be created
            for this batch request, named after the request ID, and will contain
            further subdirectories with the output tiles. This is equivalent to
            the template
            `s3://some-bucket/some/folder/<requestId>/<tileName>/<outputId>.<format>`.
            </li> <li>a templated S3 URL, e.g.
            `s3://some-bucket/some/folder/<tileName>.tif`. Templating allows
            custom organization of the output files. Templates can contain the
            following placeholders, which are replaced by respective actual
            values when writing results: <ul> <li> `<requestId>` - the ID of
            your batch request,</li> <li> `<tileName>` - the name (string ID) of
            the tile within the used tiling grid,</li> <li> `<tileId>` - the
            numerical ID of the tile within the used tiling grid,</li> <li>
            `<outputId>` - the output (raster) identifier (e.g. `default`),</li>
            <li> `<format>` - the filename extension of the output's format
            (e.g. `tiff`).</li> </ul> The template must contain `<tileName>` or
            `<tileId>` in order to ensure unique output files. In case of
            multiple outputs, the template must also contain `<outputId>`. </li>
            </ul> The request will fail if files already exist.
          $ref: '#/components/schemas/ObjectStorageInfo'
        overwrite:
          description: >
            If `true`, the request will **never** fail if files already exist.
            Instead, any existing files will be overwritten, except if
            `skipExisting` is `true` and **all** outputs for a tile exist.
          default: false
          type: boolean
        skipExisting:
          description: >
            If `true`, any tiles for which **all** outputs already exist will be
            skipped. Tiles for which only **some** of the outputs exist will
            either be *fully overwritten* (if `overwrite` is `true`) or will
            cause the whole request to fail.
          default: false
          type: boolean
        cogOutput:
          description: >-
            If `true`, the results will be written as COG (cloud optimized
            GeoTIFFs). All outputs must use the TIFF format and **cannot** use
            `sampleType` INT8. We also suggest setting the evalscript output
            object `nodataValue` (<a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html#output-object-properties"
            target="_blank">more details</a>) for correct overview generation.
          default: false
          type: boolean
        cogParameters:
          $ref: '#/components/schemas/BatchV2CogParameters'
        createCollection:
          description: >-
            If `true`, the results will be written as BYOC tiles into a BYOC
            collection. When `collectionId` is not provided, a new collection
            will be created. Make sure the `cogOutput` = true  and that the
            output format is a `image/tiff`. The data will still be stored into
            users S3 bucket and linked as BYOC tiles. Make sure to allow full
            access to Sentinel Hub from the bucket in order for BYOC to be able
            to read the data (<a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/BatchV2.html#mandatory-bucket-settings"
            target="_blank">more details</a>).
          default: false
          type: boolean
        collectionId:
          description: >-
            Id of an existing BYOC collection into which the processing results
            will be ingested.
          type: uuid
    ObjectStorageInfo:
      type: object
      required:
        - s3
        - s3
      properties:
        s3:
          $ref: '#/components/schemas/S3BucketInfo'
    S3BucketInfo:
      type: object
      required:
        - url
        - url
      properties:
        url:
          type: string
          description: >-
            A URL pointing to an S3 bucket or an object in an S3 bucket. It can
            contain prefixes, e.g. `s3://my-personal-bucket/some-folder` or
            `s3://my-personal-bucket/some-folder/some-file.gpk`.
        accessKey:
          type: string
          description: >-
            access key, which allows programmatic access to the S3 bucket
            specified in the `url` field.
        secretAccessKey:
          type: string
          description: secret access key which must correspond to the access key.
        regin:
          type: string
          description: >-
            The region where the S3 bucket is located. If omitted, the region of
            the deployment that the request is submitted to is assumed.
    BatchV2CogParameters:
      description: |
        Allows to specify COG creation parameters.
      type: object
      properties:
        overviewLevels:
          description: >-
            Corresponds to the *levels* parameter of
            [gdaladdo](https://gdal.org/programs/gdaladdo.html).
          type: array
          items:
            type: integer
        overviewMinSize:
          description: >
            Corresponds to the *minsize* parameter of
            [gdaladdo](https://gdal.org/programs/gdaladdo.html).

            Default value minimum of blockxsize and blockysize
          type: integer
        resamplingAlgorithm:
          type: string
          enum:
            - nearest
            - average
            - gauss
            - cubic
            - cubicspline
            - lanczos
            - average_magphase
            - mode
          description: >-
            Corresponds to the value of the *-r* parameter of
            [gdaladdo](https://gdal.org/programs/gdaladdo.html).
          default: average
        blockxsize:
          description: >-
            Corresponds to the *BLOCKXSIZE* parameter of [GDAL GTiff raster
            driver](https://gdal.org/drivers/raster/gtiff.html).
          type: integer
          default: 1024
        blockysize:
          description: >-
            Corresponds to the *BLOCKYSIZE* parameter of [GDAL GTiff raster
            driver](https://gdal.org/drivers/raster/gtiff.html).
          type: integer
          default: 1024
        usePredictor:
          description: >
            Whether predictor should be used for TIFF compression. If true, the
            predictor "2" will be passed to [GDAL GTiff raster
            driver](https://gdal.org/drivers/raster/gtiff.html) in case of
            integer output and "3" for FLOAT32 output. If false, the value "1"
            (no predictor) will be used.
          type: boolean
          default: true
    BatchV2ZarrOutput:
      title: ZarrOutput
      description: |
        Specifies Zarr creation parameters.

        If this parameter is specified, all outputs in processRequest **must**
        be of the type zarr/array and `output` can not be specified.
        With Zarr output **only** WGS84 and LAEA grids **are supported**.
      required:
        - delivery
        - group
        - type
      properties:
        type:
          type: string
          enum:
            - zarr
        delivery:
          description: >-
            Path or path template specifying where batch processing results
            shall be stored. Supported formats: <ul> <li>a valid S3 URL, e.g.
            `s3://some-bucket/some/folder`.<br/> The output Zarr will be stored
            to this folder (prefix). The request will fail if any files already
            exist in the folder. </li> <li>a templated S3 URL, e.g.
            `s3://some-bucket/some/folder/<requestId>`. The placeholder
            `<requestId>` will be replaced by the ID of your batch request and
            the output Zarr will be stored there. </li> </ul> The specified path
            <b>must</b> not contain any subfolders or Zarr files such as
            <code>.zattrs</code>, <code>.zgroup</code>, <code>.zmetadata</code>.
          $ref: '#/components/schemas/ObjectStorageInfo'
        group:
          $ref: '#/components/schemas/BatchV2ZarrOutputGroup'
        arrayParameters:
          description: >
            Parameters that will be used for all output arrays, except where
            overriden with `arrayOverrides`. Required unless `arrayOverrides`
            includes all required fields for all output arrays. All fields are
            standard Zarr fields. Further information can be found on the link
            below.
          externalDocs:
            description: Zarr metadata specification version 2, Attributes
            url: https://zarr-specs.readthedocs.io/en/latest/v2/v2.0.html#metadata
          allOf:
            - $ref: '#/components/schemas/BatchV2ZarrOutputArrayParameters'
        arrayOverrides:
          $ref: '#/components/schemas/BatchV2ZarrOutputArrayOverrides'
    BatchV2ZarrOutputGroup:
      required:
        - zarr_format
      description: Zarr group level parameters
      properties:
        zarr_format:
          description: Zarr format version. Currently only version 2 is supported.
          example: 2
          type: integer
        coordinates:
          description: Allows customization of certain output coordinate system parameters
          properties:
            origin:
              type: string
              description: |
                Defines the origin of the output raster/sign of resolution:
                 * `topLeft` (default): negative resolution along the Zarr y-axis, same as for TIFF output</li>
                 * `bottomLeft`: positive resolution along the Zarr y-axis</li>

                The resolution along the Zarr x-axis is always positive.
              default: topLeft
              enum:
                - topLeft
                - bottomLeft
        customAttributes:
          description: >
            User-defined metadata to store into the group's `.zattrs` file.

            For example, to include a copyright notice in the ouptut Zarr, you
            could set this field to

            `{"copyright": "My Company Ltd, 2023"}`.


            **Note**: multiple fields are added to the group attributes by
            default, such as "date_modified"

            and the geospatial extent. Listing any such field in
            `customAttributes` will override its default value.
          type: object
    BatchV2ZarrOutputArrayParameters:
      required:
        - dtype
        - chunks
        - order
        - fill_value
      properties:
        dtype:
          description: >
            Data type/encoding. Allowed values depend on the `sampleType`
            defined in `evalscript`:
             * `|u1`: 8-bit unsigned integer, recommended for `sampleType` UINT8 and AUTO,
             * `|i1`: 8-bit signed integer, recommended for `sampleType` INT8,
             * `<u2`,`>u2`: 16-bit unsigned integer (little and big endian, respectively), recommended for `sampleType` UINT16, allowed for UINT8 and AUTO,
             * `<i2`,`>i2`: 16-bit signed integer (little and big endian, respectively), recommended for `sampleType` INT16, allowed for UINT8, INT8 and AUTO,
             * `<f4`, `>f4`, `<f8`, `>f8`: float (little/big endian single precision, little/big endian double precision, respectively),
               recommended for `sampleType` FLOAT32, allowed for any `sampleType`.

            *Recommended* values encode the chosen `sampleType` losslessly,
            while other allowed values encode the same values in a wider data
            type but do not add any more precision.
          example: <f4
          type: string
          externalDocs:
            description: Zarr data type specification version 2, Attributes
            url: >-
              https://zarr-specs.readthedocs.io/en/latest/v2/v2.0.html#data-type-encoding
        order:
          description: >-
            Layout of values within each chunk of the array. Currently only "C"
            is supported, which means row-major order.
          type: string
          default: C
        chunks:
          description: >
            A list of integers defining the length of each dimension of a chunk
            of the array, e.g. `[1, 1000, 1000]`.


            The first element (time dimension chunking) must be 1.


            The second and third (latidude/y and longitude/x-dimension chunking,
            respectively)

            must evenly divide the batch output tile raster size.

            For example, when using the [LAEA 100km
            grid](https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/BatchV2.html#tiling-grids)

            with an output resolution of 50 m, each batch tile will be 2000 x
            2000 pixels,

            thus valid chunking sizes are 2000, 1000, 500, 400 etc.
          example:
            - 1
            - 1000
            - 1000
          type: array
          minItems: 3
          maxItems: 3
          items:
            type: number
            format: integer
        fill_value:
          type: number
          description: >
            A scalar value providing the default value for portions of the array
            corresponding to non-existing chunks:

            * any chunks consisting solely of this value will **not** be
            written,

            * the value will be included in the output Zarr metadata.


            **Note**: `fill_value` must be representable by the array's `dtype`.


            **Note**: any grid tiles that are within Zarr envelope but outside
            of `processRequest.input.bounds.geometry` will not be processed by
            batch at all.

            No chunks will thus be written for those tiles, thus `fill_value` is
            required to ensure a valid Zarr is created.
        compressor:
          description: >
            Compressor type and parameters, which will be used to compress the
            data chunks.
          default:
            id: blosc
            cname: lz4
            clevel: 5
            shuffle: 1
            blocksize: 0
          type: object
    BatchV2ZarrOutputArrayOverrides:
      description: Overrides the values of `arrayParameters` for individual arrays.
      type: object
      additionalProperties:
        x-additionalPropertiesName: array name
        $ref: '#/components/schemas/BatchV2ArrayOverride'
    BatchV2ArrayOverride:
      type: object
      description: >
        Values for the particular output Zarr array. The array names are equal
        to the identifiers of the outputs/responses of the `processRequest`.
      allOf:
        - $ref: '#/components/schemas/BatchV2ZarrOutputArrayParameters'
        - type: object
          properties:
            customAttributes:
              description: >
                User-defined metadata to append to the array's `.zattrs` file.

                For example, to include information on array's content and
                units, you could set this field to

                `{"long_name": "Chlorophyll-a concentration", "units":
                "milligram m-3"}`


                **Note**: the field "_ARRAY_DIMENSIONS" is added to the array
                attributes by default.

                Listing this field in `customAttributes` will override its
                default value.
              type: object
    BatchV2TilingGridDescriptor:
      type: object
      properties:
        id:
          description: Identifier
          type: integer
          format: int64
        name:
          type: string
        properties:
          $ref: '#/components/schemas/BatchV2TilingGridDescriptorProperties'
    BatchV2TilingGridDescriptorProperties:
      type: object
      properties:
        tileWidth:
          description: Width of each output tile, in units used by the grid
          type: number
          format: double
        tileHeight:
          description: Height of each output tile, in units used by the grid
          type: number
          format: double
        resolutions:
          description: List of supported resolutions, in units used by the grid
          type: array
          uniqueItems: true
          items:
            type: number
            description: List of supported resolutions, in units used by the grid
            format: double
        unit:
          description: Units used by the grid
          type: string
          enum:
            - METRE
            - DEGREE
    BatchV2GeoPackageInput:
      title: GeoPackageInput
      properties:
        type:
          type: string
          enum:
            - geopackage
        features:
          description: >
            Location on an object storage of a GeoPackage file containing the
            features to be processed. <br/> The GeoPackage must adhere to the
            requirements listed in the <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/BatchV2.html#2-geopackage"
            target="_blank">documentation</a>.
          $ref: '#/components/schemas/ObjectStorageInfo'
      required:
        - type
        - features
    InstanceType:
      title: InstanceType
      description: Instance type to be used for processing.
      type: string
      enum:
        - normal
        - large
    ProcessRequestForBatchV2:
      type: object
      description: >-
        Batch processing equivalent of the <a href="#operation/process">Process
        request</a>.
      required:
        - evalscript
        - input
        - output
      properties:
        input:
          $ref: '#/components/schemas/ProcessRequestInput'
        output:
          $ref: '#/components/schemas/ProcessRequestOutputForBatchV2'
        evalscript:
          description: >
            Your evalscript. For details, click

            <a
            href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
            target="_blank">here</a>.

            <br/>Evalscript is not required here if using multipart upload.
          type: string
    ProcessRequestOutputForBatchV2:
      type: object
      properties:
        responses:
          type: array
          description: Response object.
          items:
            $ref: '#/components/schemas/ProcessRequestOutputBatchV2Response'
    StatisticalRequest:
      required:
        - input
        - aggregation
      type: object
      properties:
        input:
          $ref: '#/components/schemas/ProcessRequestInput'
        aggregation:
          $ref: '#/components/schemas/StatisticalRequestAggregation'
        calculations:
          $ref: '#/components/schemas/StatisticalRequestCalculations'
    MultiPartStatisticalRequest:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/StatisticalRequest'
        evalscript:
          description: >
            Block of JavaScript code that will replace the evalscript property
            of the statistics request.
          type: string
    Aggregation:
      required:
        - of
      description: |
        Specifies how given time range is split into time intervals.
      type: object
      properties:
        of:
          description: >
            Duration in ISO 8601 duration format, check
            [here](https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Statistical.html#split-requested-timerange-into-multiple-time-intervals)
            for more details.
          type: string
        lastIntervalBehavior:
          description: >
            This parameter specifies the behavior of the last interval if the
            given time range isn't divisible by the provided aggregation
            interval.
             * SKIP - skip the last interval  (default behavior)
             * SHORTEN - shortens the last interval so that it ends at the end of provided time range.
             * EXTEND - extends the last interval over the end of the provided time range so that all intervals are of equal duration
          type: string
          enum:
            - SKIP
            - SHORTEN
            - EXTEND
    CalculationDefinition:
      description: >-
        The name of the output (as key) for which a calculation of statistics
        and histogram are defined below. Each key must match with one of the
        `output.id` specified in a `setup()` function in an evalscript or be
        "default". If it is "default", the specified statistics and histogram
        will be calculated for all outputs for which calculation of statistics
        is not explicitly defined.
      type: object
      properties:
        histograms:
          description: >
            Histogram definitions. They can be specified differently for each
            band in this output.
          type: object
          additionalProperties:
            x-additionalPropertiesName: band name
            $ref: '#/components/schemas/HistogramDefinition'
        statistics:
          description: >
            Statistics definitions. It can be specified differently for each
            band in this output.
          type: object
          additionalProperties:
            x-additionalPropertiesName: band name
            $ref: '#/components/schemas/StatisticsDefinition'
    HistogramDefinition:
      description: >
        The name of the band (as key) for which a histogram is defined below.
        Each key must match with one of the band names

        `output.bands` specified in a `setup()` function in an evalscript (for
        this output) or be "default". If it is "default",

        the histogram specified below will be returned for all bands of this
        output for which histogram is not explicitly defined.


        Each band's histogram may be defined by providing one of the following
        properties:
          * `binWidth`
          * `nBins`
          * exact bins provided by `bins` array

        [This
        example](https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Statistical/Examples.html#multiple-outputs-with-different-datamasks-multi-band-output-with-custom-bands-names-and-different-histogram-types)

        shows how to specify histograms using different parameters.


        Histograms can be calculated using float or integer math. Providing
        `lowEdge` and `highEdge` or `binWidth` or

        elements of the `bins` array as integer numbers will select integer
        math, otherwise float will be used.

        Output type of the band's output (specified in `output.sampleType` in
        the `setup()` function in the evalscript)

        must match the respective histogram math.


        If `lowEdge` and `highEdge` are not explicitly provided, min and max
        values are used, respectively.
      type: object
      properties:
        nBins:
          description: |
            Number of bins in the histogram.
          type: number
        binWidth:
          description: |
            Bin width.
          type: number
        lowEdge:
          description: >
            Values lower to this will not be included in any of the histogram's
            bins.
          type: number
        highEdge:
          description: >
            Values higher to this will not be included in any of the histogram's
            bins.
          type: number
        bins:
          description: |
            Explicitly defined bins.
            Array [v1,v2,v3,v4] will define the following bins:
            [v1,v2), [v2,v3), [v3,v4]
          type: array
          items:
            type: number
            minItems: 2
    StatisticsDefinition:
      description: >-
        Single band statistics definition. The name of the band (as key) for
        which a calculation of statistic is defined below. Each key must match
        with one of the band names `output.bands` specified in a `setup()`
        function in an evalscript (for this output) or be "default". If it is
        "default", the statistics specified below will be calculated for all
        bands of this output for which calculation of statistics is not
        explicitly defined.
      type: object
      properties:
        percentiles:
          description: Calculate percentiles.
          type: object
          properties:
            k:
              description: >
                Percentiles definition as array of values between [0,1], [see
                this
                example](https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Statistical/Examples.html#statistics-histogram-and-percentiles-for-one-single-band-output).
              type: array
              items:
                type: number
                format: double
                minimum: 0
                maximum: 1
    StatisticalRequestAggregationWithoutEvalscript:
      required:
        - timeRange
        - aggregationInterval
      description: >
        Specifies how data is aggregated and processed before statistics is
        calculated. `timeRange` and `aggregationInterval` combined define
        sampling intervals in time dimension. Width/height or resx/resy combined
        with `input.bounds` define a sample matrix (i.e. "image") in spatial
        dimension.
      type: object
      properties:
        timeRange:
          $ref: '#/components/schemas/StatisticalDateTimeInterval'
        aggregationInterval:
          $ref: '#/components/schemas/Aggregation'
        width:
          description: >
            Width of the sample matrix.

            _Only one pair of parameters "width"/"height" or "resx"/"resy" must
            be set at the same time._
          type: integer
          format: int32
          minimum: 1
          maximum: 2500
          default: 256
          example: 512
        height:
          description: >
            Height of the sample matrix.

            _Only one pair of parameters "width"/"height" or "resx"/"resy" must
            be set at the same time._
          type: integer
          format: int32
          minimum: 1
          maximum: 2500
          default: 256
          example: 512
        resx:
          description: >
            Spatial resolution used to calculate the width of the sample matrix
            from the `input.bounds`.

            Its units are defined by the CRS given in
            `input.bounds.properties.crs`

            parameter.

            _Only one pair of parameters "width"/"height" or "resx"/"resy" must
            be set at the same time._
          type: number
          format: double
        resy:
          description: >
            Spatial resolution used to calculate the height of the sample matrix
            from the `input.bounds`.

            Its units are defined by the CRS given in
            `input.bounds.properties.crs`

            parameter.

            _Only one pair of parameters "width"/"height" or "resx"/"resy" must
            be set at the same time._
          type: number
          format: double
    StatisticalDateTimeInterval:
      type: object
      required:
        - from
        - to
      properties:
        from:
          type: string
          description: >-
            ISO-8601 time representing start of search interval, e.g.
            2019-01-31T14:00:00+01:00
          format: date-time
        to:
          type: string
          description: >-
            ISO-8601 time representing end of search interval, e.g.
            2019-02-05T15:00:00+01:00.
          format: date-time
    StatisticalRequestAggregation:
      type: object
      allOf:
        - $ref: '#/components/schemas/StatisticalRequestAggregationWithoutEvalscript'
        - type: object
          required:
            - evalscript
          properties:
            evalscript:
              description: >
                Your evalscript. For details, click

                <a
                href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
                target="_blank">here</a>.

                The evalscript will be executed once for each time interval
                defined by `timeRange` and `aggregationInterval`.
              type: string
    StatisticalRequestCalculations:
      description: >
        Define which statistics and histogram to calculate.

        It can be specified differently for each evalscript output.

        If omitted only the basic statistic (min, max, mean, stDev) will be
        calculated.
      type: object
      additionalProperties:
        x-additionalPropertiesName: output name
        $ref: '#/components/schemas/CalculationDefinition'
    StatisticalResponse:
      description: |
        Statistics
      type: object
      properties:
        data:
          description: |
            Statistics for intervals, where data is available.
          type: array
          items:
            type: object
            properties:
              interval:
                description: |
                  Interval on which, there's actual data
                $ref: '#/components/schemas/DateTimeInterval'
              outputs:
                description: |
                  Per output statistics.
                  Output names are defined in evalscript.
                type: object
                additionalProperties:
                  x-additionalPropertiesName: output name
                  type: object
                  properties:
                    bands:
                      description: |
                        Per band statistics and histograms.
                      type: object
                      additionalProperties:
                        x-additionalPropertiesName: band name
                        $ref: '#/components/schemas/BandStatistics'
              error:
                description: >
                  If an error occurs when calculating statistics for a given
                  interval it is reported here.
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - BAD_REQUEST
                      - EXECUTION_ERROR
                      - TIMEOUT
    BandStatistics:
      type: object
      description: |
        Per band statistics and histograms
      properties:
        histogram:
          description: Histogram
          type: object
          properties:
            overflow:
              description: |
                Number of samples above `highEdge` value
              type: number
              format: integer
            underflow:
              description: |
                Number of samples below `lowEdge` value
              type: number
              format: integer
            bins:
              description: |
                Histogram bins
              type: array
              items:
                type: object
                properties:
                  lowEdge:
                    description: Bin's low edge (inclusive)
                    type: number
                  highEdge:
                    description: Bin's high edge (not inclusive unless last bin)
                    type: number
                  count:
                    description: number of samples that fall into the bin
                    type: number
                    format: integer
        stats:
          type: object
          description: Statistics
          properties:
            min:
              description: minimum value
              type: number
            max:
              description: maximum value
              type: number
            mean:
              description: mean value
              type: number
            stDev:
              description: standard deviation
              type: number
            sampleCount:
              description: total number of samples
              type: number
              format: integer
            noDataCount:
              description: total number of samples without value
              type: number
              format: integer
            percentiles:
              description: |
                Percentile to percentile value map.
              type: object
              additionalProperties:
                x-additionalPropertiesName: percentile [0,1]
                type: number
                format: double
    BatchStatisticalRequest:
      type: object
      required:
        - input
        - aggregation
        - output
      properties:
        input:
          $ref: '#/components/schemas/BatchStatisticalInput'
        aggregation:
          $ref: '#/components/schemas/BatchStatisticalRequestAggregation'
        calculations:
          $ref: '#/components/schemas/StatisticalRequestCalculations'
        output:
          description: Storage location where the results shall be written.
          $ref: '#/components/schemas/ObjectStorageOutputInfo'
    BatchStatisticalInput:
      type: object
      required:
        - features
        - data
      properties:
        features:
          description: >-
            Storage location of the GeoPackage containing the features
            (polygons) to calculate the statistics for.
          $ref: '#/components/schemas/ObjectStorageInfo'
        data:
          $ref: '#/components/schemas/ProcessRequestInputData'
    ObjectStorageOutputInfo:
      type: object
      required:
        - s3
      properties:
        s3:
          $ref: '#/components/schemas/S3BucketInfoTemplated'
    S3BucketInfoTemplated:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          description: >-
            A URL or URL template specifying where the results shall be written.
            Supported formats: <ul> <li>a valid S3 URL, e.g.
            `s3://my-personal-bucket/some-folder`. A subdirectory will be
            created for this statistical batch request, named after the request
            ID, and output JSON files will be stored there. This is equivalent
            to the template
            `s3://my-personal-bucket/some-folder/<REQUEST_ID>/<ID>.json`. </li>
            <li>a templated S3 URL, e.g.
            `s3://my-personal-bucket/some-folder/<ID>.json`. Templating allows
            custom organization of the output files. Templates can contain the
            following placeholders, which are replaced by respective actual
            values when writing results: <ul> <li> `<REQUEST_ID>` - the ID of
            your statistical batch request,</li> <li> `<ID>` - the `id` property
            of the feature,</li> <li> `<IDENTIFIER>` - the `identifier` property
            of the feature.</li> </ul> The template must contain `<ID>` or
            `<IDENTIFIER>` in order to ensure unique output files. </li> </ul>
        accessKey:
          type: string
          description: >-
            access key, which allows programmatic access to the S3 bucket
            specified in the `url` field.
        secretAccessKey:
          type: string
          description: secret access key which must correspond to the access key.
        region:
          type: string
          description: >-
            The region where the S3 bucket is located. If omitted, the region of
            the Sentinel Hub deployment that the request is submitted to is
            assumed.
    BatchStatisticalRequestAggregation:
      type: object
      allOf:
        - $ref: '#/components/schemas/StatisticalRequestAggregationWithoutEvalscript'
        - type: object
          properties:
            evalscript:
              description: >
                Your evalscript. For details, click

                <a
                href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
                target="_blank">here</a>.

                The evalscript will be executed once for each time interval
                defined by `timeRange` and `aggregationInterval`.


                Either this or `evalscriptReference` parameter is required.
              type: string
            evalscriptReference:
              description: >
                Reference to your evalscript stored in an object storage. For
                details, click

                <a
                href="https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Evalscript/V3.html"
                target="_blank">here</a>.


                Either this or `evalscript` parameter is required.
              $ref: '#/components/schemas/ObjectStorageInfo'
    BatchStatisticsTaskStatusDto:
      type: object
      properties:
        id:
          description: UUID of the submitted request.
          format: uuid
          type: string
        status:
          description: >-
            Current processing status of the request. Must NOT be specified when
            creating new requests
          type: string
          enum:
            - CREATED
            - ANALYSING
            - ANALYSIS_DONE
            - PROCESSING
            - DONE
            - FAILED
            - STOPPED
            - PARTIAL
        error:
          description: Description of error in case the request failed.
          type: string
        completionPercentage:
          type: number
        lastUpdated:
          type: string
          format: date-time
        costPu:
          type: number
          description: Cost of the request in processing units
        created:
          description: Creation time of the request
          type: string
          format: date-time
        stoppedStatusReason:
          description: The reason for request having status STOPPED.
          type: string
          enum:
            - OUT_OF_PU
            - USER_ACTION
    BatchStatisticsTaskDto:
      type: object
      allOf:
        - $ref: '#/components/schemas/BatchStatisticsTaskStatusDto'
        - type: object
          properties:
            request:
              $ref: '#/components/schemas/BatchStatisticalRequest'
            userAction:
              description: Last user action on the request.
              type: string
              enum:
                - NONE
                - ANALYSE
                - START
                - STOP
            userActionUpdated:
              type: string
              description: Date of the last user action on the request
              format: date-time
            domainAccountId:
              type: string
              format: uuid
    BYOCCollectionResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/BYOCCollection'
    BYOCCollectionsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BYOCCollection'
        links:
          $ref: '#/components/schemas/View'
    BYOCCollection:
      required:
        - name
        - s3Bucket
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        userId:
          type: string
          format: uuid
          readOnly: true
        accountId:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
        s3Bucket:
          type: string
        isConfigured:
          description: It's set to true, if the collection has bands.
          type: boolean
          readOnly: true
        created:
          description: >-
            The date when the collection was created. Older collections don't
            have it.
          type:
            - string
            - 'null'
          format: date-time
          readOnly: true
        noData:
          type: number
        requiresMetadataUpdate:
          description: >
            Flag if the metadata, found under additionalData, needs to be
            updated after a tile is added or removed.

            Metadata is updated in a few minutes.
          type: boolean
          readOnly: true
        additionalData:
          $ref: '#/components/schemas/BYOCCollectionAdditionalData'
    BYOCCollectionAdditionalData:
      type: object
      properties:
        bands:
          type: object
          description: Limited to 100 bands.
          additionalProperties:
            x-additionalPropertiesName: band
            $ref: '#/components/schemas/BYOCFormat'
        maxMetersPerPixel:
          type: number
          readOnly: true
          description: >
            How much meters per pixel can you request with Process/OGC/Batch
            requests for this collection. The limit is internally increased to
            500, if it's less than that.
        extent:
          description: The collection extent in WGS84.
          $ref: '#/components/schemas/Polygon'
          readOnly: true
        hasSensingTimes:
          type: string
          enum:
            - 'YES'
            - PARTIALLY
            - 'NO'
          description: Information if tiles have sensing time.
          readOnly: true
        fromSensingTime:
          type: string
          format: date-time
          description: The sensing time in ISO 8601 of the least recent tile.
          readOnly: true
        toSensingTime:
          type: string
          format: date-time
          description: The sensing time in ISO 8601 of the most recent tile.
          readOnly: true
        storageIdentifier:
          $ref: '#/components/schemas/StorageIdentifier'
          default: waw3-1

    StorageIdentifier:
      type: string
      enum:
        - waw3-1
        - waw3-2
        - waw4-1
      description: >
        The identifier of the storage where the bucket resides.

        For the default storage, you don't have to set this.

    BYOCFormat:
      type: object
      required:
        - bitDepth
        - sampleFormat
      properties:
        source:
          description: >-
            The string that must appear in `(BAND)` placeholder. If unset,
            defaults to the band name.
          type: string
        bandIndex:
          description: The index of band in 1-based numbering.
          type: integer
          format: int32
          default: 1
        bitDepth:
          type: integer
          format: int32
          enum:
            - 8
            - 16
            - 32
        sampleFormat:
          type: string
          enum:
            - UINT
            - INT
            - FLOAT
        noData:
          type: number
          description: >-
            You can define noData either per band or per collection, but not
            both.
        aliases:
          description: >
            An optional list of alias names that can be used instead of the band
            name in the evalscript.

            Only used in certain specific collections and not settable by the
            user.
          type: array
          items:
            type: string
          readOnly: true
    BYOCTilesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BYOCTile'
        links:
          $ref: '#/components/schemas/View'
    BYOCTileResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/BYOCTile'
    BYOCTile:
      type: object
      required:
        - path
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        path:
          description: |
            The path within the bucket where the files are. Can also use
            the '(BAND)' placeholder when the file names contain more than just
            the band name.
          type: string
          pattern: ^([^/](/?[^/])*)?$
          example: folder/prefix_(BAND)
        tileGeometry:
          description: |
            The tile bounding box in the CRS of the tile.
            It's automatically set to the union of all file bounding boxes.
          readOnly: true
          $ref: '#/components/schemas/Polygon'
        coverGeometry:
          allOf:
            - description: >
                The geometry as GeoJSON which outlines the area that has data.


                If it isn't specified, it is automatically set to the
                intersection of all file bounding boxes.


                You may specify this in any CRS, however it will be converted to
                CRS84.


                After ingestion is complete, this stays in CRS84 on our system,

                however, for you convenience, we convert and return this in the
                CRS of the tile.
            - $ref: '#/components/schemas/Geometry'
        sensingTime:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            The sensing time of the tile in ISO 8601 but without sub-millisecond
            precision.
        status:
          $ref: '#/components/schemas/BYOCTileStatus'
        additionalData:
          $ref: '#/components/schemas/BYOCTileAdditionalData'
        created:
          type: string
          format: date-time
          description: The time when the tile was created in ISO 8601.
          readOnly: true
    BYOCTileStatus:
      description: The status of the tile.
      type: string
      enum:
        - WAITING
        - QUEUED
        - INGESTING
        - INGESTED
        - FAILED
      readOnly: true
    BYOCTileAdditionalData:
      type: object
      properties:
        failedIngestionCause:
          description: >-
            Contains additional information about why ingestion failed (if
            applicable).
          type:
            - string
            - 'null'
        warnings:
          description: Contains additional information about potential tile problems.
          type:
            - string
            - 'null'
    BYOCTileUpdatePayload:
      type: object
      properties:
        coverGeometry:
          description: >
            The geometry as GeoJSON, which outlines the area that has data. If
            it isn't specified, it is automatically set to the tile bounding
            box.
          $ref: '#/components/schemas/Geometry'
        sensingTime:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            The sensing time of the tile in ISO 8601 but without sub-millisecond
            precision.
    BYOCCollectionUpdatePayload:
      type: object
      required:
        - name
        - s3Bucket
      properties:
        name:
          type: string
        s3Bucket:
          description: Can only be changed if the collection is empty.
          type: string
        noData:
          description: If the value is not provided, the old one gets deleted.
          type: number
        additionalData:
          description: >
            If provided, overwrites the current bands property of the
            collection:

            - to rename band(s), provide the current value of the "bands"
            property with only the name(s) of one or more bands changed

            - to set noData value(s), provide the current value of the "bands"
            property with only the noData value(s) of one or more bands changed

            - to remove band(s), provide the current value of the "bands"
            property but leave out the band(s) you wish to remove

            - to remove all bands, you must first empty the collection, then
            provide "additionalData" without the "bands" property or with an
            empty "bands" property.


            Keep in mind that:

            - bands cannot be added nor their other properties ("bitDepth",
            "bandIndex", etc) changed once you add a tile.

            - once sample format is set you cannot change it, and tiles ingested
            from then on need be in the set sample format.


            If "additionalData" is omitted, the bands will not be changed.
          $ref: '#/components/schemas/BYOCCollectionAdditionalData'
    ZarrCollection:
      type: object
      format: ZarrCollection
      required:
        - name
        - s3Bucket
        - path
        - crs
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        userId:
          type: string
          format: uuid
          readOnly: true
        accountId:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
        created:
          description: The date and time when the collection was created.
          type: string
          format: date-time
          readOnly: true
        s3Bucket:
          type: string
          description: The S3 bucket where the Zarr is stored.
        path:
          type: string
          description: >
            The prefix within the bucket where the Zarr is stored. Must end with
            '/' but not start with it and must contain a Zarr group.
        storageIdentifier:
          $ref: '#/components/schemas/StorageIdentifier'
          default: waw3-1
        status:
          type: string
          enum:
            - CREATED
            - INGESTING
            - INGESTED
            - FAILED
          description: Only INGESTED collections can be used in Process API.
          readOnly: true
        ingestionErrors:
          type:
            - string
            - 'null'
          description: >-
            Error message in case ingestion of the Zarr or any of its arrays
            failed.
          readOnly: true
        crs:
          type: string
          description: >
            Native CRS of the Zarr. See also [Sentinel Hub CRS
            support](https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Process/Crs.html).
        envelope:
          description: >
            The area of coverage of the ingested Zarr collection, defined in its
            native CRS.
          type:
            - object
            - 'null'
          readOnly: true
          $ref: '#/components/schemas/Polygon'
        width:
          type:
            - number
            - 'null'
          description: Width of the ingested Zarr collection in pixels.
          readOnly: true
        height:
          type:
            - number
            - 'null'
          description: Height of the ingested Zarr collection in pixels.
          readOnly: true
        zattrs:
          $ref: '#/components/schemas/ZAttrs'
        additionalData:
          $ref: '#/components/schemas/ZarrCollectionAdditionalData'
    ZarrCollectionAdditionalData:
      type: object
      readOnly: true
      properties:
        bands:
          type: object
          additionalProperties:
            x-additionalPropertiesName: band
            $ref: '#/components/schemas/BYOCFormat'
        maxMetersPerPixel:
          type: number
          readOnly: true
          description: >
            How many meters per pixel can you request with Process/OGC/Batch
            requests for this collection.
    ZarrSingleResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ZarrCollection'
    ZarrQueryCollectionsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ZarrCollection'
    ZarrCollectionUpdatePayload:
      type: object
      required:
        - name
      properties:
        name:
          type: string
    ZarrArray:
      type: object
      format: ZarrArray
      properties:
        name:
          type: string
        s3Bucket:
          type: string
        path:
          type: string
        zarray:
          $ref: '#/components/schemas/ZArray'
        zattrs:
          $ref: '#/components/schemas/ZAttrs'
    ZArray:
      type: object
      description: |
        A subset of the metadata as read from the array's `.zarray` file.
      externalDocs:
        description: Zarr storage specification version 2, Array metadata
        url: https://zarr-specs.readthedocs.io/en/latest/v2/v2.0.html#metadata
    ZarrQueryArraysResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ZarrArray'
    ZarrGetSingleArrayResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ZarrArray'
    ZAttrs:
      type:
        - object
        - 'null'
      description: Custom attributes as read from the `.zattrs` file.
      externalDocs:
        description: Zarr storage specification version 2, Attributes
        url: https://zarr-specs.readthedocs.io/en/latest/v2/v2.0.html#attributes
      readOnly: true
    QuotaTpdiCollectionId:
      description: Collection ID
      type: string
      readOnly: true
      enum:
        - AIRBUS_PLEIADES
        - AIRBUS_SPOT
    NativeSearchQuery:
      oneOf:
        - $ref: '#/components/schemas/AirbusNativeSearchQuery'
    SearchQuery:
      oneOf:
        - $ref: '#/components/schemas/AirbusSearchQuery'
    SearchResults:
      oneOf:
        - $ref: '#/components/schemas/AirbusSearchResults'
    SearchQueryBase:
      required:
        - provider
        - bounds
        - data
      properties:
        provider:
          type: string
        bounds:
          description: >
            Defines the request bounds by specifying the bounding box and/or
            geometry for the request.

            If both are given, a request is made for a geometry and bbox is
            ignored.
          $ref: '#/components/schemas/ProcessRequestInputBounds'
        data:
          type: array
          minItems: 1
          maxItems: 1
          items:
            type: object
            properties:
              dataFilter:
                type: object
                properties:
                  timeRange:
                    $ref: '#/components/schemas/TimeRange'
                  maxCloudCoverage:
                    $ref: '#/components/schemas/MaxCloudCoverage'
    SearchResultBase:
      properties:
        links:
          $ref: '#/components/schemas/View'
    OrderRequest:
      oneOf:
        - $ref: '#/components/schemas/AirbusOrderRequest'
    Order:
      type: object
      properties:
        id:
          description: Order ID
          type: string
          format: uuid
          readOnly: true
        name:
          description: >-
            Order name. It's also used as a name for a new BYOC collection, if
            no collection is given in collectionId field.
          type: string
        accountId:
          description: Account ID
          type: string
          format: uuid
          readOnly: true
        userId:
          description: User ID
          type: string
          format: uuid
          readOnly: true
        collectionId:
          description: >
            BYOC collection ID. If given at order creation, requested data is
            imported into referenced collection, which must be compatible with
            the data being ordered - that is, must either be empty or contain
            the same bands as the data being ordered.


            If not given at order creation, a new BYOC collection is created
            when the order is confirmed and its ID is returned in the response
            from the `confirm` endpoint.
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/OrderStatus'
        sqkm:
          description: >-
            Total size of the order in km<sup>2</sup> or minimum order area,
            whichever is greater
          type: number
          readOnly: true
        input:
          type: object
          description: Specification of the ordered data
    OrderStatus:
      description: Order status
      type: string
      readOnly: true
      enum:
        - CREATED
        - CANCELLED
        - RUNNING
        - DONE
        - PARTIAL
        - FAILED
    OrderDelivery:
      oneOf:
        - $ref: '#/components/schemas/OrderAirbusDelivery'
    OrderDeliveryBase:
      type: object
      properties:
        id:
          description: Delivery ID
          type: string
          format: uuid
        sqkm:
          description: Size of the delivery in km<sup>2</sup>.
          type: number
        status:
          $ref: '#/components/schemas/DeliveryStatus'
        errorMessage:
          description: >-
            Error message if status = "DELIVERY_FAILED", "NON_INGESTIBLE" or
            "IMPORT_FAILED".
          type: string
    DeliveryStatus:
      description: Delivery status
      type: string
      readOnly: true
      enum:
        - WAITING
        - DELIVERED
        - DELIVERY_FAILED
        - PREPARING
        - INGESTING
        - DONE
        - IMPORT_FAILED
        - NON_INGESTIBLE
    DeliveryTile:
      type: object
      properties:
        id:
          description: Tile ID
          type: string
          format: uuid
        deliveryId:
          description: Tile ID
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/TileStatus'
    TileStatus:
      description: The status of the tile.
      type: string
      enum:
        - WAITING
        - QUEUED
        - INGESTING
        - INGESTED
        - FAILED
      readOnly: true
    Quota:
      type: object
      properties:
        collectionId:
          $ref: '#/components/schemas/QuotaTpdiCollectionId'
        quotaSqkm:
          type: number
          description: >-
            This is total purchased quota. Available quota is quotaSqkm -
            quotaUsed.
          readOnly: true
        quotaUsed:
          type: number
          description: Quota used in square kilometers.
          readOnly: true
    QuotaExceededError:
      allOf:
        - $ref: '#/components/schemas/Boom'
        - type: object
          properties:
            errors:
              type: object
              properties:
                availableQuota:
                  type: number
                  description: Currently available quota for the provider of the order
                requiredQuota:
                  type: number
                  description: >-
                    Quota that would be required for successful confirmation of
                    the order
    DeliveryArchiveFormat:
      description: One of supported archive formats. Currently only `zip` is supported.
      type: string
      default: zip
      enum:
        - zip
    DeliveryArchiveStatus:
      description: >-
        Status of archive creation. Only archives with status `DONE` can be
        downloaded.
      type: string
      enum:
        - WAITING
        - PREPARING
        - DONE
        - FAILED
    DeliveryArchive:
      type: object
      properties:
        deliveryId:
          type: string
          format: uuid
        format:
          $ref: '#/components/schemas/DeliveryArchiveFormat'
        requested:
          type: string
          format: date-time
          description: Time of archiving request in ISO 8601
        status:
          $ref: '#/components/schemas/DeliveryArchiveStatus'
        size:
          type: integer
          description: >-
            Size of archive in bytes. Only provided for archives with status
            `DONE`.
    AirbusRequestBase:
      type: object
      required:
        - provider
      properties:
        provider:
          description: Specify this value to use data provider Airbus OneAtlas.
          type: string
          enum:
            - AIRBUS
    AirbusDeliveryProvider:
      type: object
      properties:
        provider:
          description: Provider of the delivery
          type: string
          enum:
            - AIRBUS
    AirbusNativeSearchQuery:
      allOf:
        - $ref: '#/components/schemas/AirbusRequestBase'
        - type: object
          example:
            provider: AIRBUS
            geometry:
              type: Polygon
              coordinates:
                - - - 14.458696
                    - 45.996878
                  - - 14.458696
                    - 46.002617
                  - - 14.463096
                    - 46.002617
                  - - 14.463096
                    - 45.996878
                  - - 14.458696
                    - 45.996878
            constellation: PHR
            processingLevel: SENSOR
            acquisitionDate: '[2018-06-01T00:00:00.000Z,2018-09-01T00:00:00.000Z]'
            cloudCover: '[0,30]'
            snowCover: '[0,10]'
            incidenceAngle: '[0,10]'
          additionalProperties:
            externalDocs:
              description: Fields from Request body of Airbus OneAtlas search.
              url: http://www.geoapi-airbusds.com/guides/oneatlas-data/g-search/
    AirbusSearchQuery:
      allOf:
        - $ref: '#/components/schemas/AirbusRequestBase'
        - $ref: '#/components/schemas/SearchQueryBase'
        - type: object
          properties:
            data:
              type: array
              minItems: 1
              maxItems: 1
              items:
                type: object
                required:
                  - constellation
                properties:
                  constellation:
                    type: string
                    description: |
                      Set to PHR to get Pleiades data or to SPOT for SPOT data.
                    enum:
                      - PHR
                      - SPOT
                  dataFilter:
                    type: object
                    properties:
                      processingLevel:
                        $ref: '#/components/schemas/AirbusProcessingLevel'
                      maxSnowCoverage:
                        $ref: '#/components/schemas/MaxSnowCoverage'
                      maxIncidenceAngle:
                        $ref: '#/components/schemas/MaxIncidenceAngle'
                      expirationDate:
                        $ref: '#/components/schemas/TimeRange'
    AirbusProcessingLevel:
      type: string
      description: >
        When searching, you will receive results from the full catalog as well
        as the Living Library, which holds images that have cloud cover under
        30% and Incidence angle under 40°. If you want to search only Living
        Library results, you will need to filter using processingLevel. This
        value could be equal to SENSOR (images which meet Living Library
        criteria) and ALBUM (images that do not meeting Living Library criteria
        in terms of incidence angle and cloud cover).
      enum:
        - SENSOR
        - ALBUM
    MaxSnowCoverage:
      description: The maximum allowable snow coverage in percent.
      type: number
      format: double
      minimum: 0
      maximum: 100
      default: 100
    MaxIncidenceAngle:
      description: The maximum allowable incidence angle in degrees.
      type: number
      format: double
      minimum: 0
      maximum: 90
      default: 90
    AirbusSearchResults:
      allOf:
        - $ref: '#/components/schemas/SearchResultBase'
        - type: object
          properties:
            features:
              type: array
              externalDocs:
                description: Search results as returned by Airbus OneAtlas search
                url: http://www.geoapi-airbusds.com/guides/oneatlas-data/g-search/
            <other fields>:
              description: >-
                Other fields returned by Airbus OneAtlas search may be included
                in the response.
    AirbusOrderRequest:
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          required:
            - input
          properties:
            input:
              allOf:
                - $ref: '#/components/schemas/AirbusSearchQuery'
                - type: object
                  properties:
                    data:
                      type: array
                      description: >
                        To order specific Airbus OneAtlas products, list them in
                        products field. Otherwise, provide search criteria in
                        the dataFilter field to order all items matching the
                        criteria. Omitting both will order all products within
                        the specified bounds.


                        In both cases, at most 10 products can be ordered at
                        once, i.e. orders listing too many product IDs will
                        fail, as will search-based orders that match too many
                        products.
                      items:
                        type: object
                        properties:
                          products:
                            type: array
                            minItems: 1
                            maxItems: 10
                            description: >
                              Only provide this field when ordering specific
                              Airbus OneAtlas products -- leave out when
                              ordering via search criteria.
                            items:
                              type: object
                              description: TODO2
                              required:
                                - id
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: The ID of product to order
    OrderAirbusDelivery:
      allOf:
        - $ref: '#/components/schemas/AirbusDeliveryProvider'
        - $ref: '#/components/schemas/OrderDeliveryBase'
        - type: object
          properties:
            productId:
              description: Airbus Product ID.
              type: string
              format: uuid
    MaxarRequestBase:
      type: object
      required:
        - provider
      properties:
        provider:
          description: Specify this value to use data provider Maxar.
          type: string
          enum:
            - MAXAR
    MaxarDeliveryProvider:
      type: object
      properties:
        provider:
          description: Provider of the delivery
          type: string
          enum:
            - MAXAR
    MaxarNativeSearchQuery:
      allOf:
        - $ref: '#/components/schemas/MaxarRequestBase'
        - type: object
          example:
            provider: MAXAR
            startDate: '2020-11-06T00:00:00.0Z'
            endDate: '2020-11-06T23:59:59.0Z'
            sensor: WV03
            aoiInGeoJson:
              type: Polygon
              coordinates:
                - - - 15.81
                    - 46.7
                  - - 15.84
                    - 46.7
                  - - 15.84
                    - 46.72
                  - - 15.81
                    - 46.72
                  - - 15.81
                    - 46.7
              crs:
                type: name
                properties:
                  name: EPSG:4326
          additionalProperties:
            description: Fields from request body of MAXAR search.
    MaxarSearchQuery:
      allOf:
        - $ref: '#/components/schemas/MaxarRequestBase'
        - $ref: '#/components/schemas/SearchQueryBase'
        - type: object
          properties:
            data:
              type: array
              minItems: 1
              maxItems: 1
              items:
                type: object
                required:
                  - productBands
                properties:
                  productBands:
                    type: string
                    description: |
                      Band Bundle
                    enum:
                      - 4BB
                  dataFilter:
                    type: object
                    properties:
                      minOffNadir:
                        $ref: '#/components/schemas/MaxarMinOffNadir'
                      maxOffNadir:
                        $ref: '#/components/schemas/MaxarMaxOffNadir'
                      minSunElevation:
                        $ref: '#/components/schemas/MaxarMinSunElevation'
                      maxSunElevation:
                        $ref: '#/components/schemas/MaxarMaxSunElevation'
                      sensor:
                        $ref: '#/components/schemas/MaxarSensor'
    MaxarMinOffNadir:
      type: number
      format: int
      minimum: 0
      maximum: 45
      default: 0
    MaxarMaxOffNadir:
      type: number
      format: int
      minimum: 0
      maximum: 45
      default: 45
    MaxarMinSunElevation:
      description: The minimum allowable sun elevation in degrees
      type: number
      format: int
      minimum: 0
      maximum: 90
      default: 0
    MaxarMaxSunElevation:
      description: The maximum allowable sun elevation in degrees
      type: number
      format: int
      minimum: 0
      maximum: 90
      default: 90
    MaxarSensor:
      description: >
        If specified, limits search results to a single sensor (satellite).

        Results are also filtered to include only sensors that support the
        requested `productBands`. Thus, if a sensor that does not support all
        bands is specified, no results will be returned.
      type: string
      enum:
        - WV01
        - WV02
        - WV03
        - WV04
        - GE01
    MaxarSearchResults:
      properties:
        features:
          type: array
          description: >
            Search results as returned by MAXAR search.

            Note thate MAXAR search does not support paging. Thus, the `count`
            and `viewtoken` query parameters are ignored and a plain list of
            results is returned.
    MaxarOrderRequest:
      allOf:
        - $ref: '#/components/schemas/Order'
        - type: object
          required:
            - input
          properties:
            input:
              allOf:
                - $ref: '#/components/schemas/MaxarSearchQuery'
                - type: object
                  properties:
                    data:
                      type: array
                      description: >
                        To order specific MAXAR products, list them in the
                        `selectedImages` field. Otherwise, provide search
                        criteria in the dataFilter field to order all items
                        matching the criteria.

                        In both cases, at most 10 products can be ordered at
                        once, i.e. orders listing too many product IDs will
                        fail, as will search-based orders that match too many
                        products.

                        Minimum order of 5 km^2 applies to each product, i.e. if
                        the intersection of order's bounds and products's bounds
                        is smaller, the order will fail.
                      items:
                        type: object
                        properties:
                          productKernel:
                            type: string
                            default: CC
                            enum:
                              - CC
                              - NN
                              - MTF
                            description: >
                              Selects the resampling kernel to use: 4x4 cubic
                              convolution (CC), nearest neighbour (NN), or the
                              proprietary MTF kernel (MTF).
                          selectedImages:
                            type: array
                            minItems: 1
                            maxItems: 10
                            description: >
                              Only provide this field when ordering specific
                              MAXAR products -- leave out when ordering via
                              search criteria.
                            items:
                              type: string
                              description: The ID of product (strip) to order
    OrderMaxarDelivery:
      allOf:
        - $ref: '#/components/schemas/MaxarDeliveryProvider'
        - $ref: '#/components/schemas/OrderDeliveryBase'
        - type: object
          properties:
            selectedImages:
              description: MAXAR product IDs.
              type: array
              minItems: 1
              items:
                type: string
tags:
  - name: process
    x-displayName: Process
  - name: catalog_core
    x-displayName: Core
    description: >-
      This is an OpenAPI definition of the SpatioTemporal Asset Catalog API -
      Core specification. Any service that implements this endpoint to allow
      discovery of spatiotemporal assets can be considered a STAC API.
  - name: catalog_collections
    x-displayName: Collections
    description: >-
      This is an OpenAPI definition of the SpatioTemporal Asset Catalog API -
      Collections specification. This is a subset of the STAC API - Features
      specification.
  - name: catalog_features
    x-displayName: Features
    description: >-
      This is an OpenAPI definition of the SpatioTemporal Asset Catalog API -
      Features specification. This extends OGC API - Features - Part 1: Core.
  - name: catalog_item_search
    x-displayName: Item Search
    description: >-
      This is an OpenAPI definition of the SpatioTemporal Asset Catalog API -
      Item Search specification.
  - name: async_process
    x-displayName: Async Process
    description: |
      **NOTE:** _Asynchronous Processing API is currently in beta release._
  - name: batch_v2_process
    x-displayName: Process
  - name: batch_v2_tiling_grid
    x-displayName: Tiling grid
  - name: statistical
    x-displayName: Statistical
  - name: batch_statistical
    x-displayName: Statistical
  - name: byoc_collection
    x-displayName: Collection
  - name: byoc_tile
    x-displayName: Tile
  - name: zarr_collection
    x-displayName: Collection
  - name: zarr_array
    x-displayName: Arrays
  - name: dataimport_search
    x-displayName: Search
  - name: dataimport_product
    x-displayName: Product
  - name: dataimport_order
    x-displayName: Order
  - name: dataimport_delivery
    x-displayName: Order delivery
  - name: dataimport_tile_delivery
    x-displayName: Order delivery tile
  - name: dataimport_quota
    x-displayName: Quota
x-tagGroups:
  - name: Process API
    tags:
      - process
  - name: Catalog
    tags:
      - catalog_core
      - catalog_collections
      - catalog_features
      - catalog_item_search
  - name: Async API
    tags:
      - async_process
  - name: BatchV2 API
    tags:
      - batch_v2_process
      - batch_v2_tiling_grid
  - name: Stats API
    tags:
      - statistical
  - name: Batch Stats API
    tags:
      - batch_statistical
  - name: BYOC
    tags:
      - byoc_collection
      - byoc_tile
  - name: Zarr Import API
    tags:
      - zarr_collection
      - zarr_array
  - name: TPDI
    tags:
      - dataimport_search
      - dataimport_product
      - dataimport_order
      - dataimport_delivery
      - dataimport_tile_delivery
      - dataimport_quota
paths:
  /process/v1:
    post:
      summary: Process
      operationId: process
      tags:
        - process
      parameters:
        - in: header
          name: Accept
          schema:
            type: string
          description: >
            Sets response type and has priority over the type defined in the
            output object of the request.

            Possible values are `image/jpeg`, `image/png`, `image/tiff`,
            `application/json`, `application/tar`, `application/x-tar`,
            `multipart/mixed`, and `application/octet-stream`.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiPartProcessRequest'
      responses:
        '200':
          description: Successful response
          content:
            image/jpeg:
              schema:
                title: Jpeg image
                type: string
                format: image/jpeg
            image/png:
              schema:
                title: Png image
                type: string
                format: image/png
            image/tiff:
              schema:
                title: TIFF image
                type: string
                format: image/tiff
            application/json:
              schema:
                title: JSON data
                type: string
                format: application/json
            multipart/mixed:
              schema:
                title: Mixed data
                type: string
                format: multipart/mixed
            application/x-tar:
              schema:
                title: Tar
                type: string
                format: application/x-tar
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      security:
        - OAuth2: []
      x-codeSamples:
        - lang: Javascript
          source: >
            const response =
            fetch("https://sh.dataspace.copernicus.eu/process/v1", {
              method: "POST",
              headers: {
                "Content-Type": "application/json",
                "Authorization": "Bearer <your_access_token>"
              },
              body: JSON.stringify({
              "input": {
                "bounds": {
                  "bbox": [
                    13.822174072265625,
                    45.85080395917834,
                    14.55963134765625,
                    46.29191774991382
                  ]
                },
                "data": [{
                  "type": "sentinel-2-l2a"
                }]
              },
              "evalscript": `
                //VERSION=3

                function setup() {
                  return {
                    input: ["B02", "B03", "B04"],
                    output: {
                      bands: 3
                    }
                  };
                }

                function evaluatePixel(
                  sample,
                  scenes,
                  inputMetadata,
                  customData,
                  outputMetadata
                ) {
                  return [2.5 * sample.B04, 2.5 * sample.B03, 2.5 * sample.B02];
                }
                `
              })
            })
        - lang: Python
          source: >
            import requests


            response =
            requests.post('https://sh.dataspace.copernicus.eu/process/v1',
              headers={"Authorization" : "Bearer <your_access_token>"},
              json={
                "input": {
                    "bounds": {
                        "bbox": [
                            13.822174072265625,
                            45.85080395917834,
                            14.55963134765625,
                            46.29191774991382
                        ]
                    },
                    "data": [{
                        "type": "sentinel-2-l2a"
                    }]
                },
                "evalscript": """
                //VERSION=3

                function setup() {
                  return {
                    input: ["B02", "B03", "B04"],
                    output: {
                      bands: 3
                    }
                  };
                }

                function evaluatePixel(
                  sample,
                  scenes,
                  inputMetadata,
                  customData,
                  outputMetadata
                ) {
                  return [2.5 * sample.B04, 2.5 * sample.B03, 2.5 * sample.B02];
                }
                """
            })
        - lang: Curl
          source: |
            curl -X POST \
              https://sh.dataspace.copernicus.eu/process/v1 \
              -H 'Content-Type: application/json' \
              -H 'Authorization: Bearer <your_access_token>' \
              -d '{
              "input": {
                "bounds": {
                  "bbox": [
                    13.822174072265625,
                    45.85080395917834,
                    14.55963134765625,
                    46.29191774991382
                  ]
                },
                "data": [
                  {
                    "type": "sentinel-2-l2a"
                  }
                ]
              },
              "evalscript": "//VERSION=3\nfunction setup() {\n  return {\n    input: [\"B02\", \"B03\", \"B04\"],\n    output: {\n      bands: 3\n    }\n  };\n}\nfunction evaluatePixel(\n  sample,\n  scenes,\n  inputMetadata,\n  customData,\n  outputMetadata\n) {\n  return [2.5 * sample.B04, 2.5 * sample.B03, 2.5 * sample.B02];\n}\n"
            }
            ' -o image.png
        - lang: Curl (multipart)
          source: |
            curl -X POST \
              https://sh.dataspace.copernicus.eu/process/v1 \
              -H 'Content-Type: multipart/form-data' \
              -H 'Authorization: Bearer <your_access_token>' \
              -F 'request={
              "input": {
                "bounds": {
                  "bbox": [
                    13.822174072265625,
                    45.85080395917834,
                    14.55963134765625,
                    46.29191774991382
                  ]
                },
                "data": [
                  {
                    "type": "sentinel-2-l2a"
                  }
                ]
              }
            }' \
              -F 'evalscript=//VERSION=3

            function setup() {
              return {
                input: ["B02", "B03", "B04"],
                output: {
                  bands: 3
                }
              }
            }

            function evaluatePixel(
              sample,
              scenes,
              inputMetadata,
              customData,
              outputMetadata
            ) {
              return [2.5 * sample.B04, 2.5 * sample.B03, 2.5 * sample.B02]
            }
            ' -o image.png
  /catalog/v1:
    get:
      tags:
        - catalog_core
      summary: landing page
      description: >-
        Returns the root STAC Catalog or STAC Collection that is the entry point

        for users to browse with STAC Browser or for search engines to crawl.

        This can either return a single STAC Collection or more commonly a STAC

        catalog.


        The landing page provides links to the

        API definition (link relations `service-desc` and `service-doc`)

        and the STAC records such as collections/catalogs (link relation
        `child`)

        or items (link relation `item`).


        Extensions may add additional links with new relation types.
      operationId: getCatalogLandingPage
      responses:
        '200':
          $ref: '#/components/responses/CatalogCoreLandingPage'
        '500':
          $ref: '#/components/responses/CatalogError'
  /catalog/v1/conformance:
    get:
      tags:
        - catalog_core
      summary: information about specifications that this API conforms to
      description: |-
        A list of all conformance classes specified in a standard that the
        server conforms to.
      operationId: getCatalogConformanceDeclaration
      responses:
        '200':
          $ref: '#/components/responses/CatalogConformanceDeclaration'
        '500':
          $ref: '#/components/responses/CatalogError'
  /catalog/v1/collections:
    get:
      tags:
        - catalog_collections
      summary: the feature collections in the dataset
      description: >-
        A body of Feature Collections that belong or are used together with
        additional links.

        Request may not return the full set of metadata per Feature Collection.
      operationId: getCatalogCollections
      responses:
        '200':
          $ref: '#/components/responses/CatalogCollectionsCollections'
        '403':
          $ref: '#/components/responses/CatalogAccessControlInsufficientPermissions'
        '500':
          $ref: '#/components/responses/CatalogCollectionsServerError'
      security:
        - OAuth2: []
  /catalog/v1/collections/{collectionId}:
    get:
      tags:
        - catalog_collections
      summary: describe the feature collection with id `collectionId`
      description: >-
        A single Feature Collection for the given if `collectionId`.

        Request this endpoint to get a full list of metadata for the Feature
        Collection.
      operationId: getCatalogCollection
      parameters:
        - $ref: '#/components/parameters/CatalogCollectionsCollectionId'
      responses:
        '200':
          $ref: '#/components/responses/CatalogCollectionsCollection'
        '400':
          $ref: '#/components/responses/CatalogAccessControlIllegalCollection'
        '403':
          $ref: '#/components/responses/CatalogAccessControlInsufficientPermissions'
        '404':
          $ref: '#/components/responses/CatalogCollectionsNotFound'
        '500':
          $ref: '#/components/responses/CatalogCollectionsServerError'
      security:
        - OAuth2: []
  /catalog/v1/collections/{collectionId}/queryables:
    get:
      summary: >-
        Get the JSON Schema defining the list of variable terms that can be used
        in CQL2 expressions.
      operationId: getCatalogCollectionQueryables
      description: >-
        This endpoint returns a list of variable terms that can be used in CQL2
        expressions. The

        precise definition of this can be found in the OGC API - Features - Part
        3: Filtering and the

        Common Query Language (CQL) specification.
      parameters:
        - in: path
          name: collectionId
          schema:
            type: string
          required: true
          description: ID of Collection
      tags:
        - catalog_collections
      responses:
        '200':
          $ref: '#/components/responses/CatalogCollectionQueryables'
        '400':
          $ref: '#/components/responses/CatalogAccessControlIllegalCollection'
        '403':
          $ref: '#/components/responses/CatalogAccessControlInsufficientPermissions'
        '404':
          $ref: '#/components/responses/CatalogCollectionsNotFound'
        '500':
          $ref: '#/components/responses/CatalogCollectionsServerError'
      security:
        - OAuth2: []
  /catalog/v1/collections/{collectionId}/items:
    get:
      tags:
        - catalog_features
      summary: fetch features
      description: |-
        Fetch features of the feature collection with id `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.
      operationId: getCatalogFeatures
      parameters:
        - $ref: '#/components/parameters/CatalogFeaturesCollectionId'
        - $ref: '#/components/parameters/CatalogFeaturesLimit'
        - $ref: '#/components/parameters/CatalogFeaturesBbox'
        - $ref: '#/components/parameters/CatalogFeaturesDatetime'
      responses:
        '200':
          $ref: '#/components/responses/CatalogFeaturesFeatures'
        '400':
          $ref: '#/components/responses/CatalogAccessControlIllegalCollection'
        '403':
          $ref: '#/components/responses/CatalogAccessControlInsufficientPermissions'
        '404':
          $ref: '#/components/responses/CatalogFeaturesNotFound'
        '500':
          $ref: '#/components/responses/CatalogFeaturesServerError'
      security:
        - OAuth2: []
  /catalog/v1/collections/{collectionId}/items/{featureId}:
    get:
      tags:
        - catalog_features
      summary: fetch a single feature
      description: |-
        Fetch the feature with id `featureId` in the feature collection
        with id `collectionId`.
      operationId: getCatalogFeature
      parameters:
        - $ref: '#/components/parameters/CatalogFeaturesCollectionId'
        - $ref: '#/components/parameters/CatalogFeaturesFeatureId'
      responses:
        '200':
          $ref: '#/components/responses/CatalogFeaturesFeature'
        '400':
          $ref: '#/components/responses/CatalogAccessControlIllegalCollection'
        '403':
          $ref: '#/components/responses/CatalogAccessControlInsufficientPermissions'
        '404':
          $ref: '#/components/responses/CatalogFeaturesNotFound'
        '500':
          $ref: '#/components/responses/CatalogFeaturesServerError'
      security:
        - OAuth2: []
  /catalog/v1/search:
    get:
      summary: Search STAC items with simple filtering.
      operationId: getCatalogItemSearch
      description: |-
        Retrieve Items matching filters. Intended as a shorthand API for simple
        queries.

        This method is required to implement.

        If this endpoint is implemented on a server, it is required to add a
        link referring to this endpoint with `rel` set to `search` to the
        `links` array in `GET /`. As `GET` is the default method, the `method`
        may not be set explicitly in the link.
      tags:
        - catalog_item_search
      parameters:
        - $ref: '#/components/parameters/CatalogItemSearchBbox'
        - $ref: '#/components/parameters/CatalogItemSearchIntersects'
        - $ref: '#/components/parameters/CatalogItemSearchDatetime'
        - $ref: '#/components/parameters/CatalogItemSearchLimit'
        - $ref: '#/components/parameters/CatalogItemSearchIds'
        - $ref: '#/components/parameters/CatalogItemSearchCollectionsArray'
        - $ref: '#/components/parameters/CatalogItemSearchFieldsFields'
        - $ref: '#/components/parameters/CatalogItemSearchFilterFilter'
        - $ref: '#/components/parameters/CatalogItemSearchDistinctDistinct'
      responses:
        '200':
          description: A feature collection.
          content:
            application/geo+json:
              schema:
                allOf:
                  - $ref: >-
                      #/components/schemas/CatalogItemSearchItemCollectionItemCollection
                  - $ref: >-
                      #/components/schemas/CatalogItemSearchContextItemCollection
              example:
                type: FeatureCollection
                features:
                  - bbox:
                      - 12.456873618680804
                      - 44.138006014975964
                      - 13.558241653952589
                      - 45.144727105915536
                    id: >-
                      S2B_MSIL2A_20201229T101329_N0214_R022_T33TUK_20201229T115442
                    type: Feature
                    properties:
                      proj:epsg: 32633
                      datetime: '2020-12-29T10:18:19Z'
                      instruments:
                        - msi
                      constellation: sentinel-2
                      proj:geometry:
                        crs:
                          type: name
                          properties:
                            name: urn:ogc:def:crs:EPSG::32633
                        coordinates:
                          - - - - 300000.99988415383
                                - 5000039.000148304
                              - - 300000.99989785976
                                - 4890241.000124758
                              - - 352314.4884079728
                                - 4890241.000125499
                              - - 386653.8629171661
                                - 5000039.000149397
                              - - 300000.99988415383
                                - 5000039.000148304
                        type: MultiPolygon
                      eo:cloud_cover: 93.93
                      gsd: 10
                      proj:bbox:
                        - 300000
                        - 4890240
                        - 409800
                        - 5000040
                      platform: sentinel-2b
                links:
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/search?collections=sentinel-2-l2a&bbox=13,45,14,46&limit=1&datetime=2020-12-10T00:00:00Z/2020-12-30T00:00:00Z&filter=eo:cloud_cover>90&fields=id,type,-geometry,bbox,properties,-links,-assets
                    rel: self
                    type: application/geo+json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/search?collections=sentinel-2-l2a&bbox=13,45,14,46&limit=1&datetime=2020-12-10T00:00:00Z/2020-12-30T00:00:00Z&filter=eo:cloud_cover>90&fields=id,type,-geometry,bbox,properties,-links,-assets&next=1
                    rel: next
                    type: application/geo+json
                    title: Next set of results
                context:
                  next: 1
                  limit: 1
                  returned: 1
        '400':
          $ref: '#/components/responses/CatalogAccessControlIllegalCollection'
        '403':
          $ref: '#/components/responses/CatalogAccessControlInsufficientPermissions'
        '500':
          $ref: '#/components/responses/CatalogError'
      security:
        - OAuth2: []
    post:
      summary: Search STAC items with full-featured filtering.
      operationId: postCatalogItemSearch
      description: |-
        Retrieve items matching filters. Intended as the standard, full-featured
        query API.

        This method is optional to implement, but recommended.

        If this endpoint is implemented on a server, it is required to add a
        link referring to this endpoint with `rel` set to `search` and `method`
        set to `POST` to the `links` array in `GET /`.
      tags:
        - catalog_item_search
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/CatalogItemSearchSearchBody'
                - $ref: '#/components/schemas/CatalogItemSearchFieldsSearchBody'
                - $ref: '#/components/schemas/CatalogItemSearchFilterSearchBody'
                - $ref: '#/components/schemas/CatalogItemSearchDistinctSearchBody'
            example:
              collections:
                - sentinel-2-l2a
              bbox:
                - 13
                - 45
                - 14
                - 46
              datetime: 2020-12-10T00:00:00Z/2020-12-30T00:00:00Z
              fields:
                include:
                  - id
                  - type
                  - bbox
                  - properties
                exclude:
                  - geometry
                  - links
                  - assets
              filter:
                op: '>'
                args:
                  - property: eo:cloud_cover
                  - 90
              filter-lang: cql2-json
              limit: 1
      responses:
        '200':
          description: A feature collection.
          content:
            application/geo+json:
              schema:
                allOf:
                  - $ref: >-
                      #/components/schemas/CatalogItemSearchItemCollectionItemCollection
                  - $ref: >-
                      #/components/schemas/CatalogItemSearchContextItemCollection
              example:
                type: FeatureCollection
                features:
                  - bbox:
                      - 12.456873618680804
                      - 44.138006014975964
                      - 13.558241653952589
                      - 45.144727105915536
                    id: >-
                      S2B_MSIL2A_20201229T101329_N0214_R022_T33TUK_20201229T115442
                    type: Feature
                    properties:
                      proj:epsg: 32633
                      datetime: '2020-12-29T10:18:19Z'
                      instruments:
                        - msi
                      constellation: sentinel-2
                      proj:geometry:
                        crs:
                          type: name
                          properties:
                            name: urn:ogc:def:crs:EPSG::32633
                        coordinates:
                          - - - - 300000.99988415383
                                - 5000039.000148304
                              - - 300000.99989785976
                                - 4890241.000124758
                              - - 352314.4884079728
                                - 4890241.000125499
                              - - 386653.8629171661
                                - 5000039.000149397
                              - - 300000.99988415383
                                - 5000039.000148304
                        type: MultiPolygon
                      eo:cloud_cover: 93.93
                      gsd: 10
                      proj:bbox:
                        - 300000
                        - 4890240
                        - 409800
                        - 5000040
                      platform: sentinel-2b
                links:
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/search
                    rel: self
                    type: application/geo+json
                  - href: >-
                      https://sh.dataspace.copernicus.eu/catalog/v1/search
                    rel: next
                    type: application/geo+json
                    title: Next set of results
                    method: POST
                    body:
                      next: 1
                    merge: true
                context:
                  next: 1
                  limit: 1
                  returned: 1
        '400':
          $ref: '#/components/responses/CatalogAccessControlIllegalCollection'
        '403':
          $ref: '#/components/responses/CatalogAccessControlInsufficientPermissions'
        '500':
          $ref: '#/components/responses/CatalogError'
      security:
        - OAuth2: []
  /async/v1/process:
    post:
      operationId: createNewAsyncProcessRequest
      summary: Submit a new async process request
      tags:
        - async_process
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncProcessRequest'
      responses:
        '200':
          description: Request submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncStatusResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          description: Maximum number of concurrent async requests reached.
      security:
        - OAuth2: []
  /async/v1/process/{requestId}:
    get:
      operationId: getStatusAsyncRequest
      summary: Get status of the request
      description: >-
        The status of the request will only be returned while it's running.
        After completion (either succeed or failure) this endpoint will return
        404.
      tags:
        - async_process
      parameters:
        - $ref: '#/components/parameters/AsyncProcessRequestId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncStatusResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /batch/v2/process:
    post:
      operationId: createNewBatchV2ProcessingRequest
      summary: Submit new batch processing request
      tags:
        - batch_v2_process
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchV2ProcessRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiPartBatchV2Request'
      responses:
        '201':
          description: Request submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchV2ProcessTask'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
    get:
      summary: Query batch process requests
      operationId: getAllBatchV2ProcessRequests
      tags:
        - batch_v2_process
      parameters:
        - $ref: '#/components/parameters/SearchBeanCount'
        - $ref: '#/components/parameters/SearchBeanViewtoken'
        - $ref: '#/components/parameters/SearchBeanSearch'
        - name: sort
          description: |
            Sort the batch process requests by given field.
            Omit for default ordering.
          in: query
          schema:
            type: string
            enum:
              - created
              - created:desc
              - status
              - status:desc
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BatchV2ProcessTask'
                  links:
                    $ref: '#/components/schemas/View'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
  /batch/v2/process/{taskId}:
    get:
      summary: Retrieve a single batch process task by ID
      operationId: getSingleBatchV2ProcessTaskById
      tags:
        - batch_v2_process
      parameters:
        - $ref: '#/components/parameters/BatchV2TaskId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchV2ProcessTask'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    put:
      summary: Update a batch process request
      description: >
        Only the requests that are not currently being processed nor waiting to
        be processed can be updated.
      operationId: updateBatchV2ProcessRequest
      tags:
        - batch_v2_process
      parameters:
        - $ref: '#/components/parameters/BatchV2TaskId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchV2ProcessRequestUpdatePayload'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchV2ProcessRequest'
        '400':
          $ref: '#/components/responses/401'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
      security:
        - OAuth2: []
  /batch/v2/process/{taskId}/analyse:
    post:
      summary: Request analysis of a batch process request
      operationId: batchV2Analyse
      tags:
        - batch_v2_process
      parameters:
        - $ref: '#/components/parameters/BatchV2TaskId'
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /batch/v2/process/{taskId}/start:
    post:
      summary: Start (confirm) processing of a batch process request
      operationId: batchV2StartProcessRequest
      tags:
        - batch_v2_process
      parameters:
        - $ref: '#/components/parameters/BatchV2TaskId'
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /batch/v2/process/{taskId}/stop:
    post:
      summary: Stop a batch process request
      operationId: batchV2StopProcessRequest
      tags:
        - batch_v2_process
      parameters:
        - $ref: '#/components/parameters/BatchV2TaskId'
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /batch/v2/tilinggrids:
    get:
      summary: Get properties of all supported tiling grids
      operationId: getBatchV2TilingGridsProperties
      tags:
        - batch_v2_tiling_grid
      parameters:
        - $ref: '#/components/parameters/SearchBeanCount'
        - $ref: '#/components/parameters/SearchBeanViewtoken'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BatchV2TilingGridDescriptor'
                  links:
                    $ref: '#/components/schemas/View'
        '401':
          $ref: '#/components/responses/401'
      security:
        - OAuth2: []
  /batch/v2/tilinggrids/{id}:
    get:
      summary: Get properties of a single tiling grid
      operationId: getBatchV2TilingGridProperties
      tags:
        - batch_v2_tiling_grid
      parameters:
        - $ref: '#/components/parameters/BatchV2TilinggridsId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchV2TilingGridDescriptor'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
      security:
        - OAuth2: []
  /statistics/v1:
    post:
      summary: Submit statistical request
      tags:
        - statistical
      operationId: submitStatisticalRequest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatisticalRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiPartStatisticalRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatisticalResponse'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
  /statistics/batch/v1:
    post:
      operationId: createNewBatchStatisticsRequest
      summary: Submit a new statistical batch request
      tags:
        - batch_statistical
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchStatisticalRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MultiPartBatchRequest'
      responses:
        '201':
          description: Request submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchStatisticsTaskDto'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
    get:
      operationId: searchBatchStatisticsRequests
      summary: Query statistical batch requests
      tags:
        - batch_statistical
      parameters:
        - $ref: '#/components/parameters/SearchBeanCount'
        - $ref: '#/components/parameters/SearchBeanViewtoken'
        - name: sort
          description: |
            Sort the statistical batch requests by given field.
            Omit for default ordering.
          in: query
          schema:
            type: string
            enum:
              - created
              - created:desc
              - status
              - status:desc
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BatchStatisticsTaskDto'
                  links:
                    $ref: '#/components/schemas/View'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
  /statistics/batch/v1/{requestId}:
    get:
      summary: Retrieve a single batch statistical request
      operationId: getSingleBatchStatisticalRequestById
      tags:
        - batch_statistical
      parameters:
        - $ref: '#/components/parameters/BatchRequestId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchStatisticsTaskDto'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /statistics/batch/v1/{requestId}/status:
    get:
      summary: Retrieve the status of a batch statistical request.
      operationId: batchStatisticalGetStatus
      tags:
        - batch_statistical
      parameters:
        - $ref: '#/components/parameters/BatchRequestId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchStatisticsTaskStatusDto'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /statistics/batch/v1/{requestId}/analyse:
    post:
      summary: Request analysis of a batch statistical request
      operationId: batchStatisticalAnalyse
      tags:
        - batch_statistical
      parameters:
        - $ref: '#/components/parameters/BatchRequestId'
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /statistics/batch/v1/{requestId}/start:
    post:
      summary: Start (confirm) processing of a batch statistical request
      operationId: batchStartStatisticalRequest
      tags:
        - batch_statistical
      parameters:
        - $ref: '#/components/parameters/BatchRequestId'
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /statistics/batch/v1/{requestId}/stop:
    post:
      summary: Stop a batch statistical request
      operationId: batchStopStatisticalRequest
      tags:
        - batch_statistical
      parameters:
        - $ref: '#/components/parameters/BatchRequestId'
      responses:
        '204':
          description: Success
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /byoc/v1/collections/{collectionId}/tiles:
    post:
      summary: Create a tile
      operationId: createByocCollectionTile
      tags:
        - byoc_tile
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BYOCTile'
      responses:
        '201':
          description: Tile created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BYOCTileResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          $ref: '#/components/responses/409'
      security:
        - OAuth2: []
    get:
      summary: Get collection tiles
      operationId: getByocCollectionTiles
      tags:
        - byoc_tile
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - name: count
          description: Number of items to retrieve.
          in: query
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 100
        - $ref: '#/components/parameters/SearchBeanViewtoken'
        - name: sort
          description: >-
            Get tiles sorted by created date or path, and either in ascending or
            descending order.
          in: query
          schema:
            type: string
            enum:
              - created:asc
              - created:desc
              - path:asc
              - path:desc
        - name: path
          description: >-
            Get the tile with the exact path. Returns a single tile or no tile,
            if there's none with given path.
          in: query
          schema:
            type: string
        - name: status
          description: Get only the files with the given status.
          in: query
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BYOCTileStatus'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BYOCTilesResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
  /byoc/v1/collections/{collectionId}/tiles/{tileId}:
    get:
      summary: Get a tile
      operationId: getByocCollectionTileById
      tags:
        - byoc_tile
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - $ref: '#/components/parameters/ByocTileId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BYOCTileResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    put:
      summary: Update a tile
      operationId: updateByocCollectionTileById
      tags:
        - byoc_tile
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - $ref: '#/components/parameters/ByocTileId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BYOCTileUpdatePayload'
      responses:
        '204':
          description: Tile updated
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
      security:
        - OAuth2: []
    delete:
      summary: Delete a tile
      operationId: deleteByocCollectionTileById
      tags:
        - byoc_tile
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - $ref: '#/components/parameters/ByocTileId'
      responses:
        '204':
          description: Tile deleted
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /byoc/v1/collections/{collectionId}/tiles/{tileId}/reingest:
    post:
      summary: Reingest a tile
      description: Initiates reingestion of a tile.
      operationId: reingestByocCollectionTileById
      tags:
        - byoc_tile
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - $ref: '#/components/parameters/ByocTileId'
      responses:
        '204':
          description: Reingestion initiated.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /byoc/v1/collections:
    post:
      summary: Create a collection
      operationId: createByocCollection
      tags:
        - byoc_collection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BYOCCollection'
      responses:
        '201':
          description: Collection created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BYOCCollectionResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          $ref: '#/components/responses/409'
      security:
        - OAuth2: []
    get:
      summary: Query collections
      operationId: getByocCollections
      tags:
        - byoc_collection
      parameters:
        - name: count
          description: Number of items to retrieve.
          in: query
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 100
        - $ref: '#/components/parameters/SearchBeanViewtoken'
        - $ref: '#/components/parameters/SearchBeanSearch'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BYOCCollectionsResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
  /byoc/v1/collections/{collectionId}:
    get:
      summary: Get a collection
      operationId: getByocCollectionById
      tags:
        - byoc_collection
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BYOCCollectionResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    put:
      summary: Update a collection
      operationId: updateByocCollectionById
      tags:
        - byoc_collection
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BYOCCollectionUpdatePayload'
      responses:
        '204':
          description: Collection updated
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
      security:
        - OAuth2: []
    delete:
      summary: Delete a collection
      operationId: deleteByocCollectionById
      tags:
        - byoc_collection
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      responses:
        '204':
          description: Collection deleted
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /byoc/v1/collections/{collectionId}/copyTiles:
    post:
      summary: Copy collection tiles
      description: >
        Copies ingested tiles from one collection to another, but only those
        whose path isn't present in the target collection.


        You need to have access to both source and target collections, and
        target collection needs to have either the same band names and types, or
        it should have no bands.
      operationId: copyByocCollectionTiles
      tags:
        - byoc_collection
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - name: toCollection
          in: query
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '204':
          description: Tiles copied
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /zarr/v1/collections:
    post:
      summary: Create a Zarr collection
      tags:
        - zarr_collection
      operationId: createZarrCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZarrCollection'
      responses:
        '201':
          description: Collection created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZarrSingleResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    get:
      summary: Query Zarr collections
      tags:
        - zarr_collection
      operationId: getZarrCollections
      parameters:
        - $ref: '#/components/parameters/SearchBeanCount'
        - $ref: '#/components/parameters/SearchBeanViewtoken'
        - name: search
          in: query
          description: >
            Optional query to search Zarr collections by name. If omitted, all
            items are returned.
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            aplication/json:
              schema:
                $ref: '#/components/schemas/ZarrQueryCollectionsResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
  /zarr/v1/collections/{collectionId}:
    get:
      summary: Get a Zarr collection
      tags:
        - zarr_collection
      operationId: getZarrCollection
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZarrSingleResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    put:
      summary: Update Zarr collection
      operationId: updateZarrCollectionById
      tags:
        - zarr_collection
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ZarrCollectionUpdatePayload'
      responses:
        '204':
          description: Collection updated
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    delete:
      summary: Delete Zarr collection
      operationId: deleteZarrCollectionById
      tags:
        - zarr_collection
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      responses:
        '204':
          description: Collection deleted
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /zarr/v1/collections/{collectionId}/reingest:
    put:
      summary: Reingest a Zarr collection
      tags:
        - zarr_collection
      operationId: reingestZarrCollectionById
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZarrSingleResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /zarr/v1/collections/{collectionId}/arrays:
    get:
      summary: Query Zarr collection's arrays
      operationId: getZarrArrays
      tags:
        - zarr_array
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - $ref: '#/components/parameters/SearchBeanCount'
        - $ref: '#/components/parameters/SearchBeanViewtoken'
        - name: search
          in: query
          description: >
            Optional query to search arrays by name. If omitted, all items are
            returned.
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZarrQueryArraysResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /zarr/v1/collections/{collectionId}/arrays/{arrayName}:
    get:
      summary: Get a single Zarr array
      operationId: getSingleZarrArray
      tags:
        - zarr_array
      parameters:
        - $ref: '#/components/parameters/ByocCollectionId'
        - name: arrayName
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ZarrGetSingleArrayResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /api/v1/dataimport/search:
    post:
      summary: Search data
      description: Search data with Process API-like interface.
      operationId: dataImport_searchData
      tags:
        - dataimport_search
      parameters:
        - name: count
          description: |
            Number of items to retrieve.

            Maximum value is provider dependent.
          in: query
          schema:
            type: integer
            format: int32
            minimum: 1
        - $ref: '#/components/parameters/SearchBeanViewtoken'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
      security:
        - OAuth2: []
  /api/v1/dataimport/nativesearch:
    post:
      summary: Native search
      description: >
        Proxy search. All the fields not listed as <span
        style="color:red">required</span> are passed verbatim to the data
        provider's search API, and the result from the latter is returned
        verbatim.
      operationId: dataImport_nativeSearch
      tags:
        - dataimport_search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NativeSearchQuery'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - OAuth2: []
  /api/v1/dataimport/collections/{collectionId}/products/{productId}/thumbnail:
    get:
      summary: Get thumbnail of data product
      description: Get a scaled-down, non-geolocated, non-clipped image of the data product
      operationId: dataImport_getProductThumbnail
      tags:
        - dataimport_product
      parameters:
        - $ref: '#/components/parameters/TpdiCollectionId'
        - name: productId
          description: >-
            ID of the product to get thumbnail of, typically returned by a
            previous search
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response (image)
      security:
        - OAuth2: []
  /api/v1/dataimport/orders:
    post:
      summary: Create an order
      description: >
        Create a non-confirmed data order object, equivalent to a quote. After
        creation you can review the contents of the order and its quota
        requirements, and then choose to confirm it or not.


        Data can be ordered by specifying a query (all items matching the query
        will be ordered) or item IDs (the specified items will be ordered).
      operationId: dataImport_createOrder
      tags:
        - dataimport_order
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequest'
      responses:
        '200':
          description: Order created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    get:
      summary: Query orders
      operationId: dataImport_getOrders
      tags:
        - dataimport_order
      parameters:
        - $ref: '#/components/parameters/OrderStatus'
        - name: collectionId
          description: Filter orders by collectionId. Omit to get all orders.
          in: query
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/SearchBeanCount'
        - $ref: '#/components/parameters/SearchBeanViewtoken'
        - $ref: '#/components/parameters/SearchBeanSearch'
        - name: deleted
          description: >-
            If set to `true` the response will only return those orders that had
            been deleted by the user.
          in: query
          schema:
            default: false
            type: boolean
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'
                  links:
                    $ref: '#/components/schemas/View'
        '401':
          $ref: '#/components/responses/401'
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}:
    get:
      summary: Get an order
      operationId: dataImport_getOrder
      tags:
        - dataimport_order
      parameters:
        - $ref: '#/components/parameters/OrderId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    delete:
      summary: Delete an order
      operationId: dataImport_deleteOrder
      description: |-
        `CREATED` orders will be permanently deleted.

         `CANCELLED` , `DONE` or `FAILED` ones will be deleted for normal querying but will still be available.

         `PARTIAL` or `RUNNING` orders cannot be deleted.
      tags:
        - dataimport_order
      parameters:
        - $ref: '#/components/parameters/OrderId'
      responses:
        '204':
          description: Successful response - order deleted
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: >-
            Conflict - order cannot be deleted because it is currently being
            processed.
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/confirm:
    post:
      summary: Confirm an order
      description: >
        Confirm the order and start executing it. Requires sufficient quota for
        the order. Only orders with status CREATED can be confirmed.
      operationId: dataImport_confirmOrder
      tags:
        - dataimport_order
      parameters:
        - $ref: '#/components/parameters/OrderId'
      responses:
        '200':
          description: Successful response - order confirmed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Insufficient quota for the order
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuotaExceededError'
        '409':
          description: >-
            Conflict - order cannot be confirmed because its status is not
            CREATED.
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries:
    get:
      summary: Get order deliveries
      operationId: dataImport_getOrderDeliveries
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryStatus'
        - $ref: '#/components/parameters/SearchBeanCount'
        - $ref: '#/components/parameters/SearchBeanViewtoken'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/OrderDelivery'
                  links:
                    $ref: '#/components/schemas/View'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}:
    get:
      summary: Get an order delivery
      operationId: dataImport_getOrderDelivery
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDelivery'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}/files:
    get:
      summary: List files of an order delivery
      description: >
        Lists all files delivered by the data provider. The file list and
        contents is provider-specific.
      operationId: dataImport_getOrderDeliveryFiles
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                items:
                  type: string
                  format: filename with path
                example:
                  - VOL_PHR.XML
                  - INDEX.HTM
                  - >-
                    IMG_PHR1A_P_001/IMG_PHR1A_P_202102240924289_ORT_15c5eeb9-53a1-4cdd-cca6-d265fb1bf0c6-001_R1C1.J2W
                  - ...
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Delivery status is not `DONE`
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}/files/{file}:
    get:
      summary: Retrieve a delivery file
      description: Download a single file delivered by the data provider.
      operationId: dataImport_getOrderDeliveryFile
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
        - $ref: '#/components/parameters/DeliveryFile'
        - in: header
          name: Range
          schema:
            type: string
            format: RFC 7223
          description: >
            Optional byte range to retrieve part of a file according to [RFC
            7233](https://datatracker.ietf.org/doc/html/rfc7233#section-3.1).
            Typically used with large files to resume interrupted downloads.
          example: bytes=16384-23473
      responses:
        '200':
          description: Successful response
          content:
            application/octet-stream:
              schema:
                title: file contents as delivered by data provider
                type: string
                format: binary
        '206':
          description: >-
            Partial response in case partial retrieval was requested with the
            `Range` request header
          content:
            application/octet-stream:
              schema:
                title: partial file contents as delivered by data provider
                type: string
                format: binary
          headers:
            Content-Range:
              schema:
                type: string
                format: RFC 7223
              description: >
                Byte range of the returned part of the file according to [RFC
                7233](https://datatracker.ietf.org/doc/html/rfc7233#section-4.2).
              example: bytes 16384-23473/23474
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Delivery status is not `DONE`
      security:
        - OAuth2: []
    head:
      summary: Get delivery file size
      operationId: dataImport_headOrderDeliveryFile
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
        - $ref: '#/components/parameters/DeliveryFile'
      responses:
        '200':
          description: Successful response
          headers:
            Content-Length:
              schema:
                type: integer
              description: File length in bytes
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Delivery status is not `DONE`
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}/archive/create:
    post:
      summary: Request creation of delivery archive
      operationId: dataImport_postOrderDeliveryArchiveCreate
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
        - $ref: '#/components/parameters/DeliveryArchiveFormat'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryArchive'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: >
            Delivery status is not `DONE` or archival of the same delivery in
            the same format has already been requested
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}/archive:
    get:
      summary: Retrieve delivery archive
      operationId: dataImport_getOrderDeliveryArchive
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
        - $ref: '#/components/parameters/DeliveryArchiveFormat'
        - in: header
          name: Range
          schema:
            type: string
            format: RFC 7223
          description: >
            Optional byte range to retrieve part of the archive according to
            [RFC
            7233](https://datatracker.ietf.org/doc/html/rfc7233#section-3.1).
            Typically used to resume interrupted downloads.
          example: bytes=16384-23473
      responses:
        '200':
          description: Successful response
          content:
            application/octet-stream:
              schema:
                title: archive contents
                type: string
                format: binary
        '206':
          description: >-
            Partial response in case partial retrieval was requested with the
            `Range` request header
          content:
            application/octet-stream:
              schema:
                title: partial archive contents
                type: string
                format: binary
          headers:
            Content-Range:
              schema:
                type: string
                format: RFC 7223
              description: >
                Byte range of the returned part of the archive according to [RFC
                7233](https://datatracker.ietf.org/doc/html/rfc7233#section-4.2).
              example: bytes 16384-23473/23474
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
    head:
      summary: Get size of delivery archive
      operationId: dataImport_headOrderDeliveryArchive
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
        - $ref: '#/components/parameters/DeliveryArchiveFormat'
      responses:
        '200':
          description: Successful response
          headers:
            Content-Length:
              schema:
                type: integer
              description: Archive length in bytes
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}/archive/status:
    get:
      summary: Get status of delivery archive creation
      operationId: dataImport_getOrderDeliveryArchiveStatus
      tags:
        - dataimport_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
        - $ref: '#/components/parameters/DeliveryArchiveFormat'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryArchive'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}/tiles:
    get:
      summary: Get the tiles of an order delivery
      description: >
        The delivery tiles correspond to BYOC tiles that were created during the
        ingestion of this delivery. Thus their corresponding IDs will match.
        While for most deliveries just one tile is created, for the largest ones
        there can be tens of tiles.
      operationId: dataImport_getTileDeliveries
      tags:
        - dataimport_tile_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/DeliveryTile'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /api/v1/dataimport/orders/{orderId}/deliveries/{deliveryId}/tiles/{tileId}:
    get:
      summary: Get an order delivery tile
      operationId: dataImport_getTileDelivery
      tags:
        - dataimport_tile_delivery
      parameters:
        - $ref: '#/components/parameters/OrderId'
        - $ref: '#/components/parameters/DeliveryId'
        - $ref: '#/components/parameters/TileId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryTile'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
  /api/v1/dataimport/accountquotas:
    get:
      summary: Get import quotas
      description: Get the list of your import quotas for all providers and collections
      operationId: dataImport_getQuotas
      tags:
        - dataimport_quota
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Quota'
        '401':
          $ref: '#/components/responses/401'
      security:
        - OAuth2: []
  /api/v1/dataimport/accountquotas/{collectionId}:
    get:
      summary: Get import quota
      description: Get the import quota for the specified collection
      operationId: dataImport_getQuota
      tags:
        - dataimport_quota
      parameters:
        - $ref: '#/components/parameters/QuotaTpdiCollectionId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quota'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
      security:
        - OAuth2: []
