├── .github └── workflows │ ├── build-openapi-bundle.yml │ └── test-build-openapi-bundle.yml ├── .gitignore ├── 25-014 ├── .github │ └── workflows │ │ ├── docker.yml │ │ └── generate.yml ├── .gitignore ├── .gitlab-ci.yml ├── 25-014.adoc ├── 25-014.err.html ├── 25-014.html ├── 25-014.pdf ├── 25-014.pdf.err ├── 25-014.presentation.xml ├── 25-014.xml ├── EDR_Profile_overview.pdf ├── Gemfile ├── Makefile ├── Makefile.win ├── README.adoc ├── UML │ └── README.adoc ├── abstract_tests │ ├── ATS_class_example1.adoc │ ├── ATS_test_example1.adoc │ ├── ATS_test_example2.adoc │ └── README.adoc ├── code │ └── README.adoc ├── figures │ └── README.adoc ├── images │ ├── README.adoc │ └── img02.png ├── metanorma.yml ├── requirements │ ├── README.adoc │ ├── core │ │ ├── REQ_EDR-conformant.adoc │ │ ├── REQ_asynchronous.adoc │ │ ├── REQ_conformance-test.adoc │ │ ├── REQ_data-query-area.adoc │ │ ├── REQ_data-query-corridor.adoc │ │ ├── REQ_data-query-cube.adoc │ │ ├── REQ_data-query-instances.adoc │ │ ├── REQ_data-query-position.adoc │ │ ├── REQ_data-query-radius.adoc │ │ ├── REQ_data-query-trajectory.adoc │ │ ├── REQ_data-query.adoc │ │ ├── REQ_extent.adoc │ │ ├── REQ_id.adoc │ │ ├── REQ_modspec.adoc │ │ ├── REQ_output-format.adoc │ │ ├── REQ_paging-support.adoc │ │ ├── REQ_parameter-names.adoc │ │ ├── REQ_publishing.adoc │ │ ├── REQ_requirements-set.adoc │ │ └── REQ_status-codes.adoc │ ├── requirement002.adoc │ └── requirements_class_core.adoc └── sections │ ├── annex-a.adoc │ ├── annex-bibliography.adoc │ ├── annex-history.adoc │ ├── annex-n.adoc │ ├── clause_0_front_material.adoc │ ├── clause_1_scope.adoc │ ├── clause_2_conformance.adoc │ ├── clause_3_references.adoc │ ├── clause_4_terms_and_definitions.adoc │ ├── clause_5_conventions.adoc │ ├── clause_6_context.adoc │ ├── clause_7_core.adoc │ └── clause_8_media_types.adoc ├── LICENSE ├── README.md ├── _config.yml ├── asciidoctor.json ├── core └── standard │ ├── .github │ └── workflows │ │ ├── docker.yml │ │ └── generate.yml │ ├── .gitignore │ ├── .gitlab-ci.yml │ ├── Gemfile │ ├── Makefile │ ├── Makefile.win │ ├── README.adoc │ ├── UML │ └── README.adoc │ ├── abstract_tests │ ├── ATS_class_collections.adoc │ ├── ATS_class_core.adoc │ ├── ATS_class_covjson.adoc │ ├── ATS_class_edr-geojson.adoc │ ├── ATS_class_geojson.adoc │ ├── ATS_class_html.adoc │ ├── ATS_class_instances.adoc │ ├── ATS_class_json.adoc │ ├── ATS_class_oas30.adoc │ ├── ATS_class_oas31.adoc │ ├── ATS_class_queries.adoc │ ├── README.adoc │ ├── README.md │ ├── collections │ │ ├── ATS_rc-collection-info.adoc │ │ ├── ATS_rc-common-query-type.adoc │ │ ├── ATS_rc-common-variables.adoc │ │ ├── ATS_rc-coords-definition.adoc │ │ ├── ATS_rc-coords-response.adoc │ │ ├── ATS_rc-corridor-height-definition.adoc │ │ ├── ATS_rc-corridor-height-response.adoc │ │ ├── ATS_rc-corridor-variables.adoc │ │ ├── ATS_rc-corridor-width-definition.adoc │ │ ├── ATS_rc-corridor-width-response.adoc │ │ ├── ATS_rc-crs-definition.adoc │ │ ├── ATS_rc-crs-response.adoc │ │ ├── ATS_rc-crs.adoc │ │ ├── ATS_rc-cube-variables.adoc │ │ ├── ATS_rc-cube-z-response.adoc │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ ├── ATS_rc-data_queries.adoc │ │ ├── ATS_rc-f-definition.adoc │ │ ├── ATS_rc-f-response.adoc │ │ ├── ATS_rc-height-units-definition.adoc │ │ ├── ATS_rc-height-units-response.adoc │ │ ├── ATS_rc-items-variables.adoc │ │ ├── ATS_rc-limit-definition.adoc │ │ ├── ATS_rc-limit-response.adoc │ │ ├── ATS_rc-max-z-definition.adoc │ │ ├── ATS_rc-max-z-response.adoc │ │ ├── ATS_rc-md-collection-info-links.adoc │ │ ├── ATS_rc-md-collection-info-table.adoc │ │ ├── ATS_rc-md-links.adoc │ │ ├── ATS_rc-md-op.adoc │ │ ├── ATS_rc-md-query-links.adoc │ │ ├── ATS_rc-md-success-table.adoc │ │ ├── ATS_rc-md-success.adoc │ │ ├── ATS_rc-min-z-definition.adoc │ │ ├── ATS_rc-min-z-response.adoc │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ ├── ATS_rc-parameter-name-response.adoc │ │ ├── ATS_rc-parameters.adoc │ │ ├── ATS_rc-radius-variables.adoc │ │ ├── ATS_rc-width-units-definition.adoc │ │ ├── ATS_rc-width-units-response.adoc │ │ ├── ATS_rc-z-definition.adoc │ │ ├── ATS_rc-z-response.adoc │ │ ├── ATS_src-md-op.adoc │ │ ├── ATS_src-md-success.adoc │ │ ├── area │ │ │ ├── ATS_rc-coords-definition.adoc │ │ │ ├── ATS_rc-coords-response.adoc │ │ │ ├── ATS_rc-crs-definition.adoc │ │ │ ├── ATS_rc-crs-response.adoc │ │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ │ ├── ATS_rc-f-definition.adoc │ │ │ ├── ATS_rc-f-response.adoc │ │ │ ├── ATS_rc-limit-definition.adoc │ │ │ ├── ATS_rc-limit-response.adoc │ │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ │ ├── ATS_rc-parameter-name-response.adoc │ │ │ ├── ATS_rc-z-definition.adoc │ │ │ └── ATS_rc-z-response.adoc │ │ ├── corridor │ │ │ ├── ATS_rc-coords-definition.adoc │ │ │ ├── ATS_rc-coords-response.adoc │ │ │ ├── ATS_rc-crs-definition.adoc │ │ │ ├── ATS_rc-crs-response.adoc │ │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ │ ├── ATS_rc-f-definition.adoc │ │ │ ├── ATS_rc-f-response.adoc │ │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ │ └── ATS_rc-parameter-name-response.adoc │ │ ├── cube │ │ │ ├── ATS_rc-crs-definition.adoc │ │ │ ├── ATS_rc-crs-response.adoc │ │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ │ ├── ATS_rc-f-definition.adoc │ │ │ ├── ATS_rc-f-response.adoc │ │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ │ ├── ATS_rc-parameter-name-response.adoc │ │ │ ├── ATS_rc-z-definition.adoc │ │ │ └── ATS_rc-z-response.adoc │ │ ├── locations │ │ │ ├── ATS_rc-crs-definition.adoc │ │ │ ├── ATS_rc-crs-response.adoc │ │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ │ ├── ATS_rc-f-definition.adoc │ │ │ ├── ATS_rc-f-response.adoc │ │ │ ├── ATS_rc-limit-definition.adoc │ │ │ ├── ATS_rc-limit-response.adoc │ │ │ ├── ATS_rc-locationid-definition.adoc │ │ │ ├── ATS_rc-locationid-response.adoc │ │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ │ └── ATS_rc-parameter-name-response.adoc │ │ ├── position │ │ │ ├── ATS_rc-coords-definition.adoc │ │ │ ├── ATS_rc-coords-response.adoc │ │ │ ├── ATS_rc-crs-definition.adoc │ │ │ ├── ATS_rc-crs-response.adoc │ │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ │ ├── ATS_rc-f-definition.adoc │ │ │ ├── ATS_rc-f-response.adoc │ │ │ ├── ATS_rc-limit-definition.adoc │ │ │ ├── ATS_rc-limit-response.adoc │ │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ │ ├── ATS_rc-parameter-name-response.adoc │ │ │ ├── ATS_rc-z-definition.adoc │ │ │ └── ATS_rc-z-response.adoc │ │ ├── radius │ │ │ ├── ATS_rc-coords-definition.adoc │ │ │ ├── ATS_rc-coords-response.adoc │ │ │ ├── ATS_rc-crs-definition.adoc │ │ │ ├── ATS_rc-crs-response.adoc │ │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ │ ├── ATS_rc-f-definition.adoc │ │ │ ├── ATS_rc-f-response.adoc │ │ │ ├── ATS_rc-limit-definition.adoc │ │ │ ├── ATS_rc-limit-response.adoc │ │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ │ ├── ATS_rc-parameter-name-response.adoc │ │ │ ├── ATS_rc-z-definition.adoc │ │ │ └── ATS_rc-z-response.adoc │ │ └── trajectory │ │ │ ├── ATS_rc-coords-definition.adoc │ │ │ ├── ATS_rc-coords-response.adoc │ │ │ ├── ATS_rc-crs-definition.adoc │ │ │ ├── ATS_rc-crs-response.adoc │ │ │ ├── ATS_rc-custom-dimension-definition.adoc │ │ │ ├── ATS_rc-custom-dimension-response.adoc │ │ │ ├── ATS_rc-f-definition.adoc │ │ │ ├── ATS_rc-f-response.adoc │ │ │ ├── ATS_rc-parameter-name-definition.adoc │ │ │ └── ATS_rc-parameter-name-response.adoc │ ├── core │ │ ├── ATS_api-definition-success.adoc │ │ ├── ATS_api-definition.adoc │ │ ├── ATS_conformance-success.adoc │ │ ├── ATS_conformance.adoc │ │ ├── ATS_crs.adoc │ │ ├── ATS_http.adoc │ │ ├── ATS_rc-bbox-definition.adoc │ │ ├── ATS_rc-bbox-response.adoc │ │ ├── ATS_rc-md-extent.adoc │ │ ├── ATS_rc-numberMatched.adoc │ │ ├── ATS_rc-numberReturned.adoc │ │ ├── ATS_rc-time-definition.adoc │ │ ├── ATS_rc-time-response.adoc │ │ ├── ATS_root-op.adoc │ │ ├── ATS_root-success.adoc │ │ ├── area │ │ │ ├── ATS_rc-time-definition.adoc │ │ │ └── ATS_rc-time-response.adoc │ │ ├── corridor │ │ │ ├── ATS_rc-resolution-x-definition.adoc │ │ │ ├── ATS_rc-resolution-x-response.adoc │ │ │ ├── ATS_rc-resolution-y-definition.adoc │ │ │ ├── ATS_rc-resolution-y-response.adoc │ │ │ ├── ATS_rc-time-definition.adoc │ │ │ └── ATS_rc-time-response.adoc │ │ ├── cube │ │ │ ├── ATS_rc-bbox-definition.adoc │ │ │ ├── ATS_rc-bbox-response.adoc │ │ │ ├── ATS_rc-resolution-x-definition.adoc │ │ │ ├── ATS_rc-resolution-x-response.adoc │ │ │ ├── ATS_rc-resolution-y-definition.adoc │ │ │ ├── ATS_rc-resolution-y-response.adoc │ │ │ ├── ATS_rc-resolution-z-definition.adoc │ │ │ ├── ATS_rc-resolution-z-response.adoc │ │ │ ├── ATS_rc-time-definition.adoc │ │ │ └── ATS_rc-time-response.adoc │ │ ├── items │ │ │ ├── ATS_rc-time-definition.adoc │ │ │ └── ATS_rc-time-response.adoc │ │ ├── locations │ │ │ ├── ATS_rc-time-definition.adoc │ │ │ └── ATS_rc-time-response.adoc │ │ ├── position │ │ │ ├── ATS_rc-time-definition.adoc │ │ │ └── ATS_rc-time-response.adoc │ │ └── radius │ │ │ ├── ATS_rc-time-definition.adoc │ │ │ ├── ATS_rc-time-response.adoc │ │ │ ├── ATS_rc-within-definition.adoc │ │ │ ├── ATS_rc-within-response.adoc │ │ │ ├── ATS_rc-within-units-definition.adoc │ │ │ └── ATS_rc-within-units-response.adoc │ ├── covjson │ │ ├── ATS_content.adoc │ │ └── ATS_definition.adoc │ ├── edr-geojson │ │ ├── ATS_content.adoc │ │ └── ATS_definition.adoc │ ├── geojson │ │ ├── ATS_content.adoc │ │ └── ATS_definition.adoc │ ├── html │ │ ├── ATS_content.adoc │ │ └── ATS_definition.adoc │ ├── instances │ │ ├── ATS_rc-md-op.adoc │ │ ├── ATS_rc-md-success.adoc │ │ ├── ATS_src-md-op.adoc │ │ └── ATS_src-md-success.adoc │ ├── json │ │ ├── ATS_content.adoc │ │ └── ATS_definition.adoc │ ├── oas30 │ │ ├── ATS_completeness.adoc │ │ ├── ATS_definition-1.adoc │ │ ├── ATS_definition-2.adoc │ │ ├── ATS_exception-codes.adoc │ │ ├── ATS_oas-impl.adoc │ │ └── ATS_security.adoc │ ├── oas31 │ │ ├── ATS_completeness.adoc │ │ ├── ATS_definition-1.adoc │ │ ├── ATS_definition-2.adoc │ │ ├── ATS_exception-codes.adoc │ │ ├── ATS_oas-impl.adoc │ │ └── ATS_security.adoc │ ├── post │ │ ├── ATS_content_type.adoc │ │ ├── ATS_definition.adoc │ │ └── ATS_schema.adoc │ └── queries │ │ ├── ATS_area.adoc │ │ ├── ATS_corridor.adoc │ │ ├── ATS_cube.adoc │ │ ├── ATS_instances.adoc │ │ ├── ATS_items.adoc │ │ ├── ATS_locations.adoc │ │ ├── ATS_no-data.adoc │ │ ├── ATS_position.adoc │ │ ├── ATS_radius.adoc │ │ └── ATS_trajectory.adoc │ ├── code │ ├── README.adoc │ └── generate_query_tests.py │ ├── document.adoc │ ├── examples │ ├── collections_metadata_JSON_1.adoc │ ├── conformance_response_JSON_1.adoc │ ├── grib_4_2_parameters.json │ ├── instance_metadata_JSON.adoc │ ├── json │ │ ├── conformance_example.json │ │ └── landingPage_example.json │ ├── landing_page_JSON_1.adoc │ ├── location_query_metadata_JSON.adoc │ ├── pdf_test.adoc │ └── pdf_test.html │ ├── figures │ └── README.adoc │ ├── iev │ └── cache │ │ └── version │ ├── images │ ├── README.md │ ├── REQ_rc-resolution-x-a.png │ ├── REQ_rc-resolution-x-b.png │ ├── REQ_rc-resolution-z-a.png │ └── REQ_rc-resolution-z-b.png │ ├── metanorma.yml │ ├── notes_pagination.txt │ ├── openapi │ ├── README.md │ ├── oas30 │ │ ├── examples │ │ │ ├── LandingPageExample.json │ │ │ ├── LandingPageExample2.json │ │ │ ├── collection.json │ │ │ └── instance.json │ │ ├── parameters │ │ │ ├── collections │ │ │ │ └── collectionId.yaml │ │ │ ├── core │ │ │ │ ├── areaCoords.yaml │ │ │ │ ├── bbox.yaml │ │ │ │ ├── corridor-height.yaml │ │ │ │ ├── corridor-width.yaml │ │ │ │ ├── crs.yaml │ │ │ │ ├── cube-bbox.yaml │ │ │ │ ├── cube-z.yaml │ │ │ │ ├── f.yaml │ │ │ │ ├── height-units.yaml │ │ │ │ ├── limit.yaml │ │ │ │ ├── parameter-name.yaml │ │ │ │ ├── positionCoords.yaml │ │ │ │ ├── radiusCoords.yaml │ │ │ │ ├── resolution-x.yaml │ │ │ │ ├── resolution-y.yaml │ │ │ │ ├── resolution-z.yaml │ │ │ │ ├── trajectoryCoords.yaml │ │ │ │ ├── width-units.yaml │ │ │ │ ├── within-units.yaml │ │ │ │ ├── within.yaml │ │ │ │ └── z.yaml │ │ │ └── queries │ │ │ │ ├── instanceId.yaml │ │ │ │ ├── itemId.yaml │ │ │ │ └── locationId.yaml │ │ ├── paths │ │ │ ├── collections │ │ │ │ ├── collection.yaml │ │ │ │ └── collections.yaml │ │ │ ├── core │ │ │ │ ├── conformance.yaml │ │ │ │ └── landingPage.yaml │ │ │ └── queries │ │ │ │ ├── area.yaml │ │ │ │ ├── corridor.yaml │ │ │ │ ├── cube.yaml │ │ │ │ ├── instance-area.yaml │ │ │ │ ├── instance-corridor.yaml │ │ │ │ ├── instance-cube.yaml │ │ │ │ ├── instance-location.yaml │ │ │ │ ├── instance-locations.yaml │ │ │ │ ├── instance-position.yaml │ │ │ │ ├── instance-radius.yaml │ │ │ │ ├── instance-trajectory.yaml │ │ │ │ ├── instances.yaml │ │ │ │ ├── item.yaml │ │ │ │ ├── items.yaml │ │ │ │ ├── location.yaml │ │ │ │ ├── locations.yaml │ │ │ │ ├── position.yaml │ │ │ │ ├── radius.yaml │ │ │ │ └── trajectory.yaml │ │ ├── request-bodies │ │ │ ├── area.yaml │ │ │ ├── corridor.yaml │ │ │ ├── cube.yaml │ │ │ ├── location.yaml │ │ │ ├── locations.yaml │ │ │ ├── position.yaml │ │ │ ├── radius.yaml │ │ │ └── trajectory.yaml │ │ ├── responses │ │ │ ├── collections │ │ │ │ ├── collection.yaml │ │ │ │ └── collections.yaml │ │ │ ├── core │ │ │ │ ├── conformance.yaml │ │ │ │ ├── exception.yaml │ │ │ │ └── landingPage.yaml │ │ │ └── queries │ │ │ │ ├── 200.yaml │ │ │ │ ├── 202.yaml │ │ │ │ ├── 308.yaml │ │ │ │ ├── 400.yaml │ │ │ │ ├── 404.yaml │ │ │ │ ├── 413.yaml │ │ │ │ ├── instances.yaml │ │ │ │ └── items.yaml │ │ └── schemas │ │ │ ├── collections │ │ │ ├── DataQuery.yaml │ │ │ ├── areaDataQuery.yaml │ │ │ ├── areaLink.yaml │ │ │ ├── collection.yaml │ │ │ ├── collections.yaml │ │ │ ├── corridorDataQuery.yaml │ │ │ ├── corridorLink.yaml │ │ │ ├── crsObject.yaml │ │ │ ├── cubeDataQuery.yaml │ │ │ ├── cubeLink.yaml │ │ │ ├── extent.yaml │ │ │ ├── instancesDataQuery.yaml │ │ │ ├── instancesLink.yaml │ │ │ ├── itemsDataQuery.yaml │ │ │ ├── itemsLink.yaml │ │ │ ├── locationsDataQuery.yaml │ │ │ ├── locationsLink.yaml │ │ │ ├── observedPropertyCollection.yaml │ │ │ ├── parameterNames.yaml │ │ │ ├── positionDataQuery.yaml │ │ │ ├── positionLink.yaml │ │ │ ├── radiusDataQuery.yaml │ │ │ ├── radiusLink.yaml │ │ │ ├── trajectoryDataQuery.yaml │ │ │ ├── trajectoryLink.yaml │ │ │ └── units.yaml │ │ │ ├── core │ │ │ ├── confClasses.yaml │ │ │ ├── exception.yaml │ │ │ ├── landingPage.yaml │ │ │ └── link.yaml │ │ │ ├── covjson │ │ │ ├── anyAxis.yaml │ │ │ ├── coverageJSON.yaml │ │ │ ├── domain.yaml │ │ │ ├── ndArray.yaml │ │ │ ├── numericAxis.yaml │ │ │ ├── numericRegularlySpacedAxis.yaml │ │ │ ├── numericValuesAxis.yaml │ │ │ ├── polygonValuesAxis.yaml │ │ │ ├── primitiveValuesAxis.yaml │ │ │ ├── referenceSystem.yaml │ │ │ ├── referenceSystemConnection.yaml │ │ │ ├── stringValuesAxis.yaml │ │ │ ├── tupleValuesAxis.yaml │ │ │ ├── valuesAxis.yaml │ │ │ └── valuesAxisBase.yaml │ │ │ ├── edr-geojson │ │ │ ├── edrFeatureCollectionGeoJSON.yaml │ │ │ ├── edrProperties.yaml │ │ │ ├── observedProperty.yaml │ │ │ ├── parameter.yaml │ │ │ └── unit.yaml │ │ │ ├── geojson │ │ │ ├── featureGeoJSON.yaml │ │ │ ├── geometrycollectionGeoJSON.yaml │ │ │ ├── linestringGeoJSON.yaml │ │ │ ├── multilinestringGeoJSON.yaml │ │ │ ├── multipointGeoJSON.yaml │ │ │ ├── multipolygonGeoJSON.yaml │ │ │ ├── pointGeoJSON.yaml │ │ │ └── polygonGeoJSON.yaml │ │ │ ├── i18n.yaml │ │ │ ├── numberMatched.yaml │ │ │ ├── numberReturned.yaml │ │ │ ├── parameterGroup.yaml │ │ │ └── queries │ │ │ └── instances.yaml │ ├── oas31 │ │ ├── examples │ │ │ ├── LandingPageExample.json │ │ │ ├── LandingPageExample2.json │ │ │ ├── collection.json │ │ │ └── instance.json │ │ ├── parameters │ │ │ ├── collections │ │ │ │ └── collectionId.yaml │ │ │ ├── core │ │ │ │ ├── areaCoords.yaml │ │ │ │ ├── bbox.yaml │ │ │ │ ├── corridor-height.yaml │ │ │ │ ├── corridor-width.yaml │ │ │ │ ├── crs.yaml │ │ │ │ ├── cube-bbox.yaml │ │ │ │ ├── cube-z.yaml │ │ │ │ ├── f.yaml │ │ │ │ ├── height-units.yaml │ │ │ │ ├── limit.yaml │ │ │ │ ├── parameter-name.yaml │ │ │ │ ├── positionCoords.yaml │ │ │ │ ├── radiusCoords.yaml │ │ │ │ ├── resolution-x.yaml │ │ │ │ ├── resolution-y.yaml │ │ │ │ ├── resolution-z.yaml │ │ │ │ ├── trajectoryCoords.yaml │ │ │ │ ├── width-units.yaml │ │ │ │ ├── within-units.yaml │ │ │ │ ├── within.yaml │ │ │ │ └── z.yaml │ │ │ └── queries │ │ │ │ ├── instanceId.yaml │ │ │ │ ├── itemId.yaml │ │ │ │ └── locationId.yaml │ │ ├── paths │ │ │ ├── collections │ │ │ │ ├── collection.yaml │ │ │ │ └── collections.yaml │ │ │ ├── core │ │ │ │ ├── conformance.yaml │ │ │ │ └── landingPage.yaml │ │ │ └── queries │ │ │ │ ├── area.yaml │ │ │ │ ├── corridor.yaml │ │ │ │ ├── cube.yaml │ │ │ │ ├── instance-area.yaml │ │ │ │ ├── instance-corridor.yaml │ │ │ │ ├── instance-cube.yaml │ │ │ │ ├── instance-location.yaml │ │ │ │ ├── instance-locations.yaml │ │ │ │ ├── instance-position.yaml │ │ │ │ ├── instance-radius.yaml │ │ │ │ ├── instance-trajectory.yaml │ │ │ │ ├── instances.yaml │ │ │ │ ├── item.yaml │ │ │ │ ├── items.yaml │ │ │ │ ├── location.yaml │ │ │ │ ├── locations.yaml │ │ │ │ ├── position.yaml │ │ │ │ ├── radius.yaml │ │ │ │ └── trajectory.yaml │ │ ├── request-bodies │ │ │ ├── area.yaml │ │ │ ├── corridor.yaml │ │ │ ├── cube.yaml │ │ │ ├── location.yaml │ │ │ ├── locations.yaml │ │ │ ├── position.yaml │ │ │ ├── radius.yaml │ │ │ └── trajectory.yaml │ │ ├── responses │ │ │ ├── collections │ │ │ │ ├── collection.yaml │ │ │ │ └── collections.yaml │ │ │ ├── core │ │ │ │ ├── conformance.yaml │ │ │ │ ├── exception.yaml │ │ │ │ └── landingPage.yaml │ │ │ └── queries │ │ │ │ ├── 200.yaml │ │ │ │ ├── 202.yaml │ │ │ │ ├── 308.yaml │ │ │ │ ├── 400.yaml │ │ │ │ ├── 404.yaml │ │ │ │ ├── 413.yaml │ │ │ │ ├── instances.yaml │ │ │ │ └── items.yaml │ │ └── schemas │ │ │ ├── collections │ │ │ ├── DataQuery.yaml │ │ │ ├── areaDataQuery.yaml │ │ │ ├── areaLink.yaml │ │ │ ├── collection.yaml │ │ │ ├── collections.yaml │ │ │ ├── corridorDataQuery.yaml │ │ │ ├── corridorLink.yaml │ │ │ ├── crsObject.yaml │ │ │ ├── cubeDataQuery.yaml │ │ │ ├── cubeLink.yaml │ │ │ ├── extent.yaml │ │ │ ├── instancesDataQuery.yaml │ │ │ ├── instancesLink.yaml │ │ │ ├── itemsDataQuery.yaml │ │ │ ├── itemsLink.yaml │ │ │ ├── locationsDataQuery.yaml │ │ │ ├── locationsLink.yaml │ │ │ ├── observedPropertyCollection.yaml │ │ │ ├── parameterNames.yaml │ │ │ ├── positionDataQuery.yaml │ │ │ ├── positionLink.yaml │ │ │ ├── radiusDataQuery.yaml │ │ │ ├── radiusLink.yaml │ │ │ ├── trajectoryDataQuery.yaml │ │ │ ├── trajectoryLink.yaml │ │ │ └── units.yaml │ │ │ ├── core │ │ │ ├── confClasses.yaml │ │ │ ├── exception.yaml │ │ │ ├── landingPage.yaml │ │ │ └── link.yaml │ │ │ ├── edr-geojson │ │ │ ├── edrFeatureCollectionGeoJSON.yaml │ │ │ ├── edrProperties.yaml │ │ │ ├── observedProperty.yaml │ │ │ ├── parameter.yaml │ │ │ └── unit.yaml │ │ │ ├── geojson │ │ │ ├── featureGeoJSON.yaml │ │ │ ├── geometrycollectionGeoJSON.yaml │ │ │ ├── linestringGeoJSON.yaml │ │ │ ├── multilinestringGeoJSON.yaml │ │ │ ├── multipointGeoJSON.yaml │ │ │ ├── multipolygonGeoJSON.yaml │ │ │ ├── pointGeoJSON.yaml │ │ │ └── polygonGeoJSON.yaml │ │ │ ├── i18n.yaml │ │ │ ├── numberMatched.yaml │ │ │ ├── numberReturned.yaml │ │ │ ├── parameterGroup.yaml │ │ │ └── queries │ │ │ └── instances.yaml │ ├── ogcapi-environmental-data-retrieval-1-oas30.yaml │ ├── ogcapi-environmental-data-retrieval-1-oas31.yaml │ └── ogcapi-environmental-data-retrieval-1.bundled.json │ ├── recommendations │ ├── README.md │ └── core │ │ ├── PER_additional-status-codes.adoc │ │ ├── PER_api-definition-uri.adoc │ │ ├── PER_rc-limit-response-2.adoc │ │ ├── PER_rc-prev.adoc │ │ ├── REC_api-definition-oas.adoc │ │ ├── REC_asynchronous-queries.adoc │ │ ├── REC_covjson.adoc │ │ ├── REC_cross-origin.adoc │ │ ├── REC_edr-geojson.adoc │ │ ├── REC_etag.adoc │ │ ├── REC_geojson.adoc │ │ ├── REC_html.adoc │ │ ├── REC_link-header.adoc │ │ ├── REC_rc-extent.adoc │ │ ├── REC_rc-next-1.adoc │ │ ├── REC_rc-next-2.adoc │ │ └── REC_rc-next-3.adoc │ ├── relaton │ └── cache │ │ └── ogc │ │ ├── 06-103r4.xml │ │ ├── 17-069r3.xml │ │ ├── 18-010r7.xml │ │ ├── 19-072.xml │ │ ├── ogc_06-103r4.redirect │ │ ├── ogc_17-069r3.redirect │ │ ├── ogc_18-010r7.redirect │ │ ├── ogc_19-072.redirect │ │ ├── ogc_20-024.notfound │ │ └── version │ ├── requirements │ ├── README.md │ ├── collections │ │ ├── REQ_rc-md-op.adoc │ │ ├── REQ_rc-md-success.adoc │ │ ├── REQ_src-md-op.adoc │ │ └── REQ_src-md-success.adoc │ ├── core │ │ ├── REQ_conformance-success.adoc │ │ ├── REQ_core_conformance.adoc │ │ ├── REQ_crs.adoc │ │ ├── REQ_http.adoc │ │ ├── REQ_rc-api-definition-op.adoc │ │ ├── REQ_rc-api-definition-success.adoc │ │ ├── REQ_rc-bbox-definition.adoc │ │ ├── REQ_rc-bbox-response.adoc │ │ ├── REQ_rc-collection-info-links.adoc │ │ ├── REQ_rc-extent.adoc │ │ ├── REQ_rc-limit-definition.adoc │ │ ├── REQ_rc-limit-response-1.adoc │ │ ├── REQ_rc-numberMatched.adoc │ │ ├── REQ_rc-numberReturned.adoc │ │ ├── REQ_rc-time-definition.adoc │ │ ├── REQ_rc-time-response.adoc │ │ ├── REQ_root-op.adoc │ │ └── REQ_root-success.adoc │ ├── covjson │ │ ├── REQ_content.adoc │ │ └── REQ_definition.adoc │ ├── edr-geojson │ │ ├── REQ_content.adoc │ │ └── REQ_definition.adoc │ ├── edr │ │ ├── REQ_rc-area.adoc │ │ ├── REQ_rc-bbox-definition-cube.adoc │ │ ├── REQ_rc-bbox-response-cube.adoc │ │ ├── REQ_rc-collection-info.adoc │ │ ├── REQ_rc-common-query-type.adoc │ │ ├── REQ_rc-common-variables.adoc │ │ ├── REQ_rc-coords-definition.adoc │ │ ├── REQ_rc-coords-response.adoc │ │ ├── REQ_rc-corridor-height-definition.adoc │ │ ├── REQ_rc-corridor-height-response.adoc │ │ ├── REQ_rc-corridor-variables.adoc │ │ ├── REQ_rc-corridor-width-definition.adoc │ │ ├── REQ_rc-corridor-width-response.adoc │ │ ├── REQ_rc-corridor.adoc │ │ ├── REQ_rc-crs-definition.adoc │ │ ├── REQ_rc-crs-response.adoc │ │ ├── REQ_rc-crs.adoc │ │ ├── REQ_rc-cube-variables.adoc │ │ ├── REQ_rc-cube-z-response.adoc │ │ ├── REQ_rc-cube.adoc │ │ ├── REQ_rc-custom-dimension-definition.adoc │ │ ├── REQ_rc-custom-dimension-response.adoc │ │ ├── REQ_rc-data_queries.adoc │ │ ├── REQ_rc-f-definition.adoc │ │ ├── REQ_rc-f-response.adoc │ │ ├── REQ_rc-height-units-definition.adoc │ │ ├── REQ_rc-height-units-response.adoc │ │ ├── REQ_rc-items-variables.adoc │ │ ├── REQ_rc-items.adoc │ │ ├── REQ_rc-limit-definition.adoc │ │ ├── REQ_rc-limit-response.adoc │ │ ├── REQ_rc-linestring-coords-response.adoc │ │ ├── REQ_rc-locationid-definition.adoc │ │ ├── REQ_rc-locationid-response.adoc │ │ ├── REQ_rc-locations.adoc │ │ ├── REQ_rc-md-query-links.adoc │ │ ├── REQ_rc-parameters-definition.adoc │ │ ├── REQ_rc-parameters-response.adoc │ │ ├── REQ_rc-parameters.adoc │ │ ├── REQ_rc-point-coords-response.adoc │ │ ├── REQ_rc-polygon-coords-response.adoc │ │ ├── REQ_rc-position.adoc │ │ ├── REQ_rc-radius-variables.adoc │ │ ├── REQ_rc-radius.adoc │ │ ├── REQ_rc-resolution-x-definition.adoc │ │ ├── REQ_rc-resolution-x-response.adoc │ │ ├── REQ_rc-resolution-y-definition.adoc │ │ ├── REQ_rc-resolution-y-response.adoc │ │ ├── REQ_rc-resolution-z-definition.adoc │ │ ├── REQ_rc-resolution-z-response.adoc │ │ ├── REQ_rc-trajectory.adoc │ │ ├── REQ_rc-width-units-definition.adoc │ │ ├── REQ_rc-width-units-response.adoc │ │ ├── REQ_rc-within-definition.adoc │ │ ├── REQ_rc-within-response.adoc │ │ ├── REQ_rc-within-units-definition.adoc │ │ ├── REQ_rc-within-units-response.adoc │ │ ├── REQ_rc-z-definition.adoc │ │ ├── REQ_rc-z-response.adoc │ │ └── query_type │ │ │ ├── area.adoc │ │ │ ├── corridor.adoc │ │ │ ├── cube.adoc │ │ │ ├── instance.adoc │ │ │ ├── item.adoc │ │ │ ├── locations.adoc │ │ │ ├── no-data.adoc │ │ │ ├── point.adoc │ │ │ ├── radius.adoc │ │ │ └── trajectory.adoc │ ├── geojson │ │ ├── REQ_content.adoc │ │ └── REQ_definition.adoc │ ├── html │ │ ├── REQ_content.adoc │ │ └── REQ_definition.adoc │ ├── instances │ │ ├── REQ_rc-md-op.adoc │ │ ├── REQ_rc-md-success.adoc │ │ ├── REQ_src-md-op.adoc │ │ └── REQ_src-md-success.adoc │ ├── json │ │ ├── REQ_content.adoc │ │ └── REQ_definition.adoc │ ├── oas │ │ ├── REQ_completeness.adoc │ │ ├── REQ_exception-codes.adoc │ │ ├── REQ_oas-definition.adoc │ │ ├── REQ_oas-impl.adoc │ │ └── REQ_security.adoc │ ├── oas30 │ │ └── REQ_oas-definition.adoc │ ├── oas31 │ │ └── REQ_oas-definition.adoc │ ├── post │ │ ├── REQ_content_type.adoc │ │ ├── REQ_definition.adoc │ │ └── REQ_schema.adoc │ ├── requirements_class_collections.adoc │ ├── requirements_class_core.adoc │ ├── requirements_class_covjson.adoc │ ├── requirements_class_custom_dimensions.adoc │ ├── requirements_class_edr_geojson.adoc │ ├── requirements_class_geojson.adoc │ ├── requirements_class_html.adoc │ ├── requirements_class_json.adoc │ ├── requirements_class_oas.adoc │ ├── requirements_class_oas30.adoc │ ├── requirements_class_oas31.adoc │ ├── requirements_class_post.adoc │ ├── requirements_class_queries.adoc │ └── requirements_class_query_parameters.adoc │ └── sections │ ├── annex_ats.adoc │ ├── annex_bibliography.adoc │ ├── annex_collection_response.adoc │ ├── annex_examples.adoc │ ├── annex_glossary.adoc │ ├── annex_history.adoc │ ├── annex_measurement_type_methods.adoc │ ├── annex_relationship.adoc │ ├── annex_requirements.adoc │ ├── clause_0_front_material.adoc │ ├── clause_10_oas.adoc │ ├── clause_1_scope.adoc │ ├── clause_2_conformance.adoc │ ├── clause_3_references.adoc │ ├── clause_4_terms_and_definitions.adoc │ ├── clause_5_conventions.adoc │ ├── clause_6_overview.adoc │ ├── clause_7_core.adoc │ ├── clause_8_queries.adoc │ └── clause_9_general.adoc ├── deployments.md ├── docs ├── AgreedDevelopmentProcesses.md ├── BackgroundReading.md ├── EnvironmentalDataRetrievalAPI-SWG-Charter.adoc ├── Profile Guidance.docx ├── edr_api.html └── ~$ofile Guidance.docx ├── extensions ├── pubsub │ ├── README.md │ └── standard │ │ ├── Gemfile │ │ ├── Makefile │ │ ├── Makefile.win │ │ ├── README.adoc │ │ ├── UML │ │ └── README.adoc │ │ ├── abstract_tests │ │ ├── ATS_class_pubsub.adoc │ │ ├── ATS_class_pubsub_notification_message_payload.adoc │ │ ├── pubsub-notification-message-payload │ │ │ ├── ATS_test_geojson.adoc │ │ │ ├── ATS_test_id.adoc │ │ │ ├── ATS_test_operation.adoc │ │ │ └── ATS_test_pubtime.adoc │ │ └── pubsub │ │ │ └── ATS_test_api.adoc │ │ ├── code │ │ └── README.adoc │ │ ├── document.adoc │ │ ├── examples │ │ ├── json │ │ │ └── pubsub-message-payload.json │ │ └── yaml │ │ │ └── asyncapi.yaml │ │ ├── figures │ │ └── README.adoc │ │ ├── images │ │ ├── README.adoc │ │ └── example-pubsub-workflow-ogcapi.png │ │ ├── metanorma.yml │ │ ├── openapi │ │ └── schemas │ │ │ ├── link.yaml │ │ │ └── pubsub-message-payload-schema.yaml │ │ ├── recommendations │ │ ├── pubsub-notification-message-payload │ │ │ ├── REC_id.adoc │ │ │ └── REC_resource_id.adoc │ │ └── pubsub │ │ │ ├── PER_links.adoc │ │ │ └── PER_protocols.adoc │ │ ├── requirements │ │ ├── README.adoc │ │ ├── pubsub-notification-message-payload │ │ │ ├── REQ_rc-geojson.adoc │ │ │ ├── REQ_rc-id.adoc │ │ │ ├── REQ_rc-operation.adoc │ │ │ └── REQ_rc-pubtime.adoc │ │ ├── pubsub │ │ │ └── REQ_rc-api.adoc │ │ ├── requirements_class_pubsub.adoc │ │ └── requirements_class_pubsub_notification_message_payload.adoc │ │ └── sections │ │ ├── annex-a.adoc │ │ ├── annex-bibliography.adoc │ │ ├── annex-history.adoc │ │ ├── annex-pubsub-notification-message-payload.adoc │ │ ├── annex-pubsub.adoc │ │ ├── annex-use-cases.adoc │ │ ├── clause_0_front_material.adoc │ │ ├── clause_1_scope.adoc │ │ ├── clause_2_conformance.adoc │ │ ├── clause_3_references.adoc │ │ ├── clause_4_terms_and_definitions.adoc │ │ ├── clause_5_conventions.adoc │ │ ├── clause_6_informative_text.adoc │ │ ├── clause_7_pubsub.adoc │ │ ├── clause_8_pubsub-channels.adoc │ │ └── clause_9_pubsub-notification-message-payload.adoc └── service_profiles │ └── standard │ ├── 25-014.adoc │ ├── 25-014.err.html │ ├── 25-014.html │ ├── 25-014.pdf │ ├── 25-014.pdf.err │ ├── 25-014.presentation.xml │ ├── 25-014.xml │ ├── Gemfile │ ├── Makefile │ ├── Makefile.win │ ├── README.adoc │ ├── UML │ └── README.adoc │ ├── abstract_tests │ ├── ATS_class_core.adoc │ ├── README.adoc │ └── core │ │ ├── ATS_api.adoc │ │ ├── ATS_asynchronous.adoc │ │ ├── ATS_collectionid.adoc │ │ ├── ATS_conformance-test.adoc │ │ ├── ATS_data-query-area.adoc │ │ ├── ATS_data-query-corridor.adoc │ │ ├── ATS_data-query-cube.adoc │ │ ├── ATS_data-query-instances.adoc │ │ ├── ATS_data-query-position.adoc │ │ ├── ATS_data-query-radius.adoc │ │ ├── ATS_data-query-trajectory.adoc │ │ ├── ATS_data-query.adoc │ │ ├── ATS_edr-conformant.adoc │ │ ├── ATS_extent.adoc │ │ ├── ATS_id.adoc │ │ ├── ATS_instanceid.adoc │ │ ├── ATS_links.adoc │ │ ├── ATS_modspec.adoc │ │ ├── ATS_output-format.adoc │ │ ├── ATS_paging-support.adoc │ │ ├── ATS_parameter-names.adoc │ │ ├── ATS_publishing.adoc │ │ ├── ATS_pubsub.adoc │ │ ├── ATS_requirements-set.adoc │ │ ├── ATS_root.adoc │ │ └── ATS_status-codes.adoc │ ├── code │ └── README.adoc │ ├── figures │ └── README.adoc │ ├── images │ ├── README.adoc │ └── img02.png │ ├── metanorma.yml │ ├── requirements │ ├── README.adoc │ ├── core │ │ ├── REQ_EDR-conformant.adoc │ │ ├── REQ_api.adoc │ │ ├── REQ_asynchronous.adoc │ │ ├── REQ_collectionid.adoc │ │ ├── REQ_conformance-test.adoc │ │ ├── REQ_data-query-area.adoc │ │ ├── REQ_data-query-corridor.adoc │ │ ├── REQ_data-query-cube.adoc │ │ ├── REQ_data-query-instances.adoc │ │ ├── REQ_data-query-position.adoc │ │ ├── REQ_data-query-radius.adoc │ │ ├── REQ_data-query-trajectory.adoc │ │ ├── REQ_data-query.adoc │ │ ├── REQ_extent.adoc │ │ ├── REQ_id.adoc │ │ ├── REQ_instanceid.adoc │ │ ├── REQ_links.adoc │ │ ├── REQ_modspec.adoc │ │ ├── REQ_output-format.adoc │ │ ├── REQ_paging-support.adoc │ │ ├── REQ_parameter-names.adoc │ │ ├── REQ_publishing.adoc │ │ ├── REQ_pubsub.adoc │ │ ├── REQ_requirements-set.adoc │ │ ├── REQ_root.adoc │ │ └── REQ_status-codes.adoc │ ├── requirement002.adoc │ └── requirements_class_core.adoc │ └── sections │ ├── annex-a.adoc │ ├── annex-bibliography.adoc │ ├── annex-history.adoc │ ├── annex-n.adoc │ ├── clause_0_front_material.adoc │ ├── clause_1_scope.adoc │ ├── clause_2_conformance.adoc │ ├── clause_3_references.adoc │ ├── clause_4_terms_and_definitions.adoc │ ├── clause_5_conventions.adoc │ ├── clause_6_context.adoc │ ├── clause_7_core.adoc │ └── clause_8_media_types.adoc ├── implementations ├── README.adoc ├── clients │ ├── README.md │ ├── covjson-reader.md │ ├── leaflet-coverage.md │ └── owslib.md └── servers │ ├── README.md │ ├── national-weather-service.md │ ├── open-weather.md │ ├── pygeoapi.md │ └── whu-edr-server.md ├── ogc-web-api-guidelines ├── OGC API EDR Checklist V1.0.md ├── OGC API EDR Checklist V1.1.md ├── OGC API EDR Part 1 Core Checklist V1.2.md ├── OGC API EDR Part 2 PubSub Checklist V1.0.md └── README.md ├── ogcapi-environmental-data-retrieval-1-oas30.bundled.json ├── ogcapi-environmental-data-retrieval-1-oas31.bundled.json ├── ogcapi-environmental-data-retrieval-1.bundled.json ├── ogcapi-ogc-org-edr-overview.md ├── ogcmetanorma.json ├── proposals └── README.md └── use-cases ├── Air Traffic Hazards and Restrictions along a flight path.md ├── Environmental-impact.md ├── Feature-orientated-example.md ├── Government-investment.md ├── Marine-Environmental-Data-and-Information-Network.md ├── README.md ├── Scientific toolset interation.md ├── Use-case-template.md ├── generalized-use-cases-from-charter.md ├── get-parameters-for-point-across-timeseries.md ├── get-unstructured-Obs-from-polygon.md ├── show-weather-radar-data-timeseries.md ├── view Air Traffic Hazards and Restrictions for an area.md └── view a forecast time series of a parameter at a point.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | candidate-standard/openapi/._view_api.html 3 | candidate-standard/openapi/view_api.html 4 | 19-086.html 5 | 19-086.pdf 6 | ._19-086.pdf 7 | *.abort 8 | *.lck 9 | *.xml_tmp 10 | document.doc 11 | document.err 12 | document.err.html 13 | document.html 14 | document.pdf 15 | document.pdf.err 16 | document.presentation.xml 17 | document.xml 18 | iev/ 19 | relaton/ 20 | .vscode/ 21 | -------------------------------------------------------------------------------- /25-014/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .swp 3 | .tmp.xml 4 | 5 | # Deploy key 6 | deploy_key 7 | -------------------------------------------------------------------------------- /25-014/25-014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/25-014/25-014.pdf -------------------------------------------------------------------------------- /25-014/25-014.pdf.err: -------------------------------------------------------------------------------- 1 | Page 17: Unresolved ID reference "standardization_target_definition" found. 2 | Page 17: Unresolved ID reference "_47252221-f560-dff4-d949-f3b211556790" found. 3 | Page 17: Unresolved ID reference "_110919e6-b3de-b6da-ca4f-7dd61b75579a" found. 4 | Page 30: Unresolved ID reference "_110919e6-b3de-b6da-ca4f-7dd61b75579a" found. 5 | Page 31: Unresolved ID reference "_47252221-f560-dff4-d949-f3b211556790" found. 6 | -------------------------------------------------------------------------------- /25-014/EDR_Profile_overview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/25-014/EDR_Profile_overview.pdf -------------------------------------------------------------------------------- /25-014/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "metanorma-cli" 4 | gem "relaton-cli" 5 | -------------------------------------------------------------------------------- /25-014/UML/README.adoc: -------------------------------------------------------------------------------- 1 | Store UML content in this directory. Feel free to use any organizational scheme that you like. 2 | 3 | Figures derived from UML diagrams should be placed in the "figures" folder. 4 | -------------------------------------------------------------------------------- /25-014/abstract_tests/ATS_class_example1.adoc: -------------------------------------------------------------------------------- 1 | [[ats_example1,/conf/example1]] 2 | [conformance_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/name-of-standard/1.0/conf/example1 6 | target:: http://www.opengis.net/spec/ABCD/m.n/req/req-class-a 7 | classification:: Target Type:Web API 8 | abstract-test:: /conf/core/map-response 9 | abstract-test:: /conf/core/http 10 | ==== 11 | 12 | ==== Example 1 13 | 14 | include::./ATS_test_example1.adoc[] 15 | 16 | ==== Example 2 17 | 18 | include::./ATS_test_example2.adoc[] 19 | -------------------------------------------------------------------------------- /25-014/abstract_tests/ATS_test_example1.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_api-definition-op]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/map-response 6 | target:: /req/req-class-a/req-name-1 7 | test-purpose:: Verify that the implementation's response for the map retrieval operation is correct 8 | test-method:: A single step test method can be documented as a single line. 9 | ==== -------------------------------------------------------------------------------- /25-014/abstract_tests/ATS_test_example2.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_http]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/http 6 | target:: /req/req-class-a/req-name-2 7 | test-purpose:: Validate that the resource paths advertised through the API conform with HTTP 1.1 and, where appropriate, TLS. 8 | 9 | [.component,class=test method] 10 | ===== 11 | [.component,class=step] 12 | -- 13 | A sequential multi-step test method can be documented as shown here. This is the first step. 14 | -- 15 | 16 | [.component,class=step] 17 | -- 18 | This is the second step. 19 | -- 20 | ===== 21 | ==== 22 | -------------------------------------------------------------------------------- /25-014/abstract_tests/README.adoc: -------------------------------------------------------------------------------- 1 | This folder contains the Abstract Test Suite. 2 | 3 | The test is expressed according to this pattern: 4 | 5 | NOTE: for each test, there should be a corresponding requirement in the "requirements" folder. 6 | -------------------------------------------------------------------------------- /25-014/code/README.adoc: -------------------------------------------------------------------------------- 1 | Sample code may be stored in this folder, organized as you see fit 2 | -------------------------------------------------------------------------------- /25-014/figures/README.adoc: -------------------------------------------------------------------------------- 1 | Figures go here. 2 | 3 | Each figure is a separate file with the naming convention: 4 | 5 | "FIGn.xxx" where "n" is a number with leading zeroes appropriate for the total number of figures and "xxx" is the appropriate extension for the file type. -------------------------------------------------------------------------------- /25-014/images/README.adoc: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. Image files for figures go in the "figures" directory. Only place in here images not used in figures (e.g., as parts of tables, as logos, etc.) 2 | 3 | Each graphic is a separate file with the naming convention: 4 | 5 | "GRPn.xxx" where "n" is a sequential number with leading zeroes appropriate for the total number of graphics and "xxx" is the appropriate extension for the file type. 6 | -------------------------------------------------------------------------------- /25-014/images/img02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/25-014/images/img02.png -------------------------------------------------------------------------------- /25-014/metanorma.yml: -------------------------------------------------------------------------------- 1 | --- 2 | metanorma: 3 | deploy: 4 | email: "ci@metanorma.org" 5 | -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_EDR-conformant.adoc: -------------------------------------------------------------------------------- 1 | [[req_class_core_edr-conformant]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/edr-conformant 7 | part:: A profile of the <> _SHALL_ require that a conformant implementation (<>) of that profile also demonstrate conformance to the <>. 8 | 9 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_asynchronous.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_asynchronous]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/asynchronous 7 | part:: A requirement _SHALL_ be defined for each query type that is asynchronous. 8 | 9 | part:: ach asynchronous query type requirement _SHALL_ define the HTTP Status Code and provide a message schema and text used to inform the user that the response is asynchronous. 10 | 11 | part:: The requirement _SHALL_ document the mechanism for delivering the result of the asynchronous query. This documentation can be a link to another document. 12 | 13 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_conformance-test.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_conformance-test]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/conformance-test 7 | part:: For each of the requirements defined in the profile there SHALL be a conformance test which defines how to validate compliance with the requirement. 8 | 9 | NOTE: this requirement can be deleted since modspec conformance addresses this issue. 10 | 11 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query-area.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-area]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-area 7 | part:: An area query requirement _SHALL_ specify the following: 8 | 9 | * Enumerated list of output_format types 10 | * The default_output_format 11 | * Enumerated list of crs_details values 12 | * Enumerated list of the operations that the query supports (i.e. GET, POST) 13 | 14 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query-corridor.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-corridor]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-corridor 7 | part:: A corridor requirement _SHALL_ specify the following: 8 | 9 | * Enumerated list of output_format types 10 | * The default_output_format 11 | * Enumerated list of crs_details values 12 | * Enumerated list of width-units values 13 | * Enumerated list of height-units values 14 | * Enumerated list of the operations that the query supports (i.e. GET, POST) 15 | 16 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query-cube.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-cube]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-cube 7 | part:: A cube requirement _SHALL_ specify the following: 8 | 9 | * Enumerated list of output_format types 10 | * The default_output_format 11 | * Enumerated list of crs_details values 12 | * Enumerated list of the operations that the query supports (i.e. GET, POST) 13 | 14 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query-instances.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-instance]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-instance 7 | part:: Instances _SHALL_ be defined in the data_queries enumerated list if the collection has child instances that can be queried. 8 | 9 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query-position.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-position]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-position 7 | part:: A position query requirement _SHALL_ specify the following: 8 | 9 | * Enumerated list of output_format types 10 | * The default_output_format 11 | * Enumerated list of crs_details values 12 | * Enumerated list of the operations that the query supports (i.e. GET, POST) 13 | 14 | part:: A position query requirement _SHALL_ also specify the logic used in selecting the data returned by the response, i.e. exact, nearest neighbour, most representative or interpolated. 15 | 16 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query-radius.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-radius]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-radius 7 | part:: A radius query requirement _SHALL_ specify the following: 8 | 9 | * Enumerated list of output_format types 10 | * The default_output_format 11 | * Enumerated list of crs_details values 12 | * Enumerated list of within_units values 13 | * Enumerated list of the operations that the query supports (i.e. GET, POST) 14 | 15 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query-trajectory.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-trajectory]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-trajectory 7 | part:: A trajectory requirement _SHALL_ specify the following: 8 | 9 | * Enumerated list of output_format types 10 | * The default_output_format 11 | * Enumerated list of crs_details values 12 | * Enumerated list of the operations that the query supports (i.e. GET, POST) 13 | 14 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_data-query.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query 7 | part:: A data_queries requirement definition _SHALL_ specify which data queries a service supports. This can be defined as follows: 8 | 9 | * Enumerated list of query types 10 | 11 | part:: Each data_query type listed _SHALL_ also have a requirement definition. 12 | 13 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_id.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_id]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/id 7 | part:: A Requirement definition _SHALL_ specify the rules that the Collection id string must follow. This can be one of the following: 8 | 9 | * identifier string 10 | * Regular expression defining valid string patterns. 11 | 12 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_modspec.adoc: -------------------------------------------------------------------------------- 1 | [[req_class_core_modspec]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/modspec 7 | part:: A profile of the <> _SHALL_ be conformant to the <>. 8 | 9 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_output-format.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_output-format]] 2 | 3 | [recommendation] 4 | ==== 5 | [%metadata] 6 | identifier:: /rec/core/output-format 7 | part:: For every output_format specified in any of the data_query enumerated lists there _SHOULD_ be a requirement which defines the schema or structure of the data (depending on the format). Suggested definition approaches are as follows: 8 | 9 | * JSON – Link to a JSON Schema definition 10 | * XML – Link to a XML Schema definition 11 | * CSV, TSV, PSV, SSV – Link to a definition based on the CSV on the web recommendations 12 | * Other types (e.g. binary file types) – Link to a description of the format 13 | 14 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_paging-support.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_paging-support]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/paging-support 7 | part:: Paging support depends on query pattern and output format. A requirement _SHALL_ be created for each combination of query pattern and output format that must support paging. 8 | 9 | ==== 10 | 11 | [recommendation] 12 | ==== 13 | [%metadata] 14 | identifier:: /rec/core/paging-support 15 | part:: Each paging requirement _SHOULD_ also include a recommendation for the default number of items to return per page request. 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_parameter-names.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_parameter-names]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/parameter-names 7 | part:: The parameter_names requirement definition _SHALL_ specify the required parameter_names objects in full. The parameter_names object defines the name, units, data type and measurement duration of the data value so it is essential that all implementations are consistent for interoperability. 8 | 9 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_requirements-set.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_requirements-set]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/requirements-set 7 | part:: The profile _SHALL_ consists of a set of requirements for a collection and (if the collection supports instances) the instances of the collection. 8 | part:: For each of the attributes listed, if it is in the collection (or instance), there _SHALL_ be a requirement to define it. 9 | 10 | ==== -------------------------------------------------------------------------------- /25-014/requirements/core/REQ_status-codes.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_status-codes]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/status-codes 7 | part:: For every http status code supported by the profile. A requirement _SHALL_ be created. 8 | part:: The requirement _SHALL_ provide the following: 9 | 10 | * A description of the cause of the error. 11 | * A JSON schema for the message body structure 12 | 13 | ==== -------------------------------------------------------------------------------- /25-014/requirements/requirement002.adoc: -------------------------------------------------------------------------------- 1 | [[req_class_a_name_2]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/req-class-a/req-name-2 7 | part:: The server SHALL support process input values encoded as qualified values. 8 | part:: The value of the `value` key SHALL be an _object_ instance. 9 | ==== 10 | -------------------------------------------------------------------------------- /25-014/requirements/requirements_class_core.adoc: -------------------------------------------------------------------------------- 1 | [[req_class_core]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Core' 5 | ==== 6 | [%metadata] 7 | identifier:: http://www.opengis.net/spec/ABCD/m.n/req/req-class-a 8 | subject:: Web API 9 | requirement:: /req/req-class-a/req-name-1 10 | requirement:: /req/req-class-a/req-name-2 11 | ==== 12 | 13 | 14 | -------------------------------------------------------------------------------- /25-014/sections/annex-a.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | == Conformance Class Abstract Test Suite (Normative) 3 | 4 | [NOTE] 5 | Ensure that there is a conformance class for each requirements class and a test for each requirement (identified by requirement name and number) 6 | 7 | === Conformance Class A 8 | 9 | include::../abstract_tests/ATS_class_example1.adoc[] 10 | -------------------------------------------------------------------------------- /25-014/sections/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | == Revision History 3 | 4 | [width="90%",options="header"] 5 | |=== 6 | |Date |Release |Editor | Primary clauses modified |Description 7 | |2016-04-28 |0.1 |G. Editor |all |initial version 8 | |=== 9 | -------------------------------------------------------------------------------- /25-014/sections/annex-n.adoc: -------------------------------------------------------------------------------- 1 | [appendix,obligation="informative"] 2 | == Title 3 | 4 | [NOTE] 5 | Place other Annex material in sequential annexes beginning with "B" and leave final two annexes for the Revision History and Bibliography 6 | -------------------------------------------------------------------------------- /25-014/sections/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | == Scope 2 | [NOTE] 3 | ==== 4 | Insert Scope text here. Give the subject of the document and the aspects of that scope covered by the document. 5 | ==== 6 | -------------------------------------------------------------------------------- /25-014/sections/clause_5_conventions.adoc: -------------------------------------------------------------------------------- 1 | == Conventions 2 | 3 | This sections provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document. 4 | 5 | === Identifiers 6 | The normative provisions in this standard are denoted by the URI 7 | 8 | `http://www.opengis.net/doc/IS/ogcapi-edr-3/1.0` 9 | 10 | All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base. 11 | -------------------------------------------------------------------------------- /25-014/sections/clause_8_media_types.adoc: -------------------------------------------------------------------------------- 1 | == Media Types for any data encoding(s) 2 | 3 | A section describing the MIME-types to be used is mandatory for any standard involving data encodings. If no suitable MIME type exists in http://www.iana.org/assignments/media-types/index.html then this section may be used to define a new MIME type for registration with IANA. 4 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal -------------------------------------------------------------------------------- /core/standard/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .swp 3 | .tmp.xml 4 | 5 | # Deploy key 6 | deploy_key 7 | -------------------------------------------------------------------------------- /core/standard/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "metanorma-cli" 4 | gem "relaton-cli" 5 | -------------------------------------------------------------------------------- /core/standard/UML/README.adoc: -------------------------------------------------------------------------------- 1 | Store UML content in this directory. Feel free to use any organizational scheme that you like. 2 | 3 | Figures derived from UML diagrams should be placed in the "figures" folder. 4 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/ATS_class_covjson.adoc: -------------------------------------------------------------------------------- 1 | [[ats_covjson]] 2 | [conformance_class] 3 | .CoverageJSON 4 | ==== 5 | [%metadata] 6 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/covjson 7 | subject:: <> 8 | classification:: Target Type:Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/core 10 | conformance-test:: /conf/covjson/content 11 | conformance-test:: /conf/covjson/definition 12 | ==== 13 | 14 | ==== CoverageJSON Definition 15 | 16 | include::covjson/ATS_definition.adoc[] 17 | 18 | ==== CoverageJSON Content 19 | 20 | include::covjson/ATS_content.adoc[] 21 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/ATS_class_geojson.adoc: -------------------------------------------------------------------------------- 1 | [[ats_geojson]] 2 | [conformance_class] 3 | .GeoJSON 4 | ==== 5 | [%metadata] 6 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/geojson 7 | subject:: <> 8 | classification:: Target Type:Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/core 10 | conformance-test:: /conf/geojson/definition 11 | conformance-test:: /conf/geojson/content 12 | ==== 13 | 14 | 15 | ==== GeoJSON Definition 16 | 17 | include::geojson/ATS_definition.adoc[] 18 | 19 | ==== GeoJSON Content 20 | 21 | include::geojson/ATS_content.adoc[] 22 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/README.adoc: -------------------------------------------------------------------------------- 1 | This folder contains the Abstract Test Suite. 2 | 3 | Each file describes a single test. The naming convention for these files is: 4 | 5 | "TESTn.adoc" where "n" corresponds to the test number. Numbers should have preceeding zeros appropriate for the total number of tests in the project (e.g., the first test could be TEST001 if less than 1000 tests are anticipated). 6 | 7 | The test is expressed according to this pattern: 8 | 9 | NOTE: for each test, there should be a corresponding requirement in the "requirements" folder. 10 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-crs.adoc: -------------------------------------------------------------------------------- 1 | [[ats_edr_rc-crs]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/edr/rc-crs 6 | target:: /req/edr/rc-crs 7 | test-purpose:: Validate that each collection provided by the server is described in the Collections Metadata. 8 | test-method:: 9 | step::: Verify that the crs property in the collection Metadata is valid. 10 | step::: Verify that each crs entry includes a unique (to the collection) `name` property. 11 | step::: Verify that each crs entry includes a valid Well Known Text definition for the `wkt` property. 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-cube-variables.adoc: -------------------------------------------------------------------------------- 1 | [[ats_edr_rc-cube-variables]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/edr/rc-cube-variables 6 | target:: /req/edr/rc-cube-variables 7 | test-purpose:: Validate `variables` property for a query data type in the `data_queries` section in the collection is correctly defined. 8 | test-method:: 9 | step::: Verify that the `variables` property complies with <> 10 | step::: Verify that the `variables` property has a `height_units` property 11 | step::: Verify that the `height_units` property is a string array 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-cube-z-response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collections_rc-cube-z-response]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/edr/rc-z-response-cube 6 | target:: /req/edr/cube-z-response 7 | test-purpose:: Validate that the vertical level query parameters are processed correctly. 8 | test-method:: 9 | step::: Verify that only resources that have a vertical geometry that intersects the vertical information in the `z` parameter were included in the result set 10 | step::: Validate that the vertical level parameter complies with the syntax described in <>. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-height-units-response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collections_rc-height-units-response]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/collections/rc-height-units-response 6 | target:: /req/edr/height-units-response 7 | test-purpose:: Validate that the `height-units` query parameters are processed correctly. 8 | test-method:: 9 | + 10 | -- 11 | step::: Verify that height units not listed in the metadata will generate an error message 12 | step::: Validate that the `height-units` parameter complies with the syntax described in <>. 13 | -- 14 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-items-variables.adoc: -------------------------------------------------------------------------------- 1 | [[ats_edr_rc-items-variables]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/edr/rc-items-variables 6 | target:: /req/edr/rc-items-variables 7 | test-purpose:: Validate `variables` property for a query data type in the `data_queries` section in the collection is correctly defined. 8 | test-method:: Verify that the `variables` object has a `query_type` property 9 | . Verify that the value of the `query_type` property is items 10 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-md-collection-info-table.adoc: -------------------------------------------------------------------------------- 1 | [reftext='{table-caption} {counter:table-num}'] 2 | .Schema and Tests for Collection Entries 3 | [width="90%",cols="3",options="header"] 4 | |=== 5 | |Format |Schema Document |Test ID 6 | |HTML |link:https://schemas.opengis.net/ogcapi/edr/1.2/openapi/oas31/schemas/collections/collection.yaml[collection.yaml]|<> 7 | |JSON |link:https://schemas.opengis.net/ogcapi/edr/1.2/openapi/oas31/schemas/collections/collection.yaml[collection.yaml] |<> 8 | |=== 9 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-md-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collections_rc-md-op]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/collections/rc-md-op 6 | target:: /req/collections/rc-md-op 7 | test-purpose:: Validate that information about the Collections can be retrieved from the expected location. 8 | test-method:: 9 | step::: Issue an HTTP GET request to the URL {root}/collections 10 | step::: Validate that a document was returned with a status code 200 11 | step::: Validate the contents of the returned document using test <>. 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-md-query-links.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collections_rc-md-query-links]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/edr/rc-md-query-links 6 | target:: /req/core/rc-md-query-links 7 | test-purpose:: Validate that each Collection metadata entry in the Collections Metadata document includes all required links. 8 | test-method:: Verify that all links include the `rel` and `type` link parameters. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-md-success-table.adoc: -------------------------------------------------------------------------------- 1 | [reftext='{table-caption} {counter:table-num}'] 2 | .Schema and Tests for Collections content 3 | [width="90%",cols="3",options="header"] 4 | |=== 5 | |Format |Schema Document |Test ID 6 | |HTML |link:https://schemas.opengis.net/ogcapi/edr/1.2/openapi/oas31/schemas/collections/collections.yaml[collections.yaml]|<> 7 | |JSON |link:https://schemas.opengis.net/ogcapi/edr/1.2/openapi/oas31/schemas/collections/collections.yaml[collections.yaml] |<> 8 | |=== 9 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-radius-variables.adoc: -------------------------------------------------------------------------------- 1 | [[ats_edr_rc-radius-variables]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/edr/rc-radius-variables 6 | target:: /req/edr/rc-radius-variables 7 | test-purpose:: Validate `variables` property for a query data type in the `data_queries` section in the collection is correctly defined. 8 | test-method:: 9 | step::: Verify that the `variables` property complies with <> 10 | step::: Verify that the `variables` property has a `within_units` property 11 | step::: Verify that the `within_units` property is a string array 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_rc-width-units-response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collections_rc-width-units-response]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/collections/REQ_rc-width-units-response 6 | target:: /req/edr/width-units-response 7 | test-purpose:: Validate that the `width-units` query parameters are processed correctly. 8 | test-method:: 9 | + 10 | -- 11 | step::: Verify that units not listed in the metadata will generate an error message 12 | step::: Validate that the `width-units` parameter complies with the syntax described in <>. 13 | -- 14 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/ATS_src-md-success.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collections_src-md-success]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/collections/src-md-success 6 | target:: /req/collections/src-md-success 7 | test-purpose:: Validate that the Collection content complies with the required structure and contents. 8 | test-method:: Verify that the content of the response is consistent with the content for this Resource Collection in the `/collections` response. That is, the values for `id`, `title`, `description` and `extent` are identical. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/collections/area/ATS_rc-z-response.adoc: -------------------------------------------------------------------------------- 1 | //Autogenerated file - DO NOT EDIT 2 | [[ats_collections_rc-z-response-area]] 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/edr/rc-z-response-area 7 | target:: /req/edr/z-response 8 | test-purpose:: Validate that the vertical level query parameters are processed correctly. 9 | test-method:: 10 | step::: Verify that only resources that have a vertical geometry that intersects the vertical information in the `z` parameter were included in the result set 11 | step::: Validate that the vertical level parameter complies with the syntax described in <>. 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/core/ATS_api-definition-success.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_api-definition-success]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/api-definition-success 6 | target:: /req/core/api-definition-success 7 | test-purpose:: Validate that the API Definition complies with the required structure and contents. 8 | test-method:: Validate the API Definition document against an appropriate schema document. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/core/ATS_http.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_http]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/http 6 | target:: /req/core/http 7 | test-purpose:: Validate that the resource paths advertised through the API conform with HTTP 1.1 and, where appropriate, TLS. 8 | test-method:: 9 | step::: All compliance tests SHALL be configured to use the HTTP 1.1 protocol exclusively. 10 | step::: For API implementayions incorporating the EDR API that support HTTPS, all compliance tests SHALL be configured to use <> (RFC 2818) with their HTTP 1.1 protocol. 11 | ==== 12 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/core/ATS_rc-numberMatched.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_rc-numberMatched]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/rc-numberMatched 6 | target:: /req/core/rc-numberMatched 7 | test-purpose:: Validate the numberMatched parameter returned with a Features response 8 | test-method:: 9 | step::: When a property `numberMatched` is included in the response, validate that the value of the `numberMatched` parameter is identical to the number of features in the feature collections that match the selection parameters like bbox, datetime or additional filter parameters. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/core/ATS_rc-numberReturned.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_rc-numberReturned]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/rc-numberReturned 6 | target:: /req/core/rc-numberMatched 7 | test-purpose:: Validate the numberReturned parameter returned with a Features response 8 | test-method:: 9 | step::: When a property `numberReturned` is included in the response, validate that the `numberReturned` value is identical to the number of features in the 10 | response. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/core/ATS_root-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_root-op]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/root-op 6 | target:: /req/core/root-op 7 | test-purpose:: Validate that a landing page can be retrieved from the expected location. 8 | test-method:: 9 | step::: Issue an HTTP GET request to the URL {root}/ 10 | step::: Validate that a document was returned with a status code 200 11 | step::: Validate the contents of the returned document using test <>. 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/core/radius/ATS_rc-within-response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collections_rc-within-response]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/collections/REQ_rc-within-response 6 | target:: /req/edr/REQ_rc-within-response 7 | test-purpose:: Validate that the `within` query parameters are processed correctly. 8 | test-method:: 9 | + 10 | -- 11 | step::: Verify that if the `within-units` is not specified with the `within` parameter a `400` error message will be generated 12 | step::: Validate that the `within` parameter complies with the syntax described in <>. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/covjson/ATS_content.adoc: -------------------------------------------------------------------------------- 1 | [[ats_covjson_content]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/covjson/content 6 | target:: /req/covjson/content 7 | test-purpose:: Verify the content of a CoverageJSON document given an input document and schema. 8 | test-method:: 9 | step::: Validate that the document is a CoverageJSON document. 10 | step::: Validate the document against the link:https://covjson.org/schema/dev/coveragejson.json[coveragejson.json] schema using a JSON Schema validator. 11 | ==== 12 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/covjson/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_covjson_definition]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/covjson/definition 6 | target:: /req/covjson/definition 7 | test-purpose:: Verify support for CoverageJSON 8 | test-method:: 9 | . A resource is requested with response media type of `application/vnd.cov+json` 10 | . All `200`-responses SHALL support the following media types: 11 | - `application/vnd.cov+json` for resources 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/edr-geojson/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_edr-geojson_definition]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/edr-geojson/definition 6 | target:: /req/edr-geojson/definition 7 | test-purpose:: Verify support for the EDR GeoJSON Schema 8 | test-method:: 9 | . A resource is requested with response media type of `application/json` and adheres to the EDR Feature Collection GeoJSON Schema. 10 | . All `200`-responses SHALL support the following media types: 11 | - `application/json` for resources 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/geojson/ATS_content.adoc: -------------------------------------------------------------------------------- 1 | [[ats_geojson_content]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/geojson/content 6 | target:: /req/geojson/content 7 | test-purpose:: Verify the content of a GeoJSON document given an input document and schema. 8 | test-method:: 9 | step::: Validate that the document is a GeoJSON document. 10 | step::: Validate the document against the schema using a JSON Schema validator. 11 | step::: Validate the document against the schema using a GeoJSON Schema validator. 12 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/geojson/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_geojson_definition]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/geojson/definition 6 | target:: /req/geojson/definition 7 | test-purpose:: Verify support for JSON and GeoJSON 8 | test-method:: 9 | . A resource is requested with response media type of `application/geo+json` 10 | . All `200`-responses SHALL support the following media types: 11 | - `application/geo+json` for resources that include feature content, and 12 | - `application/json` for all other resources. 13 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/html/ATS_content.adoc: -------------------------------------------------------------------------------- 1 | [[ats_html_content]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/html/content 6 | target:: /req/html/content 7 | test-purpose:: Verify the content of an HTML document given an input document and schema. 8 | test-method:: 9 | step::: Validate that the document is an link:https://www.w3.org/TR/html5/[HTML 5 document] 10 | step::: Manually inspect the document against the schema. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/html/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_html_definition]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/html/definition 6 | target:: /req/html/definition 7 | test-purpose:: Verify support for HTML 8 | test-method::Verify that every `200`-response of every operation of the API where HTML was requested is of media type `text/html` 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/instances/ATS_rc-md-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_instances_rc-md-op]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/instances/rc-md-op 6 | target:: /req/instances/rc-md-op 7 | test-purpose:: Validate that information about the instances of a Collection can be retrieved from the expected location. 8 | test-method:: 9 | + 10 | -- 11 | step::: Issue an HTTP GET request to the URL {root}/collections/{collectionId}/instances 12 | step::: Validate that a document was returned with a status code 200 13 | step::: Validate the contents of the returned document using test <>. 14 | -- 15 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/instances/ATS_src-md-success.adoc: -------------------------------------------------------------------------------- 1 | [[ats_instances_src-md-success]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/instances/src-md-success 6 | target:: /req/instances/src-md-success 7 | test-purpose:: Validate that the Collection Instance content complies with the required structure and contents. 8 | test-method:: Verify that the content of the response is consistent with the content for this Resource Collection in the `/collections` response. That is, the values for `id`, `title`, `description` and `extent` are identical. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/json/ATS_content.adoc: -------------------------------------------------------------------------------- 1 | [[ats_json_content]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/json/content 6 | target:: /req/json/content 7 | test-purpose:: Verify the content of a JSON document given an input document and schema. 8 | test-method:: 9 | step::: Validate that the document is a JSON document. 10 | step::: Validate the document against the schema using a JSON Schema validator. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/json/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_json_definition]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/json/definition 6 | target:: /req/json/definition 7 | test-purpose:: Verify support for JSON 8 | test-method:: 9 | step::: A resource is requested with response media type of `application/json` 10 | step::: All `200`-responses SHALL support the media type: `application/json` 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas30/ATS_completeness.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_completeness]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas30/completeness 6 | target:: /req/oas/completeness 7 | test-purpose:: Verify the completeness of an OpenAPI document. 8 | test-method:: 9 | Verify that for each operation, the OpenAPI document describes all link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.4.md#httpCodes[HTTP Status Codes] and link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.4.md#responseObject[Response Objects] that the API uses in responses. 10 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas30/ATS_definition-1.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_oas-definition-1]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas30/oas-definition-1 6 | target:: /req/oas30/oas-definition 7 | test-purpose:: Verify that JSON and HTML versions of the OpenAPI document are available. 8 | test-method:: 9 | step::: Verify that an OpenAPI definition in JSON is available using the media type `application/vnd.oai.openapi+json;version=3.0` and link relation `service-desc` 10 | step::: Verify that an HTML version of the API definition is available using the media type `text/html` and link relation `service-doc`. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas30/ATS_definition-2.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_oas-definition-2]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas30/oas-definition-2 6 | target:: /req/oas30/oas-definition 7 | test-purpose:: Verify that the OpenAPI document is valid JSON. 8 | test-method:: Verify that the JSON representation conforms to the <>. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas30/ATS_exception-codes.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_exceptions-codes]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas30/exceptions-codes 6 | target:: /req/oas/exceptions-codes 7 | test-purpose:: Verify that the OpenAPI document fully describes potential exception codes. 8 | test-method:: Verify that for each operation, the OpenAPI document describes all link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.4.md#httpCodes[HTTP Status Codes] that may be generated. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas30/ATS_oas-impl.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_oas-impl]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas30/oas-impl 6 | target:: /req/oas/oas-impl 7 | test-purpose:: Verify that all capabilities specified in the OpenAPI definition are implemented by the API. 8 | test-method:: 9 | step::: Construct a path from each URL template including all server URL options and all enumerated path parameters. 10 | step::: For each path defined in the OpenAPI document, validate that the path performs in accordance with the API definition and the API-EDR standard. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas30/ATS_security.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_security]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas30/security 6 | target:: /req/oas/security 7 | test-purpose:: Verify that any authentication protocols implemented by the API are documented in the OpenAPI document. 8 | test-method:: 9 | step::: Identify all authentication protocols supported by the API. 10 | step::: Validate that each authentication protocol is described in the OpenAPI document by a Security Schema Object and its use specified by a Security Requirement Object. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas31/ATS_completeness.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas31_completeness]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas31/completeness 6 | target:: /req/oas/completeness 7 | test-purpose:: Verify the completeness of an OpenAPI document. 8 | test-method:: 9 | Verify that for each operation, the OpenAPI document describes all link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.1.1.md#httpCodes[HTTP Status Codes] and link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.1.1.md#responseObject[Response Objects] that the API uses in responses. 10 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas31/ATS_definition-1.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas31_oas-definition-1]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas31/oas-definition-1 6 | target:: /req/oas31/oas-definition 7 | test-purpose:: Verify that JSON and HTML versions of the OpenAPI document are available. 8 | test-method:: 9 | step::: Verify that an OpenAPI definition in JSON is available using the media type `application/vnd.oai.openapi+json;version=3.1` and link relation `service-desc` 10 | step::: Verify that an HTML version of the API definition is available using the media type `text/html` and link relation `service-doc`. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas31/ATS_definition-2.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas31_oas-definition-2]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas31/oas-definition-2 6 | target:: /req/oas31/oas-definition 7 | test-purpose:: Verify that the OpenAPI document is valid JSON. 8 | test-method:: Verify that the JSON representation conforms to the <>. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas31/ATS_exception-codes.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas31_exceptions-codes]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas31/exceptions-codes 6 | target:: /req/oas/exceptions-codes 7 | test-purpose:: Verify that the OpenAPI document fully describes potential exception codes. 8 | test-method:: Verify that for each operation, the OpenAPI document describes all link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.1.1.md#httpCodes[HTTP Status Codes] that may be generated. 9 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas31/ATS_oas-impl.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas31_oas-impl]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas31/oas-impl 6 | target:: /req/oas/oas-impl 7 | test-purpose:: Verify that all capabilities specified in the OpenAPI definition are implemented by the API. 8 | test-method:: 9 | step::: Construct a path from each URL template including all server URL options and all enumerated path parameters. 10 | step::: For each path defined in the OpenAPI document, validate that the path performs in accordance with the API definition and the API-EDR standard. 11 | ==== -------------------------------------------------------------------------------- /core/standard/abstract_tests/oas31/ATS_security.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas31_security]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/oas31/security 6 | target:: /req/oas/security 7 | test-purpose:: Verify that any authentication protocols implemented by the API are documented in the OpenAPI document. 8 | test-method:: 9 | step::: Identify all authentication protocols supported by the API implementation incorporating EDR API requirements. 10 | step::: Validate that each authentication protocol is described in the OpenAPI document by a Security Schema Object and its use specified by a Security Requirement Object. 11 | ==== 12 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/post/ATS_content_type.adoc: -------------------------------------------------------------------------------- 1 | [[ats_post_content_type]] 2 | {counter2:ats-id} 3 | [width="90%",cols="2,6a"] 4 | .Abstract Test {ats-id} 5 | |=== 6 | ^|*Abstract Test {ats-id}* |*/conf/post/content_type* 7 | ^|Test Purpose |Verify that any HTTP POST functionality defined correctly. 8 | ^|Requirement |<<_req_post_content_type,/req/post/content_type>> 9 | ^|Test Method |. Validate that a HTTP POST request of the content type defined in the OpenAPI documentation produces a response with *HTTP 2xx* or *HTTP 3xx* status code. 10 | |=== 11 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/post/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_post_definition]] 2 | {counter2:ats-id} 3 | [width="90%",cols="2,6a"] 4 | .Abstract Test {ats-id} 5 | |=== 6 | ^|*Abstract Test {ats-id}* |*/conf/post/definition* 7 | ^|Test Purpose |Verify that support for HTTP POST queries is correctly defined. 8 | ^|Requirement |<<_req_post_definition,/req/post/definition>> 9 | ^|Test Method | Verify that any OpenAPI HTTP POST definitions provide details for the URL, Request Body type and a Request Body schema. 10 | |=== 11 | -------------------------------------------------------------------------------- /core/standard/abstract_tests/post/ATS_schema.adoc: -------------------------------------------------------------------------------- 1 | [[ats_post_schema]] 2 | {counter2:ats-id} 3 | [width="90%",cols="2,6a"] 4 | .Abstract Test {ats-id} 5 | |=== 6 | ^|*Abstract Test {ats-id}* |*/conf/post/schema* 7 | ^|Test Purpose |Verify that the Request Body Schema defined in the OpenAPI documentation is valid. 8 | ^|Requirement |<<_req_post_schema,/req/post/schema>> 9 | ^|Test Method |. Validate that a POST request with a message body format defined by the information in the OpenAPI schema produces a response with *HTTP 2xx* or *HTTP 3xx* status code. 10 | |=== 11 | -------------------------------------------------------------------------------- /core/standard/code/README.adoc: -------------------------------------------------------------------------------- 1 | Sample code may be stored in this folder, organized as you see fit 2 | -------------------------------------------------------------------------------- /core/standard/examples/json/conformance_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "conformsTo": [ 3 | "https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/core", 4 | "https://www.opengis.net/spec/ogcapi-common-1/1.0/conf/core", 5 | "https://www.opengis.net/spec/ogcapi-common-2/1.0/conf/collections", 6 | "https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/oas30", 7 | "https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/html", 8 | "https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/geojson" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /core/standard/figures/README.adoc: -------------------------------------------------------------------------------- 1 | Figures go here. 2 | 3 | Each figure is a separate file with the naming convention: 4 | 5 | "FIGn.xxx" where "n" is a number with leading zeroes appropriate for the total number of figures and "xxx" is the appropriate extension for the file type. -------------------------------------------------------------------------------- /core/standard/iev/cache/version: -------------------------------------------------------------------------------- 1 | 0.3.1 -------------------------------------------------------------------------------- /core/standard/images/README.md: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. Image files for figures go in the "figures" directory. Only place in here images not used in figures (e.g., as parts of tables, as logos, etc.) 2 | 3 | Each graphic is a separate file with the naming convention: 4 | 5 | "GRPn.xxx" where "n" is a sequential number with leading zeroes appropriate for the total number of graphics and "xxx" is the appropriate extension for the file type. 6 | -------------------------------------------------------------------------------- /core/standard/images/REQ_rc-resolution-x-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/core/standard/images/REQ_rc-resolution-x-a.png -------------------------------------------------------------------------------- /core/standard/images/REQ_rc-resolution-x-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/core/standard/images/REQ_rc-resolution-x-b.png -------------------------------------------------------------------------------- /core/standard/images/REQ_rc-resolution-z-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/core/standard/images/REQ_rc-resolution-z-a.png -------------------------------------------------------------------------------- /core/standard/images/REQ_rc-resolution-z-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/core/standard/images/REQ_rc-resolution-z-b.png -------------------------------------------------------------------------------- /core/standard/metanorma.yml: -------------------------------------------------------------------------------- 1 | --- 2 | metanorma: 3 | deploy: 4 | email: "ci@metanorma.org" 5 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/collections/collectionId.yaml: -------------------------------------------------------------------------------- 1 | name: collectionId 2 | in: path 3 | description: Identifier (id) of a specific collection 4 | required: true 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/crs.yaml: -------------------------------------------------------------------------------- 1 | name: crs 2 | in: query 3 | description: identifier (id) of the coordinate system to return data in list of valid crs identifiers for the chosen collection are defined in the metadata responses. If not supplied the coordinate reference system will default to WGS84. 4 | required: false 5 | example: native 6 | schema: 7 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/f.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: format to return the data response in 4 | required: false 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/height-units.yaml: -------------------------------------------------------------------------------- 1 | name: height-units 2 | in: query 3 | description: Distance units for the corridor-height parameter 4 | required: true 5 | example: KM 6 | schema: 7 | type: string 8 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/limit.yaml: -------------------------------------------------------------------------------- 1 | name: limit 2 | in: query 3 | description: Defines the maximum number of features to return in a request 4 | required: false 5 | example: 10 6 | schema: 7 | type: number 8 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/parameter-name.yaml: -------------------------------------------------------------------------------- 1 | name: parameter-name 2 | in: query 3 | description: comma delimited list of parameters to retrieve data for. Valid parameters are listed in the collections metadata 4 | schema: 5 | type: string 6 | style: form 7 | explode: false 8 | required: false 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/resolution-x.yaml: -------------------------------------------------------------------------------- 1 | name: resolution-x 2 | in: query 3 | description: |+ 4 | Defined it the user requires data at a different resolution from the native resolution of the data along the x-axis 5 | 6 | If this is a single value it denotes the number of intervals to retrieve data for along the x-axis 7 | 8 | i.e. resolution-x=10 9 | 10 | would retrieve 10 values along the x-axis from the minimum x coordinate to maximum x coordinate (i.e. a value at both the minimum x and maximum x coordinates and 8 values between). 11 | required: false 12 | schema: 13 | items: 14 | type: string 15 | 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/resolution-y.yaml: -------------------------------------------------------------------------------- 1 | name: resolution-y 2 | in: query 3 | description: |+ 4 | Defined it the user requires data at a different resolution from the native resolution of the data along the y-axis 5 | 6 | If this is a single value it denotes the number of intervals to retrieve data for along the y-axis 7 | 8 | i.e. resolution-y=10 9 | 10 | would retrieve 10 values along the y-axis from the minimum y coordinate to maximum y coordinate (i.e. a value at both the minimum y and maximum y coordinates and 8 values between). 11 | required: false 12 | schema: 13 | items: 14 | type: string 15 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/resolution-z.yaml: -------------------------------------------------------------------------------- 1 | name: resolution-z 2 | in: query 3 | description: |+ 4 | Defined it the user requires data at a different resolution from the native resolution of the data along the z-axis 5 | 6 | If this is a single value it denotes the number of intervals to retrieve data for along the z-axis 7 | 8 | i.e. resolution-z=10 9 | 10 | would retrieve 10 values along the z-axis from the minimum z coordinate to maximum z coordinate (i.e. a value at both the minimum z and maximum z coordinates and 8 values between). 11 | required: false 12 | schema: 13 | items: 14 | type: string 15 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/width-units.yaml: -------------------------------------------------------------------------------- 1 | name: width-units 2 | in: query 3 | description: Distance units for the corridor-width parameter 4 | required: true 5 | example: KM 6 | schema: 7 | type: string 8 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/within-units.yaml: -------------------------------------------------------------------------------- 1 | name: within-units 2 | in: query 3 | description: Distance units for the within parameter 4 | required: true 5 | example: KM 6 | schema: 7 | type: string 8 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/core/within.yaml: -------------------------------------------------------------------------------- 1 | name: within 2 | in: query 3 | description: Defines radius of area around defined coordinates to include in the data selection 4 | required: true 5 | example: 10 6 | schema: 7 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/queries/instanceId.yaml: -------------------------------------------------------------------------------- 1 | name: instanceId 2 | in: path 3 | description: Identifier (id) of a specific instance of a collection 4 | required: true 5 | schema: 6 | type: string 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/queries/itemId.yaml: -------------------------------------------------------------------------------- 1 | name: itemId 2 | in: path 3 | required: true 4 | description: 'Retrieve data from the collection using a unique identifier.' 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas30/parameters/queries/locationId.yaml: -------------------------------------------------------------------------------- 1 | name: locationId 2 | in: path 3 | required: true 4 | description: Comma delimited list of location identifiers (i.e. EGLL or EGLL,YBBN,CYOW or London,Brisbane) 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas30/paths/collections/collection.yaml: -------------------------------------------------------------------------------- 1 | # Collection 2 | get: 3 | tags: 4 | - Collection metadata 5 | summary: List query types supported by the collection 6 | description: This will provide information about the query types that are supported by the chosen collection Use content negotiation to request HTML or JSON 7 | operationId: getQueries 8 | parameters: 9 | - $ref: ../../parameters/collections/collectionId.yaml 10 | - $ref: ../../parameters/core/f.yaml 11 | responses: 12 | 200: 13 | $ref: ../../responses/collections/collection.yaml 14 | default: 15 | $ref: ../../responses/core/exception.yaml 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/paths/collections/collections.yaml: -------------------------------------------------------------------------------- 1 | # Collections 2 | get: 3 | tags: 4 | - Capabilities 5 | summary: List the avialable collections from the service 6 | operationId: listCollections 7 | parameters: 8 | - $ref: ../../parameters/core/bbox.yaml 9 | - $ref: https://beta.schemas.opengis.net/ogcapi/common/part2/0.1/collections/openapi/parameters/datetime.yaml 10 | - $ref: ../../parameters/core/f.yaml 11 | responses: 12 | 200: 13 | $ref: ../../responses/collections/collections.yaml 14 | default: 15 | $ref: ../../responses/core/exception.yaml 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/paths/core/conformance.yaml: -------------------------------------------------------------------------------- 1 | # Conformance 2 | get: 3 | tags: 4 | - Capabilities 5 | summary: Information about standards that this API conforms to 6 | description: List all requirements classes specified in a standard that the server conforms to 7 | operationId: getRequirementsClasses 8 | parameters: 9 | - $ref: ../../parameters/core/f.yaml 10 | responses: 11 | '200': 12 | $ref: ../../responses/core/conformance.yaml 13 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/paths/core/landingPage.yaml: -------------------------------------------------------------------------------- 1 | # Landing page 2 | get: 3 | tags: 4 | - Capabilities 5 | summary: landing page of this API 6 | description: The landing page provides links to the API definition, the Conformance statements and the metadata about the feature data in this dataset. 7 | operationId: getLandingPage 8 | parameters: 9 | - $ref: ../../parameters/core/f.yaml 10 | responses: 11 | '200': 12 | $ref: ../../responses/core/landingPage.yaml 13 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/paths/queries/instances.yaml: -------------------------------------------------------------------------------- 1 | # Instances query 2 | get: 3 | tags: 4 | - Instance metadata 5 | summary: 'List data instances of {collectionId}' 6 | description: This will provide list of the avalable instances of the collection Use content negotiation to request HTML or JSON. 7 | operationId: getCollectionInstances 8 | parameters: 9 | - $ref: ../../parameters/collections/collectionId.yaml 10 | - $ref: ../../parameters/core/f.yaml 11 | responses: 12 | '200': 13 | $ref: ../../responses/queries/instances.yaml 14 | default: 15 | $ref: ../../responses/core/exception.yaml 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/request-bodies/cube.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | required: 6 | - bbox 7 | properties: 8 | bbox: 9 | type: string 10 | z: 11 | type: string 12 | datetime: 13 | type: string 14 | parameter-name: 15 | type: array 16 | items: 17 | type: string 18 | crs: 19 | type: string 20 | f: 21 | type: string 22 | 23 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/request-bodies/location.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | properties: 6 | datetime: 7 | type: string 8 | parameter-name: 9 | type: array 10 | items: 11 | type: string 12 | crs: 13 | type: string 14 | f: 15 | type: string 16 | limit: 17 | type: number 18 | 19 | 20 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/request-bodies/locations.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | properties: 6 | bbox: 7 | type: string 8 | datetime: 9 | type: string 10 | limit: 11 | type: number 12 | 13 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/request-bodies/trajectory.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | required: 6 | - coords 7 | properties: 8 | coords: 9 | description: Well Known Text LineString definition 10 | type: string 11 | z: 12 | type: string 13 | datetime: 14 | type: string 15 | parameter-name: 16 | type: array 17 | items: 18 | type: string 19 | crs: 20 | type: string 21 | f: 22 | type: string 23 | 24 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/collections/collection.yaml: -------------------------------------------------------------------------------- 1 | description: Metadata about the {collectionId} collection shared by this API 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/collections/collection.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/collections/collections.yaml: -------------------------------------------------------------------------------- 1 | description: Metadata about the Environmental data collections shared by this API 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/collections/collections.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/core/conformance.yaml: -------------------------------------------------------------------------------- 1 | description: URIs of all requirements classes supported by the server 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/confClasses.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/core/exception.yaml: -------------------------------------------------------------------------------- 1 | description: An error occured. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/core/landingPage.yaml: -------------------------------------------------------------------------------- 1 | description: links to the API capabilities 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/landingPage.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/200.yaml: -------------------------------------------------------------------------------- 1 | description: Data ranges required to construct valid queries for the choosen data collection 2 | content: 3 | application/vnd.cov+json: 4 | schema: 5 | $ref: ../../schemas/covjson/coverageJSON.yaml 6 | application/geo+json: 7 | schema: 8 | $ref: ../../schemas/edr-geojson/edrFeatureCollectionGeoJSON.yaml 9 | application/x-netcdf: 10 | schema: 11 | type: object 12 | text/xml: 13 | schema: 14 | type: string 15 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/202.yaml: -------------------------------------------------------------------------------- 1 | description: Data request still being processed 2 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/308.yaml: -------------------------------------------------------------------------------- 1 | description: Request will take a significant time to process 2 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/400.yaml: -------------------------------------------------------------------------------- 1 | description: Invalid request. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/xml: {} 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/404.yaml: -------------------------------------------------------------------------------- 1 | description: Requested data not found. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/xml: {} 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/413.yaml: -------------------------------------------------------------------------------- 1 | description: Requested data volume to large to be handled by this service. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/xml: {} 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/instances.yaml: -------------------------------------------------------------------------------- 1 | description: Metadata about the instance of {collectionId} collection shared by this API 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/queries/instances.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/responses/queries/items.yaml: -------------------------------------------------------------------------------- 1 | description: List of pre-existing items available for retrieval 2 | content: 3 | application/geo+json: 4 | schema: 5 | $ref: ../../schemas/edr-geojson/edrFeatureCollectionGeoJSON.yaml 6 | application/json: 7 | schema: 8 | type: string 9 | text/xml: 10 | schema: 11 | type: string 12 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/areaDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - area 9 | example: area 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/areaLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/area 7 | variables: 8 | $ref: areaDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/collections.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - links 4 | - collections 5 | properties: 6 | links: 7 | type: array 8 | items: 9 | $ref: ../core/link.yaml 10 | example: 11 | href: https://example.org/edr/collections 12 | hreflang: en 13 | rel: self 14 | type: application/yaml 15 | collections: 16 | type: array 17 | items: 18 | $ref: collection.yaml 19 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/corridorLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/corridor 7 | variables: 8 | $ref: corridorDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/cubeDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | required: 4 | - height_units 5 | properties: 6 | query_type: 7 | description: Type of EDR query 8 | type: string 9 | enum: 10 | - cube 11 | example: cube 12 | height_units: 13 | description: list of z distance units vertical values can be specified in 14 | type: array 15 | items: 16 | type: string 17 | example: m 18 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/cubeLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/cube 7 | variables: 8 | $ref: cubeDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/instancesDataQuery.yaml: -------------------------------------------------------------------------------- 1 | description: Property to contain any extra metadata information that is specific 2 | to an individual data queries 3 | type: object 4 | properties: 5 | title: 6 | description: title of the query 7 | type: string 8 | example: Instances query 9 | description: 10 | description: description of the query 11 | type: string 12 | example: Instances of collection each representing different versions 13 | query_type: 14 | description: Instances of collection 15 | type: string 16 | enum: 17 | - instances 18 | example: instances 19 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/instancesLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/instances 7 | variables: 8 | $ref: instancesDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/itemsDataQuery.yaml: -------------------------------------------------------------------------------- 1 | description: Property to contain any extra metadata information that is specific 2 | to an individual data queries 3 | type: object 4 | properties: 5 | title: 6 | description: title of the query 7 | type: string 8 | example: Items query 9 | description: 10 | description: description of the query 11 | type: string 12 | example: Query to return data for a defined well known text point 13 | query_type: 14 | description: Type of EDR query 15 | type: string 16 | enum: 17 | - items 18 | example: items 19 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/itemsLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/items 7 | variables: 8 | $ref: itemsDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/locationsDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - locations 9 | example: locations 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/locationsLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/locations 7 | variables: 8 | $ref: locationsDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/positionDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | required: 4 | - query_type 5 | properties: 6 | query_type: 7 | description: Type of EDR query 8 | type: string 9 | enum: 10 | - position 11 | example: position 12 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/positionLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/position 7 | variables: 8 | $ref: positionDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/radiusDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - radius 9 | example: radius 10 | within_units: 11 | description: list of distance units radius values can be specified in 12 | type: array 13 | items: 14 | type: string 15 | example: km 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/radiusLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/radius 7 | variables: 8 | $ref: radiusDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/trajectoryDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - trajectory 9 | example: trajectory 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/collections/trajectoryLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | example: https://example.com/collections/monitoringsites/trajectory 7 | variables: 8 | $ref: trajectoryDataQuery.yaml 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/core/confClasses.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - conformsTo 4 | properties: 5 | conformsTo: 6 | type: array 7 | items: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/core/exception.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - code 4 | properties: 5 | code: 6 | type: string 7 | description: 8 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/anyAxis.yaml: -------------------------------------------------------------------------------- 1 | description: Validates any axis 2 | oneOf: 3 | - $ref: valuesAxis.yaml 4 | - $ref: numericRegularlySpacedAxis.yaml 5 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/numericAxis.yaml: -------------------------------------------------------------------------------- 1 | description: Simple axis with numeric values 2 | oneOf: 3 | - $ref: numericValuesAxis.yaml 4 | - $ref: numericRegularlySpacedAxis.yaml 5 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/numericRegularlySpacedAxis.yaml: -------------------------------------------------------------------------------- 1 | description: A regularly-spaced numeric axis 2 | properties: 3 | start: 4 | type: number 5 | stop: 6 | type: number 7 | num: 8 | type: integer 9 | minimum: 1 10 | required: 11 | - start 12 | - stop 13 | - num 14 | additionalProperties: false 15 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/numericValuesAxis.yaml: -------------------------------------------------------------------------------- 1 | description: Axis defined by list of numeric axis values and optional bounds 2 | allOf: 3 | - $ref: valuesAxisBase.yaml 4 | - properties: 5 | values: 6 | items: 7 | type: number 8 | bounds: 9 | items: 10 | type: number 11 | additionalProperties: false 12 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/primitiveValuesAxis.yaml: -------------------------------------------------------------------------------- 1 | description: Validates any axis with primitive values 2 | allOf: 3 | - $ref: valuesAxisBase.yaml 4 | - description: This redundant branch exists to fail early with succinct errors 5 | properties: 6 | values: 7 | items: 8 | oneOf: 9 | - type: number 10 | - type: string 11 | - oneOf: 12 | - $ref: numericValuesAxis.yaml 13 | - $ref: stringValuesAxis.yaml 14 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/referenceSystemConnection.yaml: -------------------------------------------------------------------------------- 1 | description: "Reference System Connection object: connects coordinates to reference systems" 2 | type: object 3 | properties: 4 | coordinates: 5 | type: array 6 | items: 7 | type: string 8 | minItems: 1 9 | system: 10 | $ref: referenceSystem.yaml 11 | required: 12 | - coordinates 13 | - system 14 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/stringValuesAxis.yaml: -------------------------------------------------------------------------------- 1 | description: Simple axis with string values (e.g. time strings) 2 | allOf: 3 | - $ref: valuesAxisBase.yaml 4 | - properties: 5 | values: 6 | items: 7 | type: string 8 | bounds: 9 | items: 10 | type: string 11 | additionalProperties: false 12 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/tupleValuesAxis.yaml: -------------------------------------------------------------------------------- 1 | description: Tuple-based axis 2 | allOf: 3 | - $ref: valuesAxisBase.yaml 4 | - properties: 5 | dataType: 6 | type: string 7 | enum: 8 | - tuple 9 | values: 10 | items: 11 | description: A tuple of axis values (numbers or strings) 12 | type: array 13 | items: 14 | anyOf: 15 | - type: number 16 | - type: string 17 | minItems: 2 18 | coordinates: {} 19 | required: 20 | - dataType 21 | - values 22 | - coordinates 23 | additionalProperties: false 24 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/valuesAxis.yaml: -------------------------------------------------------------------------------- 1 | description: Validates any values-based axis 2 | oneOf: 3 | - $ref: valuesAxisBase.yaml 4 | - $ref: primitiveValuesAxis.yaml 5 | - $ref: tupleValuesAxis.yaml 6 | - $ref: polygonValuesAxis.yaml 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/covjson/valuesAxisBase.yaml: -------------------------------------------------------------------------------- 1 | description: Base schema for values-based axis schemas 2 | properties: 3 | dataType: 4 | type: string 5 | not: 6 | enum: 7 | - primitive 8 | values: 9 | type: array 10 | minItems: 1 11 | uniqueItems: true 12 | coordinates: 13 | type: array 14 | items: 15 | type: string 16 | minItems: 2 17 | bounds: 18 | description: Optional axis bounds. Shall be twice as long (and same data type) as 19 | "values" 20 | type: array 21 | minItems: 2 22 | required: 23 | - values 24 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/edr-geojson/observedProperty.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | description: A definition of the quantity being measured. 3 | properties: 4 | id: 5 | type: string 6 | label: 7 | $ref: ../i18n.yaml 8 | description: 9 | $ref: ../i18n.yaml 10 | categories: 11 | type: array 12 | items: 13 | type: object 14 | properties: 15 | id: 16 | type: string 17 | label: 18 | $ref: ../i18n.yaml 19 | description: 20 | $ref: ../i18n.yaml 21 | required: 22 | - id 23 | - label 24 | minItems: 1 25 | required: 26 | - label 27 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/edr-geojson/unit.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | description: The units of measure 3 | properties: 4 | id: 5 | type: string 6 | label: 7 | $ref: ../i18n.yaml 8 | symbol: 9 | oneOf: 10 | - type: string 11 | - type: object 12 | properties: 13 | type: 14 | type: string 15 | value: 16 | type: string 17 | required: 18 | - type 19 | - value 20 | anyOf: 21 | - required: 22 | - label 23 | - required: 24 | - symbol 25 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/geojson/geometrycollectionGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - geometries 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - GeometryCollection 10 | geometries: 11 | type: array 12 | items: 13 | oneOf: 14 | - $ref: pointGeoJSON.yaml 15 | - $ref: multipointGeoJSON.yaml 16 | - $ref: linestringGeoJSON.yaml 17 | - $ref: multilinestringGeoJSON.yaml 18 | - $ref: polygonGeoJSON.yaml 19 | - $ref: multipolygonGeoJSON.yaml 20 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/geojson/linestringGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - LineString 10 | - LineStringM 11 | - LineStringZ 12 | - LineStringZM 13 | coordinates: 14 | type: array 15 | items: 16 | type: array 17 | minItems: 2 18 | items: 19 | type: array 20 | minItems: 2 21 | maxItems: 4 22 | items: 23 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/geojson/multilinestringGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - MultiLineString 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | minItems: 2 15 | items: 16 | type: array 17 | minItems: 2 18 | items: 19 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/geojson/multipointGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - MultiPoint 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | minItems: 2 15 | items: 16 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/geojson/multipolygonGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - MultiPolygon 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | items: 15 | type: array 16 | minItems: 4 17 | items: 18 | type: array 19 | minItems: 2 20 | items: 21 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/geojson/pointGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - Point 10 | coordinates: 11 | type: array 12 | minItems: 2 13 | items: 14 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/geojson/polygonGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - Polygon 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | minItems: 4 15 | items: 16 | type: array 17 | minItems: 2 18 | items: 19 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/i18n.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | description: Object representing an internationalised string. 3 | additionalProperties: 4 | type: string 5 | -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/numberMatched.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | The number of features of the feature type that match the selection 3 | parameters like `bbox`. 4 | type: integer 5 | minimum: 0 6 | example: 127 -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/numberReturned.yaml: -------------------------------------------------------------------------------- 1 | type: integer 2 | description: |- 3 | The number of features in the feature collection. 4 | 5 | A server may omit this information in a response, if the information 6 | about the number of features is not known or difficult to compute. 7 | 8 | If the value is provided, the value SHALL be identical to the number 9 | of items in the "features" array. 10 | minimum: 0 11 | example: 10 -------------------------------------------------------------------------------- /core/standard/openapi/oas30/schemas/queries/instances.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - links 4 | - instances 5 | properties: 6 | links: 7 | type: array 8 | items: 9 | $ref: ../core/link.yaml 10 | example: 11 | href: https://example.org/edr/collections/the_collection_id/instances 12 | hreflang: en 13 | rel: self 14 | type: application/json 15 | instances: 16 | type: array 17 | items: 18 | $ref: ../collections/collection.yaml 19 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/collections/collectionId.yaml: -------------------------------------------------------------------------------- 1 | name: collectionId 2 | in: path 3 | description: Identifier (id) of a specific collection 4 | required: true 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/crs.yaml: -------------------------------------------------------------------------------- 1 | name: crs 2 | in: query 3 | description: identifier (id) of the coordinate system to return data in list of valid crs identifiers for the chosen collection are defined in the metadata responses. If not supplied the coordinate reference system will default to WGS84. 4 | required: false 5 | examples: 6 | native: 7 | summary: name of the native resolution 8 | value: native 9 | schema: 10 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/f.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: format to return the data response in 4 | required: false 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/height-units.yaml: -------------------------------------------------------------------------------- 1 | name: height-units 2 | in: query 3 | description: Distance units for the corridor-height parameter 4 | required: true 5 | examples: 6 | - KM 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/limit.yaml: -------------------------------------------------------------------------------- 1 | name: limit 2 | in: query 3 | description: Defines the maximum number of features to return in a request 4 | required: false 5 | examples: 6 | limitval: 7 | summary: number of features to return 8 | value: 10 9 | schema: 10 | type: number 11 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/parameter-name.yaml: -------------------------------------------------------------------------------- 1 | name: parameter-name 2 | in: query 3 | description: comma delimited list of parameters to retrieve data for. Valid parameters are listed in the collections metadata 4 | schema: 5 | type: string 6 | style: form 7 | explode: false 8 | required: false 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/resolution-x.yaml: -------------------------------------------------------------------------------- 1 | name: resolution-x 2 | in: query 3 | description: |+ 4 | Defined it the user requires data at a different resolution from the native resolution of the data along the x-axis 5 | 6 | If this is a single value it denotes the number of intervals to retrieve data for along the x-axis 7 | 8 | i.e. resolution-x=10 9 | 10 | would retrieve 10 values along the x-axis from the minimum x coordinate to maximum x coordinate (i.e. a value at both the minimum x and maximum x coordinates and 8 values between). 11 | required: false 12 | schema: 13 | items: 14 | type: string 15 | 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/resolution-y.yaml: -------------------------------------------------------------------------------- 1 | name: resolution-y 2 | in: query 3 | description: |+ 4 | Defined it the user requires data at a different resolution from the native resolution of the data along the y-axis 5 | 6 | If this is a single value it denotes the number of intervals to retrieve data for along the y-axis 7 | 8 | i.e. resolution-y=10 9 | 10 | would retrieve 10 values along the y-axis from the minimum y coordinate to maximum y coordinate (i.e. a value at both the minimum y and maximum y coordinates and 8 values between). 11 | required: false 12 | schema: 13 | items: 14 | type: string 15 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/resolution-z.yaml: -------------------------------------------------------------------------------- 1 | name: resolution-z 2 | in: query 3 | description: |+ 4 | Defined it the user requires data at a different resolution from the native resolution of the data along the z-axis 5 | 6 | If this is a single value it denotes the number of intervals to retrieve data for along the z-axis 7 | 8 | i.e. resolution-z=10 9 | 10 | would retrieve 10 values along the z-axis from the minimum z coordinate to maximum z coordinate (i.e. a value at both the minimum z and maximum z coordinates and 8 values between). 11 | required: false 12 | schema: 13 | items: 14 | type: string 15 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/width-units.yaml: -------------------------------------------------------------------------------- 1 | name: width-units 2 | in: query 3 | description: Distance units for the corridor-width parameter 4 | required: true 5 | example: 6 | - KM 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/within-units.yaml: -------------------------------------------------------------------------------- 1 | name: within-units 2 | in: query 3 | description: Distance units for the within parameter 4 | required: true 5 | example: 6 | unittype: 7 | summary: distance measurement units 8 | value: km 9 | schema: 10 | type: string 11 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/core/within.yaml: -------------------------------------------------------------------------------- 1 | name: within 2 | in: query 3 | description: Defines radius of area around defined coordinates to include in the data selection 4 | required: true 5 | examples: 6 | radiusval: 7 | summary: radius to return data within 8 | value: 10 9 | schema: 10 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/queries/instanceId.yaml: -------------------------------------------------------------------------------- 1 | name: instanceId 2 | in: path 3 | description: Identifier (id) of a specific instance of a collection 4 | required: true 5 | schema: 6 | type: string 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/queries/itemId.yaml: -------------------------------------------------------------------------------- 1 | name: itemId 2 | in: path 3 | required: true 4 | description: 'Retrieve data from the collection using a unique identifier.' 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas31/parameters/queries/locationId.yaml: -------------------------------------------------------------------------------- 1 | name: locationId 2 | in: path 3 | required: true 4 | description: Comma delimited list of location identifiers (i.e. EGLL or EGLL,YBBN,CYOW or London,Brisbane) 5 | schema: 6 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas31/paths/collections/collection.yaml: -------------------------------------------------------------------------------- 1 | # Collection 2 | get: 3 | tags: 4 | - Collection metadata 5 | summary: List query types supported by the collection 6 | description: This will provide information about the query types that are supported by the chosen collection Use content negotiation to request HTML or JSON 7 | operationId: getQueries 8 | parameters: 9 | - $ref: ../../parameters/collections/collectionId.yaml 10 | - $ref: ../../parameters/core/f.yaml 11 | responses: 12 | 200: 13 | $ref: ../../responses/collections/collection.yaml 14 | default: 15 | $ref: ../../responses/core/exception.yaml 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/paths/collections/collections.yaml: -------------------------------------------------------------------------------- 1 | # Collections 2 | get: 3 | tags: 4 | - Capabilities 5 | summary: List the avialable collections from the service 6 | operationId: listCollections 7 | parameters: 8 | - $ref: ../../parameters/core/bbox.yaml 9 | - $ref: https://beta.schemas.opengis.net/ogcapi/common/part2/0.1/collections/openapi/parameters/datetime.yaml 10 | - $ref: ../../parameters/core/f.yaml 11 | responses: 12 | 200: 13 | $ref: ../../responses/collections/collections.yaml 14 | default: 15 | $ref: ../../responses/core/exception.yaml 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/paths/core/conformance.yaml: -------------------------------------------------------------------------------- 1 | # Conformance 2 | get: 3 | tags: 4 | - Capabilities 5 | summary: Information about standards that this API conforms to 6 | description: List all requirements classes specified in a standard that the server conforms to 7 | operationId: getRequirementsClasses 8 | parameters: 9 | - $ref: ../../parameters/core/f.yaml 10 | responses: 11 | '200': 12 | $ref: ../../responses/core/conformance.yaml 13 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/paths/core/landingPage.yaml: -------------------------------------------------------------------------------- 1 | # Landing page 2 | get: 3 | tags: 4 | - Capabilities 5 | summary: landing page of this API 6 | description: The landing page provides links to the API definition, the Conformance statements and the metadata about the feature data in this dataset. 7 | operationId: getLandingPage 8 | parameters: 9 | - $ref: ../../parameters/core/f.yaml 10 | responses: 11 | '200': 12 | $ref: ../../responses/core/landingPage.yaml 13 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/paths/queries/instances.yaml: -------------------------------------------------------------------------------- 1 | # Instances query 2 | get: 3 | tags: 4 | - Instance metadata 5 | summary: 'List data instances of {collectionId}' 6 | description: This will provide list of the avalable instances of the collection Use content negotiation to request HTML or JSON. 7 | operationId: getCollectionInstances 8 | parameters: 9 | - $ref: ../../parameters/collections/collectionId.yaml 10 | - $ref: ../../parameters/core/f.yaml 11 | responses: 12 | '200': 13 | $ref: ../../responses/queries/instances.yaml 14 | default: 15 | $ref: ../../responses/core/exception.yaml 16 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/request-bodies/cube.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | required: 6 | - bbox 7 | properties: 8 | bbox: 9 | type: string 10 | z: 11 | type: string 12 | datetime: 13 | type: string 14 | parameter-name: 15 | type: array 16 | items: 17 | type: string 18 | crs: 19 | type: string 20 | f: 21 | type: string 22 | 23 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/request-bodies/location.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | properties: 6 | datetime: 7 | type: string 8 | parameter-name: 9 | type: array 10 | items: 11 | type: string 12 | crs: 13 | type: string 14 | f: 15 | type: string 16 | limit: 17 | type: number 18 | 19 | 20 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/request-bodies/locations.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | properties: 6 | bbox: 7 | type: string 8 | datetime: 9 | type: string 10 | limit: 11 | type: number 12 | 13 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/request-bodies/trajectory.yaml: -------------------------------------------------------------------------------- 1 | content: 2 | application/json: 3 | schema: 4 | type: object 5 | required: 6 | - coords 7 | properties: 8 | coords: 9 | description: Well Known Text LineString definition 10 | type: string 11 | z: 12 | type: string 13 | datetime: 14 | type: string 15 | parameter-name: 16 | type: array 17 | items: 18 | type: string 19 | crs: 20 | type: string 21 | f: 22 | type: string 23 | 24 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/collections/collection.yaml: -------------------------------------------------------------------------------- 1 | description: Metadata about the {collectionId} collection shared by this API 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/collections/collection.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/collections/collections.yaml: -------------------------------------------------------------------------------- 1 | description: Metadata about the Environmental data collections shared by this API 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/collections/collections.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/core/conformance.yaml: -------------------------------------------------------------------------------- 1 | description: URIs of all requirements classes supported by the server 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/confClasses.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/core/exception.yaml: -------------------------------------------------------------------------------- 1 | description: An error occured. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/core/landingPage.yaml: -------------------------------------------------------------------------------- 1 | description: links to the API capabilities 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/landingPage.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/200.yaml: -------------------------------------------------------------------------------- 1 | description: Data ranges required to construct valid queries for the choosen data collection 2 | content: 3 | application/vnd.cov+json: 4 | schema: 5 | $ref: https://schemas.opengis.net/covjson/1.0/coveragejson.json 6 | application/geo+json: 7 | schema: 8 | $ref: ../../schemas/edr-geojson/edrFeatureCollectionGeoJSON.yaml 9 | application/x-netcdf: 10 | schema: 11 | type: object 12 | text/xml: 13 | schema: 14 | type: string 15 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/202.yaml: -------------------------------------------------------------------------------- 1 | description: Data request still being processed 2 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/308.yaml: -------------------------------------------------------------------------------- 1 | description: Request will take a significant time to process 2 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/400.yaml: -------------------------------------------------------------------------------- 1 | description: Invalid request. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/xml: {} 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/404.yaml: -------------------------------------------------------------------------------- 1 | description: Requested data not found. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/xml: {} 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/413.yaml: -------------------------------------------------------------------------------- 1 | description: Requested data volume to large to be handled by this service. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/core/exception.yaml 6 | text/xml: {} 7 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/instances.yaml: -------------------------------------------------------------------------------- 1 | description: Metadata about the instance of {collectionId} collection shared by this API 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/queries/instances.yaml 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/responses/queries/items.yaml: -------------------------------------------------------------------------------- 1 | description: List of pre-existing items available for retrieval 2 | content: 3 | application/geo+json: 4 | schema: 5 | $ref: ../../schemas/edr-geojson/edrFeatureCollectionGeoJSON.yaml 6 | application/json: 7 | schema: 8 | type: string 9 | text/xml: 10 | schema: 11 | type: string 12 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/areaDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - area 9 | examples: 10 | - area 11 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/areaLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/area 8 | variables: 9 | $ref: areaDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/corridorLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/corridor 8 | variables: 9 | $ref: corridorDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/cubeDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | required: 4 | - height_units 5 | properties: 6 | query_type: 7 | description: Type of EDR query 8 | type: string 9 | enum: 10 | - cube 11 | examples: 12 | - cube 13 | height_units: 14 | description: list of z distance units vertical values can be specified in 15 | type: array 16 | items: 17 | type: string 18 | examples: 19 | - - m 20 | - hPa 21 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/cubeLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/cube 8 | variables: 9 | $ref: cubeDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/instancesLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/instances 8 | variables: 9 | $ref: instancesDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/itemsDataQuery.yaml: -------------------------------------------------------------------------------- 1 | description: Property to contain any extra metadata information that is specific 2 | to an individual data queries 3 | type: object 4 | properties: 5 | title: 6 | description: title of the query 7 | type: string 8 | examples: 9 | - Items query 10 | description: 11 | description: description of the query 12 | type: string 13 | examples: 14 | - Query to return data for a defined well known text point 15 | query_type: 16 | description: Type of EDR query 17 | type: string 18 | enum: 19 | - items 20 | examples: 21 | - items 22 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/itemsLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/items 8 | variables: 9 | $ref: itemsDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/locationsDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - locations 9 | examples: 10 | - locations 11 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/locationsLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/locations 8 | variables: 9 | $ref: locationsDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/positionDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | required: 4 | - query_type 5 | properties: 6 | query_type: 7 | description: Type of EDR query 8 | type: string 9 | enum: 10 | - position 11 | examples: 12 | - position 13 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/positionLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/position 8 | variables: 9 | $ref: positionDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/radiusDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - radius 9 | examples: 10 | - radius 11 | within_units: 12 | description: list of distance units radius values can be specified in 13 | type: array 14 | items: 15 | type: string 16 | examples: 17 | - - km 18 | - miles 19 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/radiusLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/radius 8 | variables: 9 | $ref: radiusDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/trajectoryDataQuery.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: DataQuery.yaml 3 | properties: 4 | query_type: 5 | description: Type of EDR query 6 | type: string 7 | enum: 8 | - trajectory 9 | examples: 10 | - trajectory 11 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/collections/trajectoryLink.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../core/link.yaml 3 | properties: 4 | href: 5 | type: string 6 | examples: 7 | - https://example.com/collections/monitoringsites/trajectory 8 | variables: 9 | $ref: trajectoryDataQuery.yaml 10 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/core/confClasses.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - conformsTo 4 | properties: 5 | conformsTo: 6 | type: array 7 | items: 8 | type: string 9 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/core/exception.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - code 4 | properties: 5 | code: 6 | type: string 7 | description: 8 | type: string -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/edr-geojson/observedProperty.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | description: A definition of the quantity being measured. 3 | properties: 4 | id: 5 | type: string 6 | label: 7 | $ref: ../i18n.yaml 8 | description: 9 | $ref: ../i18n.yaml 10 | categories: 11 | type: array 12 | items: 13 | type: object 14 | properties: 15 | id: 16 | type: string 17 | label: 18 | $ref: ../i18n.yaml 19 | description: 20 | $ref: ../i18n.yaml 21 | required: 22 | - id 23 | - label 24 | minItems: 1 25 | required: 26 | - label 27 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/edr-geojson/unit.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | description: The units of measure 3 | properties: 4 | id: 5 | type: string 6 | label: 7 | $ref: ../i18n.yaml 8 | symbol: 9 | oneOf: 10 | - type: string 11 | - type: object 12 | properties: 13 | type: 14 | type: string 15 | value: 16 | type: string 17 | required: 18 | - type 19 | - value 20 | anyOf: 21 | - required: 22 | - label 23 | - required: 24 | - symbol 25 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/geojson/geometrycollectionGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - geometries 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - GeometryCollection 10 | geometries: 11 | type: array 12 | items: 13 | oneOf: 14 | - $ref: pointGeoJSON.yaml 15 | - $ref: multipointGeoJSON.yaml 16 | - $ref: linestringGeoJSON.yaml 17 | - $ref: multilinestringGeoJSON.yaml 18 | - $ref: polygonGeoJSON.yaml 19 | - $ref: multipolygonGeoJSON.yaml 20 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/geojson/linestringGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - LineString 10 | - LineStringM 11 | - LineStringZ 12 | - LineStringZM 13 | coordinates: 14 | type: array 15 | items: 16 | type: array 17 | minItems: 2 18 | items: 19 | type: array 20 | minItems: 2 21 | maxItems: 4 22 | items: 23 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/geojson/multilinestringGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - MultiLineString 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | minItems: 2 15 | items: 16 | type: array 17 | minItems: 2 18 | items: 19 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/geojson/multipointGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - MultiPoint 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | minItems: 2 15 | items: 16 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/geojson/multipolygonGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - MultiPolygon 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | items: 15 | type: array 16 | minItems: 4 17 | items: 18 | type: array 19 | minItems: 2 20 | items: 21 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/geojson/pointGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - Point 10 | coordinates: 11 | type: array 12 | minItems: 2 13 | items: 14 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/geojson/polygonGeoJSON.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - type 4 | - coordinates 5 | properties: 6 | type: 7 | type: string 8 | enum: 9 | - Polygon 10 | coordinates: 11 | type: array 12 | items: 13 | type: array 14 | minItems: 4 15 | items: 16 | type: array 17 | minItems: 2 18 | items: 19 | type: number -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/i18n.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | description: Object representing an internationalised string. 3 | additionalProperties: 4 | type: string 5 | -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/numberMatched.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | The number of features of the feature type that match the selection 3 | parameters like `bbox`. 4 | type: integer 5 | minimum: 0 6 | examples: 7 | - 127 -------------------------------------------------------------------------------- /core/standard/openapi/oas31/schemas/numberReturned.yaml: -------------------------------------------------------------------------------- 1 | type: integer 2 | description: |- 3 | The number of features in the feature collection. 4 | 5 | A server may omit this information in a response, if the information 6 | about the number of features is not known or difficult to compute. 7 | 8 | If the value is provided, the value SHALL be identical to the number 9 | of items in the "features" array. 10 | minimum: 0 11 | examples: 12 | - 10 -------------------------------------------------------------------------------- /core/standard/recommendations/core/PER_additional-status-codes.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_additional-status-codes]] 2 | [%unnumbered] 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/core/additional-status-codes* 6 | ^|A |Servers MAY support other capabilities of the HTTP protocol and, therefore, MAY return other status codes than those listed in <>, too. 7 | |=== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/PER_api-definition-uri.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_api-definition-uri]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Permission {counter:per-id}* |*/per/core/api-definition-uri* 5 | ^|A |The API definition is metadata about the API implementation and strictly not part of the API implementation itself, but it MAY be hosted as a sub-resource to the base path of the API endpoint, for example, at path `/api`. There is no need to include 6 | the path of the API definition in the API definition itself. 7 | |=== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/PER_rc-limit-response-2.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_rc-limit-response-2]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Permission {counter:per-id}* |*/per/core/rc-limit-response-2* 5 | ^|A |The server MAY return less features than requested (but not more). 6 | |=== 7 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/PER_rc-prev.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_rc-prev]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Permission {counter:per-id}* |*/per/core/rc-prev* 5 | ^|A |A response to a `next` link MAY include a `prev` link to the resource that included the `next` link. 6 | |=== 7 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_api-definition-oas.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_api-definition-oas]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Recommendation {counter:rec-id}* |*/rec/core/api-definition-oas* 5 | ^|A |If the API definition document uses the OpenAPI Specification 3.0, the document SHOULD conform to the <>. 6 | ^|B |If the API definition document uses the OpenAPI Specification 3.1, the document SHOULD conform to the <>. 7 | |=== -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_covjson.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_covjson]] 2 | [recommendation,type="general",id="/rec/core/covjson", label="/rec/core/covjson"] 3 | ==== 4 | *A:* 5 | 6 | If the resource can be represented for the intended use in CoverageJSON, implementations SHOULD consider supporting CoverageJSON as an encoding. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_cross-origin.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_cross-origin]] 2 | [recommendation,type="general",id="/rec/core/cross-origin", label="/rec/core/cross-origin"] 3 | ==== 4 | *A:* 5 | 6 | If the server is intended to be accessed from the browser, cross-origin requests SHOULD be supported. Note that support can also be added in a proxy layer on top of the server. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_edr-geojson.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_edr-geojson]] 2 | [recommendation,type="general",id="/rec/core/edr-geojson", label="/rec/core/edr-geojson"] 3 | ==== 4 | *A:* 5 | 6 | If a collection using other EDR queries uses the <> query, implementations SHOULD consider support for the https://schemas.opengis.net/ogcapi/edr/1.2/openapi/schemas/edr-geojson/edrFeatureCollectionGeoJSON.yaml[EDR GeoJSON Schema] as an encoding. 7 | 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_etag.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_etag]] 2 | [recommendation,type="general",id="/rec/core/etag", label="/rec/core/etag"] 3 | ==== 4 | *A:* 5 | 6 | The service SHOULD support entity tags and the associated headers as specified by HTTP/1.1. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_geojson.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_geojson]] 2 | [recommendation,type="general",id="/rec/core/geojson", label="/rec/core/geojson"] 3 | ==== 4 | *A:* 5 | 6 | If the resource can be represented for the intended use in GeoJSON, implementations SHOULD consider supporting GeoJSON as an encoding. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_html.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_html]] 2 | [recommendation,type="general",id="/rec/core/html", label="/rec/core/html"] 3 | ==== 4 | *A:* 5 | 6 | To support browsing an API definition through a web browser and to enable search engines to crawl and index the dataset, implementations SHOULD consider supporting an HTML encoding. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_link-header.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_link-header]] 2 | [recommendation,type="general",id="/rec/core/link-header", label="/rec/core/link-header"] 3 | ==== 4 | *A:* 5 | 6 | Links included in the payloads of responses SHOULD also be included as `Link` headers in the HTTP response according to <>. 7 | 8 | --- 9 | *B:* 10 | 11 | This recommendation does not apply, if there are a large number of links included in a response or a link is not known when the HTTP headers of the response are created. 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_rc-extent.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_rc-extent]] 2 | [recommendation,type="general",id="/rec/core/rc-extent", label="/rec/core/rc-extent"] 3 | ==== 4 | *A:* 5 | 6 | If the response is a partial, paged response (i.e., the number of features in the response is less than the number of features that match the selection parameters) and the response includes information about the extent of the response (e.g. the member `bbox` in a GeoJSON feature collection), the extent SHOULD be the extent of the complete result set, not the extent of the features in the response / page. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_rc-next-1.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_rc-next-1]] 2 | [recommendation,type="general",id="/rec/core/rc-next-1", label="/rec/core/rc-next-1"] 3 | ==== 4 | *A:* 5 | 6 | `200`-response SHOULD include a link to the next "page" (relation: `next`), if more features have been selected than returned in the response. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_rc-next-2.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_rc-next-2]] 2 | [recommendation,type="general",id="/rec/core/rc-next-2", label="/rec/core/rc-next-2"] 3 | ==== 4 | *A:* 5 | 6 | Dereferencing a `next` link SHOULD return additional features from the set of selected features that have not yet been returned. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_rc-next-3.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_rc-next-3]] 2 | [recommendation,type="general",id="/rec/core/rc-next-3", label="/rec/core/rc-next-3"] 3 | ==== 4 | *A:* 5 | 6 | If there are more features in the selection that have not yet been returned, the number of features in a response to a `next` link SHOULD follow the same rules as for the response to the original query and again include a `next` link. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/standard/relaton/cache/ogc/ogc_06-103r4.redirect: -------------------------------------------------------------------------------- 1 | redirection OGC(06-103r4) -------------------------------------------------------------------------------- /core/standard/relaton/cache/ogc/ogc_17-069r3.redirect: -------------------------------------------------------------------------------- 1 | redirection OGC(17-069r3) -------------------------------------------------------------------------------- /core/standard/relaton/cache/ogc/ogc_18-010r7.redirect: -------------------------------------------------------------------------------- 1 | redirection OGC(18-010r7) -------------------------------------------------------------------------------- /core/standard/relaton/cache/ogc/ogc_19-072.redirect: -------------------------------------------------------------------------------- 1 | redirection OGC(19-072) -------------------------------------------------------------------------------- /core/standard/relaton/cache/ogc/ogc_20-024.notfound: -------------------------------------------------------------------------------- 1 | not_found 2024-10-08 -------------------------------------------------------------------------------- /core/standard/relaton/cache/ogc/version: -------------------------------------------------------------------------------- 1 | b4f88dfa16a39dfa412b1cc164a82606 -------------------------------------------------------------------------------- /core/standard/requirements/collections/REQ_rc-md-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_collections_rc-md-op]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/collections/rc-md-op 7 | 8 | *A:* 9 | 10 | The API implementation SHALL support the HTTP GET operation at the path `/collections`. 11 | 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/collections/REQ_rc-md-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_collections_rc-md-success]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/collections/rc-md-success 7 | 8 | *A:* 9 | 10 | A successful execution of the operation SHALL be reported as a response with an HTTP status code `200`. 11 | 12 | --- 13 | 14 | *B:* 15 | 16 | The content of that response SHALL be based upon the schema link:https://schemas.opengis.net/ogcapi/edr/1.2/openapi/schemas/collections/collections.yaml[collections.yaml]. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/collections/REQ_src-md-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_collections_src-md-op]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/collections/src-md-op 7 | 8 | *A:* 9 | 10 | The API implementation SHALL support the HTTP GET operation at the path `/collections/{collectionId}`. 11 | 12 | --- 13 | 14 | *B:* 15 | 16 | The parameter `collectionId` is the `id` property in the resource collection response (JSONPath: `$.collections[*].id`). 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_conformance-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_conformance-success]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/conformance-success 7 | 8 | *A:* 9 | 10 | A successful execution of the operation SHALL be reported as a response with an HTTP status code `200`. 11 | 12 | --- 13 | *B:* 14 | 15 | The content of that response SHALL be based upon the schema link:https://schemas.opengis.net/ogcapi/edr/1.2/openapi/schemas/core/confClasses.yaml[confClasses.yaml] and list all OGC API conformance classes that the API conforms to. 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_core_conformance.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_conformance]] 2 | ==== *Requirement /req/core/conformance* Core conformance classes 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/core/conformance 8 | 9 | *A:* 10 | 11 | The list of Conformance Classes advertised by the API endpoint SHALL include: 12 | 13 | * https://www.opengis.net/spec/ogcapi-common-1/1.0/conf/core 14 | * https://www.opengis.net/spec/ogcapi-common-2/1.0/conf/collections 15 | * https://www.opengis.net/spec/ogcapi-edr-1/1.2/conf/core 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_crs.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_crs]] 2 | ==== *Requirement /req/core/crs* CRS 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/core/crs 8 | 9 | 10 | *A:* 11 | 12 | Unless the client explicitly requests a different coordinate reference system, all spatial geometries SHALL be in the CRS defined by the spatial element of the extent section in the collection response. 13 | 14 | ==== 15 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_http.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_http]] 2 | ==== *Requirement /req/core/http* HTTP 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/core/http 8 | 9 | *A:* 10 | 11 | The API SHALL conform to <>. 12 | 13 | --- 14 | *B:* 15 | 16 | If the API supports HTTPS, then the API SHALL also conform to <>. 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_rc-api-definition-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_api-definition-success]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/api-definition-success 7 | 8 | *A:* 9 | 10 | A successful execution of the operation SHALL be reported as a response with an HTTP status code `200`. 11 | 12 | --- 13 | *B:* 14 | 15 | The content of that response SHALL be an API Definition document. 16 | 17 | --- 18 | *C:* 19 | 20 | The API Definition document SHALL be consistent with the media type identified through HTTP content negotiation. 21 | 22 | ==== 23 | 24 | NOTE: The `f` parameter SHOULD be used to satisfy this requirement. -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_rc-collection-info-links.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_rc-collection-info-links]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/rc-collection-info-links 7 | 8 | *A:* 9 | 10 | A `200`-response SHALL include the following links in the `links` property of the response: 11 | 12 | 13 | * A link to this response document (relation: `self`). 14 | * A link to the response document in every other media type supported by the server (relation: `alternate`). 15 | * At least one link to a query end point. 16 | 17 | --- 18 | *B:* 19 | 20 | All links SHALL include the `rel` and `type` link parameters. 21 | 22 | ==== 23 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_rc-limit-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_rc-limit-definition]] 2 | ==== *Requirement /req/core/rc-limit-definition* limit definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/core/rc-limit-definition 8 | 9 | *A:* 10 | 11 | The operation SHALL support a parameter `limit` based upon the following OpenAPI 3.0 fragment: 12 | 13 | [source,YAML] 14 | ---- 15 | name: limit 16 | in: query 17 | required: false 18 | schema: 19 | type: integer 20 | minimum: 1 21 | maximum: 10000 22 | default: 100 23 | style: form 24 | explode: false 25 | ---- 26 | ==== 27 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_rc-numberReturned.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_rc-numberReturned]] 2 | ==== *Requirement /req/core/rc-numberReturned* number returned 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/core/rc-numberReturned 8 | 9 | *A:* 10 | 11 | If a property `numberReturned` is included in the response, the value SHALL be identical to the number of features in the response. 12 | 13 | *A:* 14 | If the information about the number of features in the response is not known or difficult to compute, a server MAY omit this information in a response. 15 | ==== 16 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_rc-time-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_collections_rc-time-definition]] 2 | ==== *Requirement /req/core/datetime-definition* datetime definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/core/datetime-definition 8 | 9 | *A:* 10 | 11 | The `datetime` parameter SHALL have the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: datetime 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_root-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_root-op]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/root-op 7 | 8 | *A:* 9 | 10 | The server SHALL support the HTTP GET operation at the path `/`. 11 | ==== 12 | -------------------------------------------------------------------------------- /core/standard/requirements/covjson/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_covjson_content]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/covjson/content 7 | 8 | *A:* 9 | 10 | Every `200`-response with the media type `application/prs.coverage+json` SHALL be 11 | 12 | 13 | 14 | * a link:https://www.w3.org/TR/covjson-overview/[CoverageJSON Object] 15 | 16 | 17 | 18 | --- 19 | 20 | *B:* 21 | 22 | The schema of all responses with the media type `application/vnd.cov+json` SHALL conform with the JSON Schema specified for the resource in the <> requirements class. 23 | 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/covjson/REQ_definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_covjson_definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/covjson/definition 7 | 8 | *A:* 9 | 10 | `200`-responses of the server SHALL support the following media types: 11 | 12 | 13 | 14 | * `application/vnd.cov+json` for resources that include data content, and 15 | 16 | * `application/json` for all other resources. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/edr-geojson/REQ_definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr-geojson_definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr-geojson/definition 7 | 8 | *A:* 9 | 10 | `200`-responses of the server SHALL support the following media types: 11 | 12 | 13 | 14 | * `application/geo+json` for resources that include feature content, and 15 | 16 | * `application/json` for all other resources. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-bbox-definition-cube.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_rc-bbox-definition-cube]] 2 | ==== *Requirement /req/edr/rc-bbox-definition-cube* Parameter bbox definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/rc-bbox-definition-cube 8 | 9 | 10 | *A:* 11 | 12 | The operation SHALL support a parameter `bbox` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 13 | 14 | 15 | [source,YAML] 16 | ---- 17 | name: bbox 18 | in: query 19 | required: false 20 | schema: 21 | type: number 22 | minItems: 4 23 | maxItems: 4 24 | style: form 25 | explode: false 26 | ---- 27 | ==== 28 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-corridor-variables.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_rc-corridor-variables]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr/rc-corridor-variables 7 | 8 | *A:* 9 | 10 | A corridor `data_queries` object `variables` property SHALL comply with the requirement `/req/edr/rc-variables-common`. 11 | 12 | --- 13 | *B:* 14 | 15 | A corridor `data_queries` object `variables` property SHALL include a `height_units` property which MUST be a string array 16 | 17 | --- 18 | *C:* 19 | 20 | A corridor `data_queries` object `variables` property SHALL include a `width_units` property which MUST be a string array 21 | 22 | 23 | ==== 24 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-corridor-width-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_corridor-width-definition]] 2 | ==== *Requirement /req/edr/corridor-width-definition* Parameter corridor-width definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/corridor-width-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation SHALL support a parameter `corridor-width` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: corridor-width 17 | in: query 18 | required: true 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-crs-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_crs-definition]] 2 | ==== *Requirement /req/edr/REQ_rc-crs-definition* Parameter crs definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/REQ_rc-crs-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation SHALL support a parameter `crs` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: crs 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-crs.adoc: -------------------------------------------------------------------------------- 1 | .[[req_edr_rc-crs]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr/rc-crs 7 | 8 | *A:* 9 | 10 | A crs object SHALL have a unique (to the collection) `crs` property. It MAY be an EPSG code. 11 | 12 | --- 13 | *B:* 14 | 15 | A crs object SHALL have a `wkt` property which SHALL be a correctly structured Well Known Text definition for the CRS. 16 | 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-cube-variables.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_rc-cube-variables]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr/rc-cube-variables 7 | 8 | *A:* 9 | 10 | A cube `data_queries` object `variables` property SHALL comply with the requirement `/req/edr/rc-variables-common`. 11 | 12 | --- 13 | *B:* 14 | 15 | A cube `data_queries` object `variables` property SHALL include a `height_units` property which SHALL be a string array 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-custom-dimension-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_custom-dimension-definition]] 2 | ==== *Requirement /req/edr/rc-custom-dimension-definition* Custom Parameter definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/rc-custom-dimension-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation MAY support custom parameters with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | 26 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-data_queries.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_rc-data-queries]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr/rc-data-queries 7 | 8 | *A:* 9 | 10 | A `data_queries` object SHALL have a least one of the following query data types defined: 11 | 12 | * position 13 | * radius 14 | * area 15 | * cube 16 | * trajectory 17 | * corridor 18 | * items 19 | * locations 20 | 21 | --- 22 | *B:* 23 | 24 | All query types defined in the `data_queries` object SHALL comply with the requirement <> 25 | 26 | ==== 27 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-f-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_f-definition]] 2 | ==== *Requirement /req/edr/rc-f-definition* Parameter `f` definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/rc-f-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation SHALL support a parameter `f` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: f 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-height-units-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_height_units-definition]] 2 | ==== *Requirement /req/edr/REQ_rc-height-units-definition* Parameter height-units definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/REQ_rc-height-units-definition 8 | 9 | *A:* 10 | 11 | Each corridor resource collection operation SHALL support a parameter `height-units` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: height-units 17 | in: query 18 | required: true 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-height-units-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_height_units-response]] 2 | ==== *Requirement /req/edr/height-units-response* Parameter height-units response 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/height-units-response 8 | 9 | *A:* 10 | 11 | If the `height-units` parameter is defined the result set SHALL contain values derived based on the chosen units. 12 | 13 | 14 | 15 | [source,java] 16 | ---- 17 | height-units = units 18 | ---- 19 | --- 20 | *B:* 21 | 22 | If an unsupported units value is requested, an HTTP `400` error SHOULD be returned. 23 | 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-items-variables.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_rc-items-variables]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr/rc-items-variables 7 | 8 | *A:* 9 | 10 | An items `data_queries` object `variables` property SHALL include a `query_type` property the value of which SHALL match the query type 11 | 12 | --- 13 | *B:* 14 | 15 | An items `data_queries` object `variables` property MAY include a `title` property of type string 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-items.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_rc-items]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr/rc-items 7 | 8 | *A:* 9 | 10 | For every collection identified in the collections response (path `/collections`), the server MAY support the HTTP GET operation at the path `/collections/{collectionId}/items`. 11 | 12 | --- 13 | *B:* 14 | 15 | The parameter `collectionId` is the `id` property in the feature collection response (JSONPath: `$.collections[*].id`). 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-limit-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_rc-limit-definition]] 2 | ==== *Requirement /req/edr/rc-limit-definition* Parameter limit definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/rc-limit-definition 8 | 9 | *A:* 10 | The operation SHALL support a parameter `limit` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 11 | 12 | [source,YAML] 13 | ---- 14 | name: limit 15 | in: query 16 | required: false 17 | schema: 18 | type: integer 19 | minimum: 1 20 | maximum: 10000 21 | default: 10 22 | style: form 23 | explode: false 24 | ---- 25 | 26 | ==== 27 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-locationid-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_locationid-response]] 2 | ==== *Requirement /req/edr/REQ_rc-locationid-response* Parameter locationid response 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/REQ_rc-locationid-response 8 | 9 | *A:* 10 | If the `locationId` parameter is provided only data for locations matching the requested identifers SHOULD be returned. 11 | 12 | --- 13 | *B:* 14 | If there is no data available for the requested location identifiers a HTTP 204 response SHOULD be returned 15 | 16 | ==== 17 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-md-query-links.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_rc-md-query-links]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/rc-md-query-links 7 | 8 | *A:* 9 | 10 | For each collection included in the response, the `links` property of the collection SHALL include at least one link to a query resource (relation: `data`) or an instance resource (relation: `instance`). 11 | 12 | --- 13 | *B:* 14 | 15 | All links SHALL include the `rel` and `type` link parameters. 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-radius-variables.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_rc-radius-variables]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/edr/rc-radius-variables 7 | 8 | *A:* 9 | 10 | A `variables` property SHALL comply with the requirement `/req/edr/rc-variables-common`. 11 | 12 | --- 13 | *B:* 14 | 15 | A `variables` property SHALL include a `within_units` property which SHALL be a string array 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-resolution-x-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_resolution-x-definition]] 2 | ==== *Requirement /req/edr/resolution-x-definition* Parameter resolution-x definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/resolution-x-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation MAY support a parameter `resolution-x` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: resolution-x 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-resolution-y-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_resolution-y-definition]] 2 | ==== *Requirement /req/edr/resolution-y-definition* Parameter resolution-y definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/resolution-y-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation MAY support a parameter `resolution-y` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: resolution-y 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-resolution-z-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_resolution-z-definition]] 2 | ==== *Requirement /req/edr/resolution-z-definition* Parameter resolution-z definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/resolution-z-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation MAY support a parameter `resolution-z` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: resolution-z 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-width-units-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_width_units-definition]] 2 | ==== *Requirement /req/edr/REQ_rc-width-units-definition* Parameter width-units definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/REQ_rc-width-units-definition 8 | 9 | *A:* 10 | 11 | Each corridor resource collection operation SHALL support a parameter `width-units` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: width-units 17 | in: query 18 | required: true 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-width-units-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_width_units-response]] 2 | ==== *Requirement /req/edr/width-units-response* Parameter width-units response 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/width-units-response 8 | 9 | *A:* 10 | 11 | If the `width-units` parameter is defined the result set SHALL contain values derived based on the chosen units. 12 | 13 | 14 | 15 | [source,java] 16 | ---- 17 | width-units = units 18 | ---- 19 | --- 20 | *B:* 21 | 22 | If an unsupported units value is requested a `400` error SHOULD be returned. 23 | 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-within-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_within-response]] 2 | ==== *Requirement /req/edr/REQ_rc-within-response* Parameter within response 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/REQ_rc-within-response 8 | 9 | *A:* 10 | 11 | If the `within` parameter is provided, all selected information within the specified radius SHALL be part of the result set. 12 | 13 | --- 14 | *B:* 15 | 16 | If a `within-units` parameter is not provided, a `400` error SHALL be returned. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-within-units-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_within-units-response]] 2 | ==== *Requirement /req/edr/REQ_rc-within-units-response* Parameter within-units response 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/REQ_rc-within-units-response 8 | 9 | *A:* 10 | 11 | The `within-units` parameter SHALL define the distance units of the `within` query parameter value. 12 | 13 | 14 | ==== 15 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/REQ_rc-z-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_z-definition]] 2 | ==== *Requirement /req/edr/z-definition* Parameter z definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/edr/z-definition 8 | 9 | *A:* 10 | 11 | Each resource collection operation MAY support a parameter `z` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 12 | 13 | 14 | [source,YAML] 15 | ---- 16 | name: z 17 | in: query 18 | required: false 19 | schema: 20 | type: string 21 | style: form 22 | explode: false 23 | ---- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/standard/requirements/edr/query_type/no-data.adoc: -------------------------------------------------------------------------------- 1 | [[req_edr_query_type-no-data]] 2 | ==== *Requirement {counter:req-id}: /req/edr/query_type/no-data* No data handling 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|A |An EDR API implementation SHALL return HTTP 204 for queries in which no data exists. 6 | |=== 7 | -------------------------------------------------------------------------------- /core/standard/requirements/geojson/REQ_definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_geojson_definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/geojson/definition 7 | 8 | *A:* 9 | 10 | `200`-responses of the server SHALL support the following media types: 11 | 12 | 13 | 14 | * `application/geo+json` for resources that include feature content, and 15 | 16 | * `application/json` for all other resources. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/html/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_html_content]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/html/content 7 | 8 | *A:* 9 | 10 | Every `200`-response of the server with the media type `text/html` SHALL be a link:https://www.w3.org/TR/html5/[HTML 5 document] that includes the following information in the HTML body: 11 | 12 | 13 | 14 | * all information identified in the schemas of the link:https://spec.openapis.org/oas/v3.0.3#responseObject[Response Object] in the HTML ``, and 15 | 16 | * all links in HTML `` elements in the HTML ``. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/html/REQ_definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_html_definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/html/definition 7 | 8 | *A:* 9 | 10 | Every `200`-response of an operation of the server SHALL support the media type `text/html`. 11 | 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/instances/REQ_rc-md-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_instances_rc-md-op]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/instances/rc-md-op 7 | 8 | *A:* 9 | 10 | The API implementation MAY support the HTTP GET operation at the path `/collections/{collection_id}/instances`. 11 | 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/instances/REQ_rc-md-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_instances_rc-md-success]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/instances/rc-md-success 7 | 8 | *A:* 9 | 10 | A successful execution of the operation SHALL be reported as a response with a HTTP status code `200`. 11 | 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/instances/REQ_src-md-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_instances_src-md-op]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/instances/src-md-op 7 | 8 | *A:* 9 | 10 | The API implementation SHALL support the HTTP GET operation at the path `/collections/{collectionId}/instances/{instanceId}`. 11 | 12 | --- 13 | 14 | *B:* 15 | 16 | The parameter `collectionId` is the `id` property in the resource collection response (JSONPath: `$.collections[*].id`) and `instanceId` is the `id` property of the chosen instance of the chosen collection. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/json/REQ_definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_json_definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/json/definition 7 | 8 | *A:* 9 | 10 | `200`-responses of the server SHALL support the following media types: 11 | 12 | 13 | 14 | * `application/json` for all resources. 15 | 16 | ==== 17 | -------------------------------------------------------------------------------- /core/standard/requirements/oas/REQ_completeness.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas_completeness]] 2 | ==== *Requirement /req/oas/completeness* OpenAPI Completeness 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/oas/completeness 8 | 9 | *A:* 10 | 11 | The OpenAPI definition SHALL specify for each operation all HTTP Status Codes and Response Objects that the server uses in responses. This includes the successful execution of an operation as well as all error situations that originate from the server. 12 | 13 | --- 14 | *B:* 15 | 16 | This includes the successful execution of an operation as well as all error situations that originate from the server. 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/standard/requirements/oas/REQ_exception-codes.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas_exceptions-codes]] 2 | ==== *Requirement /req/oas/exceptions-codes* OpenAPI Exception codes 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/oas/exceptions-codes 8 | 9 | *A:* 10 | 11 | For error situations that originate from an API server, the API definition SHALL cover all applicable HTTP Status Codes. 12 | 13 | ==== 14 | -------------------------------------------------------------------------------- /core/standard/requirements/oas/REQ_oas-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas_oas-definition]] 2 | ==== *Requirement /req/oas/oas-definition* OpenAPI definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/oas/oas-definition 8 | 9 | *A:* 10 | 11 | The content of the response of the HTTP GET operation at the landing page SHALL include the following links to the API definition: 12 | 13 | * Relation type `service-desc` and content type `application/vnd.oai.openapi+json;version=x.y` (where `x.y` is the version of the OpenAPI specification used); 14 | * Relation type `service-doc` and content type `text/html`. 15 | 16 | ==== 17 | -------------------------------------------------------------------------------- /core/standard/requirements/oas/REQ_oas-impl.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas_oas-impl]] 2 | ==== *Requirement /req/oas/oas-impl* OpenAPI implementation 3 | 4 | 5 | [requirement] 6 | ==== 7 | [%metadata] 8 | identifier:: /req/oas/oas-impl 9 | 10 | *A:* 11 | 12 | The server SHALL implement all capabilities specified in the OpenAPI definition. 13 | 14 | ==== 15 | -------------------------------------------------------------------------------- /core/standard/requirements/oas/REQ_security.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas_security]] 2 | ==== *Requirement /req/oas/security* OpenAPI Security 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/oas/security 8 | 9 | *A:* 10 | 11 | For cases, where the operations of the API implementation are access-controlled, the security scheme(s) and requirements SHALL be documented in the OpenAPI definition. 12 | 13 | ==== 14 | -------------------------------------------------------------------------------- /core/standard/requirements/oas30/REQ_oas-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas30_oas-definition]] 2 | ==== *Requirement /req/oas30/oas-definition* OpenAPI 3.0 definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/oas30/oas-definition 8 | 9 | *A:* 10 | 11 | The JSON representation SHALL conform to the <>. 12 | 13 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/oas31/REQ_oas-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas31_oas-definition]] 2 | ==== *Requirement /req/oas31/oas-definition* OpenAPI 3.1 definition 3 | 4 | [requirement] 5 | ==== 6 | [%metadata] 7 | identifier:: /req/oas31/oas-definition 8 | 9 | *A:* 10 | 11 | The JSON representation SHALL conform to the <>. 12 | 13 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/post/REQ_content_type.adoc: -------------------------------------------------------------------------------- 1 | [[req_post_content_type]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/post/content_type 7 | 8 | *A:* 9 | 10 | OpenAPI documentation for HTTP POST queries SHALL provide details for the HTTP POST request body. 11 | 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/post/REQ_definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_post_definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/post/definition 7 | 8 | *A:* 9 | 10 | If an implementation supports HTTP POST, it SHALL be described by an OpenAPI document and it SHALL conform to https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.3. 11 | 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/post/REQ_schema.adoc: -------------------------------------------------------------------------------- 1 | [[req_post_schema]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/post/schema 7 | 8 | *A:* 9 | 10 | OpenAPI documentation for HTTP POST queries SHALL provide a valid schema to describe the message body 11 | 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_covjson.adoc: -------------------------------------------------------------------------------- 1 | [[rc_covjson]] 2 | // *Requirements Class:* CovJSON 3 | 4 | [requirements_class] 5 | .CoverageJSON 6 | 7 | ==== 8 | [%metadata] 9 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/covjson 10 | obligation:: requirement 11 | subject:: Web API 12 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core 13 | 14 | requirement:: /req/covjson/content 15 | requirement:: /req/covjson/definition 16 | 17 | ==== 18 | 19 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_edr_geojson.adoc: -------------------------------------------------------------------------------- 1 | [[rc_edr_geojson]] 2 | // *Requirements Class:* EDR GeoJSON 3 | 4 | [requirements_class] 5 | .EDR GeoJSON 6 | 7 | ==== 8 | [%metadata] 9 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/edr-geojson 10 | obligation:: requirement 11 | subject:: Web API 12 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core 13 | 14 | requirement:: /req/edr-geojson/content 15 | requirement:: /req/edr-geojson/definition 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_geojson.adoc: -------------------------------------------------------------------------------- 1 | [[rc_geojson]] 2 | // *Requirements Class:* GeoJSON 3 | 4 | [requirements_class] 5 | .GeoJSON 6 | 7 | ==== 8 | [%metadata] 9 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/geojson 10 | obligation:: requirement 11 | subject:: Web API 12 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core 13 | 14 | requirement:: /req/geojson/content 15 | requirement:: /req/geojson/definition 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_html.adoc: -------------------------------------------------------------------------------- 1 | [[rc_html]] 2 | // *Requirements Class:* HTML 3 | 4 | [requirements_class] 5 | .HTML 6 | 7 | ==== 8 | [%metadata] 9 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/html 10 | obligation:: requirement 11 | subject:: Web API 12 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core 13 | 14 | requirement:: /req/html/content 15 | requirement:: /req/html/definition 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_json.adoc: -------------------------------------------------------------------------------- 1 | [[rc_json]] 2 | // *Requirements Class:* JSON 3 | 4 | [requirements_class] 5 | .JSON 6 | 7 | ==== 8 | [%metadata] 9 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/json 10 | obligation:: requirement 11 | subject:: Web API 12 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/json 13 | 14 | requirement:: /req/json/content 15 | requirement:: /req/json/definition 16 | 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_oas.adoc: -------------------------------------------------------------------------------- 1 | [[rc_oas]] 2 | [requirements_class] 3 | .OAS 4 | 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/oas 8 | obligation:: requirement 9 | subject:: Web API 10 | inherit:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/core 11 | 12 | requirement:: /req/oas/completeness 13 | requirement:: /req/oas/exceptions-codes 14 | requirement:: /req/oas/oas-definition 15 | requirement:: /req/oas/oas-impl 16 | requirement:: /req/oas/security 17 | 18 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_oas30.adoc: -------------------------------------------------------------------------------- 1 | [[rc_oas30]] 2 | [requirements_class] 3 | .OAS30 4 | 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/oas30 8 | obligation:: requirement 9 | subject:: Web API 10 | inherit:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/oas 11 | inherit:: https://spec.openapis.org/oas/v3.0.4 12 | 13 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_oas31.adoc: -------------------------------------------------------------------------------- 1 | [[rc_oas31]] 2 | [requirements_class] 3 | .OAS31 4 | 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/oas31 8 | obligation:: requirement 9 | subject:: Web API 10 | inherit:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/oas 11 | inherit:: https://spec.openapis.org/oas/v3.1.1 12 | 13 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_post.adoc: -------------------------------------------------------------------------------- 1 | [[rc_post]] 2 | 3 | 4 | [requirements_class] 5 | .POST 6 | 7 | ==== 8 | [%metadata] 9 | identifier:: https://www.opengis.net/spec/ogcapi-edr-1/1.2/req/post 10 | obligation:: requirement 11 | subject:: Web API 12 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core 13 | 14 | requirement:: /req/post/definition 15 | requirement:: /req/post/content_type 16 | requirement:: /req/post/schema 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /docs/Profile Guidance.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/docs/Profile Guidance.docx -------------------------------------------------------------------------------- /docs/~$ofile Guidance.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/docs/~$ofile Guidance.docx -------------------------------------------------------------------------------- /extensions/pubsub/standard/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "metanorma-cli" 4 | gem "relaton-cli" 5 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/UML/README.adoc: -------------------------------------------------------------------------------- 1 | Store UML content in this directory. Feel free to use any organizational scheme that you like. 2 | 3 | Figures derived from UML diagrams should be placed in the "figures" folder. 4 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/abstract_tests/ATS_class_pubsub.adoc: -------------------------------------------------------------------------------- 1 | [conformance_class] 2 | ==== 3 | [%metadata] 4 | identifier:: https://www.opengis.net/spec/ogcapi-edr-2/1.0/conf/pubsub 5 | target:: https://www.opengis.net/spec/ogcapi-edr-2/1.0/req/pubsub 6 | classification:: Target Type:Pub/Sub 7 | abstract-test:: /conf/pubsub/api 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/abstract_tests/ATS_class_pubsub_notification_message_payload.adoc: -------------------------------------------------------------------------------- 1 | [conformance_class] 2 | ==== 3 | [%metadata] 4 | identifier:: https://www.opengis.net/spec/ogcapi-edr-2/1.0/conf/pubsub-notification-message-payload 5 | target:: https://www.opengis.net/spec/ogcapi-edr-2/1.0/req/pubsub-notification-message-payload 6 | abstract-test:: /conf/pubsub-notification-message-payload/geojson 7 | abstract-test:: /conf/pubsub-notification-message-payload/id 8 | abstract-test:: /conf/pubsub-notification-message-payload/operation 9 | abstract-test:: /conf/pubsub-notification-message-payload/pubtime 10 | ==== 11 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/abstract_tests/pubsub/ATS_test_api.adoc: -------------------------------------------------------------------------------- 1 | [[conf_pubsub_api]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/pubsub/api 7 | target:: /req/pubsub/api 8 | test-purpose:: Validate that an implementation of OGC API - EDR provides AsyncAPI capabilities. 9 | test-method:: 10 | + 11 | -- 12 | 1. Construct a path for the API landing page 13 | 2. Issue a HTTP GET request on that path 14 | 3. Inspect all `+link+` objects in the response 15 | 4. Ensure that at least one exists with `+rel=service-desc+` that corresponds to an AsyncAPI 3.0 description 16 | -- 17 | ==== 18 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/code/README.adoc: -------------------------------------------------------------------------------- 1 | Sample code may be stored in this folder, organized as you see fit 2 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/figures/README.adoc: -------------------------------------------------------------------------------- 1 | Figures go here. 2 | 3 | Each figure is a separate file with the naming convention: 4 | 5 | "FIGn.xxx" where "n" is a number with leading zeroes appropriate for the total number of figures and "xxx" is the appropriate extension for the file type. -------------------------------------------------------------------------------- /extensions/pubsub/standard/images/README.adoc: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. Image files for figures go in the "figures" directory. Only place in here images not used in figures (e.g., as parts of tables, as logos, etc.) 2 | 3 | Each graphic is a separate file with the naming convention: 4 | 5 | "GRPn.xxx" where "n" is a sequential number with leading zeroes appropriate for the total number of graphics and "xxx" is the appropriate extension for the file type. 6 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/images/example-pubsub-workflow-ogcapi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/extensions/pubsub/standard/images/example-pubsub-workflow-ogcapi.png -------------------------------------------------------------------------------- /extensions/pubsub/standard/metanorma.yml: -------------------------------------------------------------------------------- 1 | --- 2 | metanorma: 3 | deploy: 4 | email: "ci@metanorma.org" 5 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/openapi/schemas/link.yaml: -------------------------------------------------------------------------------- 1 | $schema: 'https://json-schema.org/draft/2020-12/schema' 2 | $id: 'https://schemas.opengis.net/ogcapi/edr/part2/1.0/openapi/schemas/link.yaml' 3 | title: OGC API - Pub/Sub message payload link definition 4 | description: OGC API - Pub/Sub message payload link definition 5 | 6 | allOf: 7 | - $ref: 'https://schemas.opengis.net/ogcapi/common/part1/1.0/openapi/schemas/link.yaml' 8 | - properties: 9 | channel: 10 | type: string 11 | description: topic to subscribe to for Publish-Subscribe workflow 12 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/recommendations/pubsub-notification-message-payload/REC_id.adoc: -------------------------------------------------------------------------------- 1 | [[rec_pubsub-notification-message-payload-id]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/pubsub-notification-message-payload/id 6 | part:: For message payloads that provide notification metadata about a resource publication, a Pub/Sub notification message `+id+` property SHOULD use a UUID. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/recommendations/pubsub-notification-message-payload/REC_resource_id.adoc: -------------------------------------------------------------------------------- 1 | [[rec_pubsub-notification-message-payload-resourceid]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/pubsub-notification-message-payload/resourceid 6 | part:: A Pub/Sub notification message `+properties.resourceId+` property SHOULD be used to identify a resource that may have multiple message notifications on its state or lifecycle over time. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/recommendations/pubsub/PER_links.adoc: -------------------------------------------------------------------------------- 1 | [[per_pubsub_links]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/pubsub/links 6 | part:: A `collection` resource MAY provide a link reference to a Publish-Subscribe server from an OGC API implementation endpoint when Publish-Subscribe capabilities exist related to the `collection` service endpoint. 7 | part:: A Publish-Subscribe collection link reference MAY provide a `+channel+` property to allow for granular subscription. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/recommendations/pubsub/PER_protocols.adoc: -------------------------------------------------------------------------------- 1 | [[per_pubsub_protocols]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/pubsub/protocols 6 | part:: An implementation of the Publish-Subscribe workflows described in this Standard MAY use the message queueing protocol of their choice and/or based on application requirements. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/requirements/pubsub-notification-message-payload/REQ_rc-geojson.adoc: -------------------------------------------------------------------------------- 1 | [[req_pubsub-notification-message-payload_geojson]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/pubsub-notification-message-payload/geojson 6 | part:: A Pub/Sub notification message encoding SHALL be compliant to IETF RFC 7946 GeoJSON. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/requirements/pubsub-notification-message-payload/REQ_rc-id.adoc: -------------------------------------------------------------------------------- 1 | [[req_pubsub-notification-message-payload_id]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/pubsub-notification-message-payload/id 6 | part:: A Pub/Sub notification message SHALL provide an `+id+` property as a globally unique identifier for the message. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/requirements/pubsub-notification-message-payload/REQ_rc-operation.adoc: -------------------------------------------------------------------------------- 1 | [[req_pubsub-notification-message-payload_operation]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/pubsub-notification-message-payload/operation 6 | part:: A Pub/Sub Notification Message SHALL provide the `+properties.operation+` property to indicate if a resource has been created, updated or deleted. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/requirements/pubsub-notification-message-payload/REQ_rc-pubtime.adoc: -------------------------------------------------------------------------------- 1 | [[req_pubsub-notification-message-payload_pubtime]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/pubsub-notification-message-payload/pubtime 6 | part:: A Pub/Sub notification message SHALL provide a `+properties.pubtime+` property in RFC 3339 format. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/requirements/pubsub/REQ_rc-api.adoc: -------------------------------------------------------------------------------- 1 | [[req_pubsub_api]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/pubsub/api 6 | part:: A landing page SHALL provide a link reference to the description of its Publish-Subscribe capabilities using a link relation of `+service-desc+`. 7 | part:: An API SHALL provide the description of its Publish-Subscribe capabilities using AsyncAPI to describe supported protocols, channels, and message payload descriptions. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/requirements/requirements_class_pubsub.adoc: -------------------------------------------------------------------------------- 1 | [[rc_pubsub]] 2 | [requirements_class] 3 | .Requirements Class 'Publish-Subscribe (Pub/Sub)' 4 | ==== 5 | [%metadata] 6 | identifier:: https://www.opengis.net/spec/ogcapi-edr-2/1.0/req/pubsub 7 | subject:: Pub/Sub 8 | requirement:: /req/pubsub/api 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/sections/annex-bibliography.adoc: -------------------------------------------------------------------------------- 1 | [bibliography] 2 | [[Bibliography]] 3 | == Bibliography 4 | 5 | * [[[ogc23-013,OGC 23-013]]] 6 | 7 | * [[[OGC13-131r1,OGC 13-131r1]]], _OGC Publish/Subscribe Interface Standard 1.0 - Core_ (2020) 8 | 9 | * [[[OGC20-046,OGC 20-046]]], _OGC Publish-Subscribe White Paper_ (2020) 10 | -------------------------------------------------------------------------------- /extensions/pubsub/standard/sections/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | == Revision History 3 | 4 | [width="90%",options="header"] 5 | |=== 6 | |Date |Release |Editor | Primary clauses modified |Description 7 | |2023-08-28 |0.1 |T. Kralidis|all |bootstrap 8 | |2024-01-10 |0.2 |C. Little|all |editorial consistency 9 | |2024-02-16 |0.3 |C. Little|all |workflow consistency 10 | |2024-05-07 |0.4 |T. Kralidis|all |address review comments 11 | |=== 12 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/25-014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/extensions/service_profiles/standard/25-014.pdf -------------------------------------------------------------------------------- /extensions/service_profiles/standard/25-014.pdf.err: -------------------------------------------------------------------------------- 1 | Page 4: Unresolved ID reference "cls-9" found. 2 | Page 4: Unresolved ID reference "annex-A-1" found. 3 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "metanorma-cli" 4 | gem "relaton-cli" 5 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/UML/README.adoc: -------------------------------------------------------------------------------- 1 | Store UML content in this directory. Feel free to use any organizational scheme that you like. 2 | 3 | Figures derived from UML diagrams should be placed in the "figures" folder. 4 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/README.adoc: -------------------------------------------------------------------------------- 1 | This folder contains the Abstract Test Suite. 2 | 3 | The test is expressed according to this pattern: 4 | 5 | NOTE: for each test, there should be a corresponding requirement in the "requirements" folder. 6 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_api.adoc: -------------------------------------------------------------------------------- 1 | [[ats_api]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/api 6 | target:: /req/core/api 7 | test-purpose:: Paraphrase the requirement - Validate that all the parts of a requirement are testable and that Failure to pass any part of a requirement is also a failure to pass the associated conformance test. 8 | test-method:: Inspect the document to verify the above. 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_asynchronous.adoc: -------------------------------------------------------------------------------- 1 | [[ats_asynchronous]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/asynchronous 6 | target:: /req/core/asynchronous 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_collectionid.adoc: -------------------------------------------------------------------------------- 1 | [[ats_collectionid]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/collectionid 6 | target:: /req/core/collectionid 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_conformance-test.adoc: -------------------------------------------------------------------------------- 1 | [[ats_conformance-test]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/conformance-test 6 | target:: /req/core/conformance-test 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query-area.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query-area]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query-area 6 | target:: /req/core/data-query-area 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query-corridor.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query-corridor]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query-corridor 6 | target:: /req/core/data-query-corridor 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query-cube.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query-cube]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query-cube 6 | target:: /req/core/data-query-cube 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query-instances.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query-instances]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query-instances 6 | target:: /req/core/data-query-instances 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query-position.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query-position]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query-position 6 | target:: /req/core/data-query-position 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query-radius.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query-radius]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query-radius 6 | target:: /req/core/data-query-radius 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query-trajectory.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query-trajectory]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query-trajectory 6 | target:: /req/core/data-query-trajectory 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_data-query.adoc: -------------------------------------------------------------------------------- 1 | [[ats_data-query]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/data-query 6 | target:: /req/core/data-query 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_edr-conformant.adoc: -------------------------------------------------------------------------------- 1 | [[ats_edr-conformant]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/edr-conformant 6 | target:: /req/core/edr-conformant 7 | test-purpose:: Validate that the Profile Standard requires that all implementations demonstrate conformance with the OGC API-EDR Standard. 8 | test-method:: Inspect the document to verify the above. 9 | ==== 10 | 11 | NOTE: this "purpose" requires more specificity. 12 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_extent.adoc: -------------------------------------------------------------------------------- 1 | [[ats_extent]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/extent 6 | target:: /req/core/extent 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_id.adoc: -------------------------------------------------------------------------------- 1 | [[ats_id]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/id 6 | target:: /req/core/id 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_instanceid.adoc: -------------------------------------------------------------------------------- 1 | [[ats_instanceid]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/instanceid 6 | target:: /req/core/instanceid 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_links.adoc: -------------------------------------------------------------------------------- 1 | [[ats_links]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/links 6 | target:: /req/core/links 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_modspec.adoc: -------------------------------------------------------------------------------- 1 | [[ats_modspec]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/modspec 6 | target:: /req/core/modspec 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_output-format.adoc: -------------------------------------------------------------------------------- 1 | [[ats_output-format]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/output-format 6 | target:: /req/core/output-format 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_paging-support.adoc: -------------------------------------------------------------------------------- 1 | [[ats_paging-support]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/paging-support 6 | target:: /req/core/paging-support 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_parameter-names.adoc: -------------------------------------------------------------------------------- 1 | [[ats_parameter-names]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/parameter-names 6 | target:: /req/core/parameter-names 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_publishing.adoc: -------------------------------------------------------------------------------- 1 | [[ats_publishing]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/publishing 6 | target:: /req/core/publishing 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_pubsub.adoc: -------------------------------------------------------------------------------- 1 | [[ats_pubsub]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/pubsub 6 | target:: /req/core/pubsub 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_requirements-set.adoc: -------------------------------------------------------------------------------- 1 | [[ats_requirements-set]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/requirements-set 6 | target:: /req/core/requirements-set 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_root.adoc: -------------------------------------------------------------------------------- 1 | [[ats_root]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/root 6 | target:: /req/core/root 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/abstract_tests/core/ATS_status-codes.adoc: -------------------------------------------------------------------------------- 1 | [[ats_status-codes]] 2 | [abstract_test] 3 | ==== 4 | [%metadata] 5 | identifier:: /conf/core/status-codes 6 | target:: /req/core/status-codes 7 | test-purpose:: TBD 8 | test-method:: Inspect the document to verify the above. 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/code/README.adoc: -------------------------------------------------------------------------------- 1 | Sample code may be stored in this folder, organized as you see fit 2 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/figures/README.adoc: -------------------------------------------------------------------------------- 1 | Figures go here. 2 | 3 | Each figure is a separate file with the naming convention: 4 | 5 | "FIGn.xxx" where "n" is a number with leading zeroes appropriate for the total number of figures and "xxx" is the appropriate extension for the file type. -------------------------------------------------------------------------------- /extensions/service_profiles/standard/images/README.adoc: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. Image files for figures go in the "figures" directory. Only place in here images not used in figures (e.g., as parts of tables, as logos, etc.) 2 | 3 | Each graphic is a separate file with the naming convention: 4 | 5 | "GRPn.xxx" where "n" is a sequential number with leading zeroes appropriate for the total number of graphics and "xxx" is the appropriate extension for the file type. 6 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/images/img02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-environmental-data-retrieval/fea87209fe4d1fa4c8d313f8101702c867d10851/extensions/service_profiles/standard/images/img02.png -------------------------------------------------------------------------------- /extensions/service_profiles/standard/metanorma.yml: -------------------------------------------------------------------------------- 1 | --- 2 | metanorma: 3 | deploy: 4 | email: "ci@metanorma.org" 5 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_EDR-conformant.adoc: -------------------------------------------------------------------------------- 1 | [[req_class_core_edr-conformant]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/edr-conformant 7 | statement:: A profile of the <> _SHALL_ require that a conformant implementation (<>) of that profile also demonstrate conformance to the <>. 8 | 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_api.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_api]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/api 7 | 8 | statement:: A Profile of the <> _SHALL_ require that an implementation specify the versions of OpenAPI supported. 9 | 10 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_collectionid.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_collectionid]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/collectionid 7 | statement:: If a Profile of the <> _restricts_ the valid values of the Collection ID parameter, then: 8 | part:: The Profile _SHALL_ specify the rules that the Collection ID values must follow. 9 | part:: Those rules _SHALL_ be specified using either: 10 | * identifier string or 11 | * Regular expression defining valid string patterns. 12 | 13 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_conformance-test.adoc: -------------------------------------------------------------------------------- 1 | [[req_service-profile_conformance-test]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/service-profile/conformance-test 7 | 8 | part:: For each of the requirements defined in the profile there SHALL be a conformance test which defines how to validate compliance with the requirement. 9 | 10 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_data-query-instances.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query-instances]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query-instances 7 | statement:: If a Profile of the <> _extends_ data queries by making the Instances within a Collection queryable, then: 8 | part:: Instances _SHALL_ be defined in the data_queries enumerated list. 9 | part:: A _NULL_ value _SHALL_ be used to indicate that no child instances can be queried. 10 | 11 | ==== 12 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_data-query.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_data-query]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/data-query 7 | statement:: A Profile of the <> Standard _SHALL_ require definition of the supported data queries. 8 | part:: The data_queries definitions _SHALL_ specify which data queries a service supports. This can be defined as follows: 9 | 10 | * Enumerated list of query types 11 | 12 | part:: Each data_query type listed _SHALL_ have a requirement definition. 13 | 14 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_id.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_id]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/id 7 | part:: A Requirement definition _SHALL_ specify the rules that the Collection id string must follow. This can be one of the following: 8 | 9 | * identifier string 10 | * Regular expression defining valid string patterns. 11 | 12 | ==== 13 | 14 | NOTE: This appears to duplicate /req/core/collectionid 15 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_instanceid.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_instanceid]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/instanceid 7 | statement:: If a Profile of the <> _restricts_ the valid values of the Instance ID parameter, then: 8 | part:: The Profile _SHALL_ specify the rules that the Instance ID values must follow. 9 | part:: Those rules _SHALL_ be specified using either: 10 | * identifier string 11 | * Regular expression defining valid string patterns. 12 | 13 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_modspec.adoc: -------------------------------------------------------------------------------- 1 | [[req_class_core_modspec]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/modspec 7 | statement:: A profile of the <> _SHALL_ be conformant to the <>. 8 | 9 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_paging-support.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_paging-support]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/paging-support 7 | statement:: If a Profile of the <> is _extended_ to support paging, then: 8 | part:: A requirement _SHALL _ be created for each combination of query pattern and output format that must support paging. 9 | part:: Each paging requirement _SHALL_ specify the default number of items to return per page request. 10 | 11 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_pubsub.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_pubsub]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/pubsub 7 | statement:: If a Profile of the <> _extends_ the supported operations to include Publish-Subscribe operations, then: 8 | part:: Support for the OGC API - Environmental Data Retrieval - Part 2: Publish-Subscribe workflow Standard _SHALL_ be required. 9 | part:: The pubsub requirement _SHALL_ specify the channels that _SHALL_ be supported 10 | part:: The pubsub requirement _SHALL_ specify the payloads that a pubsub channel _SHALL_ support 11 | 12 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/core/REQ_status-codes.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_status-codes]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/status-codes 7 | statement:: A Profile of the <> _SHALL_ require that the definitions of all http status codes SHALL be provided. 8 | part:: These definitions _SHALL_ provide the following: 9 | 10 | * A description of the cause of the error. 11 | * A JSON schema for the message body structure 12 | 13 | ==== -------------------------------------------------------------------------------- /extensions/service_profiles/standard/requirements/requirement002.adoc: -------------------------------------------------------------------------------- 1 | [[req_class_a_name_2]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/req-class-a/req-name-2 7 | part:: The server SHALL support process input values encoded as qualified values. 8 | part:: The value of the `value` key SHALL be an _object_ instance. 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/sections/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | == Revision History 3 | 4 | [width="90%",options="header"] 5 | |=== 6 | |Date |Release |Editor | Primary clauses modified |Description 7 | |2016-04-28 |0.1 |G. Editor |all |initial version 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/sections/annex-n.adoc: -------------------------------------------------------------------------------- 1 | [appendix,obligation="informative"] 2 | == Title 3 | 4 | [NOTE] 5 | Place other Annex material in sequential annexes beginning with "B" and leave final two annexes for the Revision History and Bibliography 6 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/sections/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | == Scope 2 | [NOTE] 3 | ==== 4 | Insert Scope text here. Give the subject of the document and the aspects of that scope covered by the document. 5 | ==== 6 | -------------------------------------------------------------------------------- /extensions/service_profiles/standard/sections/clause_8_media_types.adoc: -------------------------------------------------------------------------------- 1 | == Media Types for any data encoding(s) 2 | 3 | A section describing the MIME-types to be used is mandatory for any standard involving data encodings. If no suitable MIME type exists in http://www.iana.org/assignments/media-types/index.html then this section may be used to define a new MIME type for registration with IANA. 4 | -------------------------------------------------------------------------------- /implementations/servers/README.md: -------------------------------------------------------------------------------- 1 | # Publishing APIs implementing OGC API - EDR 2 | 3 | This folder contains descriptions of software packages that can be used to provide APIs that implement and conform to OGC API - EDR. The focus is on examples and "how-to" descriptions. 4 | 5 | We welcome pull requests to update this page to add or update an entry for a server implementation. If it is your software product, please also update the [main page](../README.adoc). 6 | 7 | - [pygeoapi](pygeoapi.md) 8 | - [Open Weather](open-weather.md) 9 | - [US National Weather Service](national-weather-service.md) 10 | - [WHU EDR Server](whu-edr-server.md) 11 | -------------------------------------------------------------------------------- /ogc-web-api-guidelines/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the checklists for each version of OGC API EDR standard and its Parts. 2 | -------------------------------------------------------------------------------- /use-cases/Environmental-impact.md: -------------------------------------------------------------------------------- 1 | Development applications often require an environmental impact assessment, This will usually be associated with a named property or lot or tract. Access to EIA data keyed to a named feature, such as a property or lot-number, rather than its geometry (which may not be as well known) is needed to support re-use of data submitted under such a program. -------------------------------------------------------------------------------- /use-cases/Feature-orientated-example.md: -------------------------------------------------------------------------------- 1 | Using the OGC API-Features compatible aspects of EDR API: 2 | 1. Give me all traffic lights along my route; 3 | 2. Give me all houses below my flight path; 4 | 3. Give me all seabed sediment sample data within a given radius of a position. 5 | 6 | An alternative, more sophisticated query: 7 | 1. Give me the state of all traffic lights along my route; 8 | 2. Give me the current energy consumption of houses below my flight path; 9 | 3. Give me the shear strength and bulk density of the seabed within a given radius of a position. 10 | 11 | Thanks to @hylkevds, @KathiSchleidt & @koalageo 12 | -------------------------------------------------------------------------------- /use-cases/Government-investment.md: -------------------------------------------------------------------------------- 1 | Investment in environmental interventions by government is typically in response to environmental chnages in specified areas, such as census-tracts, local-government-areas, parliamentary districts. Access to snapshots and time-series keyed to a 'named' area (feature) from a specific geography (catchments, electoral, statistical, government) would be needed to support this. --------------------------------------------------------------------------------