openapi: 3.1.0 info: title: Copernicus Data Space Ecosystem (CDSE) asset-level STAC catalogue Bulk Transaction Extension Search API description: 'A comprehensive and searchable catalog of Earth observation and scientific datasets that is actively maintained and updated by the Copernicus Data Space Ecosystem. The integrated STAC (SpatioTemporal Asset Catalog) API, which follows the open STAC specification, enables users to access detailed asset-level metadata, including spatial information, temporal coverage, and data specifications. This standardized interface facilitates efficient data discovery and retrieval across the extensive collection of environmental and scientific resources. More information: https://documentation.dataspace.copernicus.eu/' version: 1.1.0 servers: - url: /v1 tags: - name: Search paths: /search: post: summary: Search description: Endpoint. operationId: Search_search_post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SearchPostRequest' responses: '200': description: Successful Response content: application/geo+json: schema: $ref: '#/components/schemas/ItemCollection-Output' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Search get: summary: Search description: Endpoint. operationId: Search_search_get parameters: - name: collections in: query required: false schema: anyOf: - type: string - type: 'null' description: Array of collection Ids to search for items. example: collection1,collection2 title: Collections description: Array of collection Ids to search for items. - name: ids in: query required: false schema: anyOf: - type: string - type: 'null' description: Array of Item ids to return. example: item1,item2 title: Ids description: Array of Item ids to return. - name: bbox in: query required: false schema: anyOf: - type: string - type: 'null' description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**. example: -175.05,-85.05,175.05,85.05 title: Bbox description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**. - name: intersects in: query required: false schema: anyOf: - type: string - type: 'null' description: "Only return items intersecting this GeoJSON Geometry. Mutually exclusive with **bbox**. \n\n*Remember to URL encode the GeoJSON geometry when using GET request*." title: Intersects description: "Only return items intersecting this GeoJSON Geometry. Mutually exclusive with **bbox**. \n\n*Remember to URL encode the GeoJSON geometry when using GET request*." examples: madrid: value: type: Feature properties: {} geometry: coordinates: - - - -3.8549260500072933 - 40.54923557897152 - - -3.8549260500072933 - 40.29428000041938 - - -3.516597069715033 - 40.29428000041938 - - -3.516597069715033 - 40.54923557897152 - - -3.8549260500072933 - 40.54923557897152 type: Polygon new-york: value: type: Feature properties: {} geometry: coordinates: - - - -74.50117532354284 - 41.128266394414055 - - -74.50117532354284 - 40.35633909727355 - - -73.46713183168603 - 40.35633909727355 - - -73.46713183168603 - 41.128266394414055 - - -74.50117532354284 - 41.128266394414055 type: Polygon - name: datetime in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Only return items that have a temporal property that intersects this value. 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.' title: Datetime description: 'Only return items that have a temporal property that intersects this value. 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: datetime: value: '2018-02-12T23:20:50Z' closed-interval: value: 2018-02-12T00:00:00Z/2018-03-18T12:31:12Z open-interval-from: value: 2018-02-12T00:00:00Z/.. open-interval-to: value: ../2018-03-18T12:31:12Z - name: limit in: query required: false schema: anyOf: - type: integer exclusiveMinimum: 0 - type: 'null' description: Limits the number of results that are included in each page of the response (capped to 10_000). default: 10 title: Limit description: Limits the number of results that are included in each page of the response (capped to 10_000). - name: query in: query required: false schema: anyOf: - type: string - type: 'null' description: Allows additional filtering based on the properties of Item objects example: '{"eo:cloud_cover": {"gte": 95}}' title: Query description: Allows additional filtering based on the properties of Item objects - name: sortby in: query required: false schema: anyOf: - type: string - type: 'null' description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed. example: -gsd,-datetime title: Sortby description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed. - name: fields in: query required: false schema: anyOf: - type: string - type: 'null' description: Include or exclude fields from items body. example: properties.datetime title: Fields description: Include or exclude fields from items body. - name: filter in: query required: false schema: anyOf: - type: string - type: 'null' description: 'A CQL filter expression for filtering items. Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288 Remember to URL encode the CQL-JSON if using GET' example: id='LC08_L1TP_060247_20180905_20180912_01_T1_L1TP' AND collection='landsat8_l1tp' title: Filter description: 'A CQL filter expression for filtering items. Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288 Remember to URL encode the CQL-JSON if using GET' - name: filter-crs in: query required: false schema: anyOf: - type: string - type: 'null' description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84` title: Filter-Crs description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84` - name: filter-lang in: query required: false schema: anyOf: - enum: - cql-json - cql2-json - cql2-text type: string - type: 'null' description: The CQL filter encoding that the 'filter' value uses. default: cql2-text title: Filter-Lang description: The CQL filter encoding that the 'filter' value uses. - name: token in: query required: false schema: anyOf: - type: string - type: 'null' title: Token responses: '200': description: Successful Response content: application/geo+json: schema: $ref: '#/components/schemas/ItemCollection-Output' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' tags: - Search components: schemas: stac_pydantic__api__item__Item: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: Feature title: Type geometry: anyOf: - oneOf: - $ref: '#/components/schemas/Point' - $ref: '#/components/schemas/MultiPoint' - $ref: '#/components/schemas/LineString' - $ref: '#/components/schemas/MultiLineString' - $ref: '#/components/schemas/Polygon' - $ref: '#/components/schemas/MultiPolygon' - $ref: '#/components/schemas/GeometryCollection-Output' discriminator: propertyName: type mapping: GeometryCollection: '#/components/schemas/GeometryCollection-Output' LineString: '#/components/schemas/LineString' MultiLineString: '#/components/schemas/MultiLineString' MultiPoint: '#/components/schemas/MultiPoint' MultiPolygon: '#/components/schemas/MultiPolygon' Point: '#/components/schemas/Point' Polygon: '#/components/schemas/Polygon' - type: 'null' title: Geometry properties: $ref: '#/components/schemas/ItemProperties' id: type: string minLength: 1 title: Id stac_version: type: string pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ title: Stac Version default: 1.0.0 assets: additionalProperties: $ref: '#/components/schemas/Asset' type: object title: Assets links: $ref: '#/components/schemas/stac_pydantic__links__Links-Output' stac_extensions: anyOf: - items: type: string minLength: 1 format: uri type: array - type: 'null' title: Stac Extensions default: [] collection: anyOf: - type: string - type: 'null' title: Collection type: object required: - type - geometry - properties - id - assets - links title: Item Operator: type: string enum: - eq - ne - lt - lte - gt - gte title: Operator description: Defines the set of operators supported by the API. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError Point: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: Point title: Type coordinates: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' title: Coordinates type: object required: - type - coordinates title: Point description: Point Model SortDirections: type: string enum: - asc - desc title: SortDirections Polygon: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: Polygon title: Type coordinates: items: items: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' type: array minItems: 4 type: array title: Coordinates type: object required: - type - coordinates title: Polygon description: Polygon Model Link: properties: href: type: string minLength: 1 title: Href rel: type: string minLength: 1 title: Rel type: anyOf: - $ref: '#/components/schemas/MimeTypes' - type: 'null' title: anyOf: - type: string - type: 'null' title: Title label:assets: anyOf: - type: string - type: 'null' title: Label:Assets additionalProperties: true type: object required: - href - rel title: Link description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#link-object Provider: properties: name: type: string minLength: 1 title: Name description: anyOf: - type: string - type: 'null' title: Description roles: anyOf: - items: type: string type: array - type: 'null' title: Roles url: anyOf: - type: string - type: 'null' title: Url type: object required: - name title: Provider description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#provider-object ItemProperties: properties: title: anyOf: - type: string - type: 'null' title: Title description: anyOf: - type: string - type: 'null' title: Description datetime: anyOf: - type: string format: date-time - type: 'null' title: Datetime created: anyOf: - type: string format: date-time - type: 'null' title: Created updated: anyOf: - type: string format: date-time - type: 'null' title: Updated start_datetime: anyOf: - type: string format: date-time - type: 'null' title: Start Datetime end_datetime: anyOf: - type: string format: date-time - type: 'null' title: End Datetime license: anyOf: - type: string - type: 'null' title: License providers: anyOf: - items: $ref: '#/components/schemas/Provider' type: array - type: 'null' title: Providers platform: anyOf: - type: string - type: 'null' title: Platform instruments: anyOf: - items: type: string type: array - type: 'null' title: Instruments constellation: anyOf: - type: string - type: 'null' title: Constellation mission: anyOf: - type: string - type: 'null' title: Mission gsd: anyOf: - type: number exclusiveMinimum: 0.0 - type: 'null' title: Gsd additionalProperties: true type: object required: - datetime title: ItemProperties description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#properties-object GeometryCollection-Input: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: GeometryCollection title: Type geometries: items: oneOf: - $ref: '#/components/schemas/Point' - $ref: '#/components/schemas/MultiPoint' - $ref: '#/components/schemas/LineString' - $ref: '#/components/schemas/MultiLineString' - $ref: '#/components/schemas/Polygon' - $ref: '#/components/schemas/MultiPolygon' - $ref: '#/components/schemas/GeometryCollection-Input' discriminator: propertyName: type mapping: GeometryCollection: '#/components/schemas/GeometryCollection-Input' LineString: '#/components/schemas/LineString' MultiLineString: '#/components/schemas/MultiLineString' MultiPoint: '#/components/schemas/MultiPoint' MultiPolygon: '#/components/schemas/MultiPolygon' Point: '#/components/schemas/Point' Polygon: '#/components/schemas/Polygon' type: array title: Geometries type: object required: - type - geometries title: GeometryCollection description: GeometryCollection Model SearchPostRequest: properties: collections: anyOf: - items: type: string type: array - type: 'null' title: Collections ids: anyOf: - items: type: string type: array - type: 'null' title: Ids bbox: anyOf: - prefixItems: - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer type: array maxItems: 4 minItems: 4 - prefixItems: - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer - anyOf: - type: number - type: integer type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox intersects: anyOf: - $ref: '#/components/schemas/Point' - $ref: '#/components/schemas/MultiPoint' - $ref: '#/components/schemas/LineString' - $ref: '#/components/schemas/MultiLineString' - $ref: '#/components/schemas/Polygon' - $ref: '#/components/schemas/MultiPolygon' - $ref: '#/components/schemas/GeometryCollection-Input' - type: 'null' title: Intersects datetime: anyOf: - type: string - type: 'null' title: Datetime limit: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Limit description: Limits the number of results that are included in each page of the response (capped to 10_000). default: 10 conf: anyOf: - additionalProperties: true type: object - type: 'null' title: Conf query: anyOf: - additionalProperties: additionalProperties: true propertyNames: $ref: '#/components/schemas/Operator' type: object type: object - type: 'null' title: Query sortby: anyOf: - items: $ref: '#/components/schemas/SortExtension' type: array - type: 'null' title: Sortby description: 'An array of property (field) names, and direction in form of ''{''field'': '''', ''direction'':''''}''' example: - direction: asc field: properties.created fields: anyOf: - $ref: '#/components/schemas/PostFieldsExtension' - type: 'null' description: Include or exclude fields from items body. default: include: [] exclude: [] filter: anyOf: - additionalProperties: true type: object - type: 'null' title: Filter description: A CQL filter expression for filtering items. example: args: - args: - property: id - LC08_L1TP_060247_20180905_20180912_01_T1_L1TP op: '=' - args: - property: collection - landsat8_l1tp op: '=' op: and filter-crs: anyOf: - type: string - type: 'null' title: Filter-Crs description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84` filter-lang: anyOf: - type: string enum: - cql-json - cql2-json - type: 'null' title: Filter-Lang description: The CQL filter encoding that the 'filter' value uses. default: cql2-json token: anyOf: - type: string - type: 'null' title: Token type: object title: SearchPostRequest PostFieldsExtension: properties: include: anyOf: - items: type: string type: array uniqueItems: true - type: 'null' title: Include default: [] exclude: anyOf: - items: type: string type: array uniqueItems: true - type: 'null' title: Exclude default: [] type: object title: PostFieldsExtension description: "FieldsExtension.\n\nAttributes:\n include: set of fields to include.\n exclude: set of fields to exclude." Position3D: prefixItems: - type: number title: Longitude - type: number title: Latitude - type: number title: Altitude type: array maxItems: 3 minItems: 3 SortExtension: properties: field: type: string minLength: 1 title: Field direction: $ref: '#/components/schemas/SortDirections' type: object required: - field - direction title: SortExtension description: https://github.com/radiantearth/stac-api-spec/tree/master/extensions/sort#sort-api-extension PaginationLink: properties: href: type: string minLength: 1 title: Href rel: type: string enum: - next - prev title: Rel type: anyOf: - $ref: '#/components/schemas/MimeTypes' - type: 'null' title: anyOf: - type: string - type: 'null' title: Title label:assets: anyOf: - type: string - type: 'null' title: Label:Assets method: type: string enum: - GET - POST title: Method default: GET headers: anyOf: - additionalProperties: true type: object - type: 'null' title: Headers body: anyOf: - additionalProperties: true type: object - type: 'null' title: Body merge: type: boolean title: Merge default: false additionalProperties: true type: object required: - href - rel title: PaginationLink description: https://github.com/radiantearth/stac-api-spec/blob/v1.0.0/item-search/README.md#pagination ItemsLink: properties: href: type: string pattern: .*\/items(\?.*)?\b title: Href rel: type: string enum: - self - items title: Rel type: type: string const: application/geo+json title: Type default: application/geo+json title: anyOf: - type: string - type: 'null' title: Title label:assets: anyOf: - type: string - type: 'null' title: Label:Assets method: type: string enum: - GET - POST title: Method default: GET headers: anyOf: - additionalProperties: true type: object - type: 'null' title: Headers body: anyOf: - additionalProperties: true type: object - type: 'null' title: Body merge: type: boolean title: Merge default: false additionalProperties: true type: object required: - href - rel title: ItemsLink SearchLink: properties: href: type: string pattern: .*\/search(\?.*)?\b title: Href rel: type: string enum: - self - search - next - prev title: Rel type: type: string const: application/geo+json title: Type default: application/geo+json title: anyOf: - type: string - type: 'null' title: Title label:assets: anyOf: - type: string - type: 'null' title: Label:Assets method: type: string enum: - GET - POST title: Method default: GET headers: anyOf: - additionalProperties: true type: object - type: 'null' title: Headers body: anyOf: - additionalProperties: true type: object - type: 'null' title: Body merge: type: boolean title: Merge default: false additionalProperties: true type: object required: - href - rel title: SearchLink description: https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/item-search#link-relations MultiPolygon: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: MultiPolygon title: Type coordinates: items: items: items: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' type: array minItems: 4 type: array type: array title: Coordinates type: object required: - type - coordinates title: MultiPolygon description: MultiPolygon Model MultiPoint: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: MultiPoint title: Type coordinates: items: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' type: array title: Coordinates type: object required: - type - coordinates title: MultiPoint description: MultiPoint Model HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError Asset: properties: href: type: string minLength: 1 title: Href type: anyOf: - type: string - type: 'null' title: Type title: anyOf: - type: string - type: 'null' title: Title description: anyOf: - type: string - type: 'null' title: Description roles: anyOf: - items: type: string type: array - type: 'null' title: Roles additionalProperties: true type: object required: - href title: Asset description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#asset-object GeometryCollection-Output: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: GeometryCollection title: Type geometries: items: oneOf: - $ref: '#/components/schemas/Point' - $ref: '#/components/schemas/MultiPoint' - $ref: '#/components/schemas/LineString' - $ref: '#/components/schemas/MultiLineString' - $ref: '#/components/schemas/Polygon' - $ref: '#/components/schemas/MultiPolygon' - $ref: '#/components/schemas/GeometryCollection-Output' discriminator: propertyName: type mapping: GeometryCollection: '#/components/schemas/GeometryCollection-Output' LineString: '#/components/schemas/LineString' MultiLineString: '#/components/schemas/MultiLineString' MultiPoint: '#/components/schemas/MultiPoint' MultiPolygon: '#/components/schemas/MultiPolygon' Point: '#/components/schemas/Point' Polygon: '#/components/schemas/Polygon' type: array title: Geometries type: object required: - type - geometries title: GeometryCollection description: GeometryCollection Model LineString: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: LineString title: Type coordinates: items: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' type: array minItems: 2 title: Coordinates type: object required: - type - coordinates title: LineString description: LineString Model MultiLineString: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: MultiLineString title: Type coordinates: items: items: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' type: array minItems: 2 type: array title: Coordinates type: object required: - type - coordinates title: MultiLineString description: MultiLineString Model MimeTypes: type: string enum: - image/tiff; application=geotiff - image/tiff; application=geotiff; profile=cloud-optimized - image/jp2 - image/png - image/jpeg - application/geo+json - application/geo+json-seq - application/geopackage+sqlite3 - application/vnd.google-earth.kml+xml - application/vnd.google-earth.kmz - application/x-protobuf - application/vnd.mapbox-vector-tile - application/x-hdf - application/x-hdf5 - application/xml - application/json - application/ndjson - text/html - text/plain - application/vnd.oai.openapi+json;version=3.0 - application/vnd.oai.openapi;version=3.0 - application/schema+json - application/pdf - text/csv - application/vnd.apache.parquet - application/octet-stream title: MimeTypes description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#media-types ItemCollection-Output: properties: bbox: anyOf: - prefixItems: - type: number - type: number - type: number - type: number type: array maxItems: 4 minItems: 4 - prefixItems: - type: number - type: number - type: number - type: number - type: number - type: number type: array maxItems: 6 minItems: 6 - type: 'null' title: Bbox type: type: string const: FeatureCollection title: Type features: items: $ref: '#/components/schemas/stac_pydantic__api__item__Item' type: array title: Features links: anyOf: - $ref: '#/components/schemas/stac_pydantic__api__links__Links' - type: 'null' numberMatched: anyOf: - type: integer - type: 'null' title: Numbermatched numberReturned: anyOf: - type: integer - type: 'null' title: Numberreturned type: object required: - type - features title: ItemCollection description: 'https://github.com/radiantearth/stac-api-spec/blob/v1.0.0/fragments/itemcollection/README.md https://github.com/radiantearth/stac-api-spec/blob/v1.0.0/item-search/README.md#link-relations' stac_pydantic__links__Links-Output: items: $ref: '#/components/schemas/Link' type: array title: Links stac_pydantic__api__links__Links: items: anyOf: - $ref: '#/components/schemas/SearchLink' - $ref: '#/components/schemas/PaginationLink' - $ref: '#/components/schemas/ItemsLink' - $ref: '#/components/schemas/Link' type: array title: Links Position2D: prefixItems: - type: number title: Longitude - type: number title: Latitude type: array maxItems: 2 minItems: 2