├── .github └── workflows │ └── generate.yml_deprecated ├── .gitignore ├── 18-062.adoc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Gemfile ├── LICENSE ├── README.md ├── code └── README.md ├── core ├── README.md ├── UML │ └── README.md ├── abstract_tests │ ├── ATS_class_callback.adoc │ ├── ATS_class_core.adoc │ ├── ATS_class_dismiss.adoc │ ├── ATS_class_html.adoc │ ├── ATS_class_job-list.adoc │ ├── ATS_class_json.adoc │ ├── ATS_class_oas30.adoc │ ├── ATS_class_ogc-process-description.adoc │ ├── README.md │ ├── callback │ │ └── ATS_process-execute-callback.adoc │ ├── core │ │ ├── ATS_api-definition-op.adoc │ │ ├── ATS_api-definition-success.adoc │ │ ├── ATS_conformance-op.adoc │ │ ├── ATS_conformance-success.adoc │ │ ├── ATS_http.adoc │ │ ├── ATS_job-exception-no-such-job.adoc │ │ ├── ATS_job-op.adoc │ │ ├── ATS_job-result-op.adoc │ │ ├── ATS_job-results-exception-no-such-job.adoc │ │ ├── ATS_job-results-exception-results-not-ready.adoc │ │ ├── ATS_job-results-failed.adoc │ │ ├── ATS_job-results-op.adoc │ │ ├── ATS_job-results-param-outputs-empty.adoc │ │ ├── ATS_job-results-param-outputs-omit.adoc │ │ ├── ATS_job-results-param-outputs-response.adoc │ │ ├── ATS_job-results-param-outputs.adoc │ │ ├── ATS_job-results-success-async-many.adoc │ │ ├── ATS_job-results-success-async-one.adoc │ │ ├── ATS_job-results-success-sync.adoc │ │ ├── ATS_job-success.adoc │ │ ├── ATS_landingpage-op.adoc │ │ ├── ATS_landingpage-success.adoc │ │ ├── ATS_process-description-op.adoc │ │ ├── ATS_process-description-success.adoc │ │ ├── ATS_process-exception-no-such-process.adoc │ │ ├── ATS_process-execute-auto-execution-mode.adoc │ │ ├── ATS_process-execute-default-execution-mode.adoc │ │ ├── ATS_process-execute-default-outputs.adoc │ │ ├── ATS_process-execute-input-array.adoc │ │ ├── ATS_process-execute-input-inline-bbox.adoc │ │ ├── ATS_process-execute-input-inline-binary.adoc │ │ ├── ATS_process-execute-input-inline-multiple-types.adoc │ │ ├── ATS_process-execute-input-inline-object.adoc │ │ ├── ATS_process-execute-input-validation.adoc │ │ ├── ATS_process-execute-inputs.adoc │ │ ├── ATS_process-execute-op.adoc │ │ ├── ATS_process-execute-request.adoc │ │ ├── ATS_process-execute-success-async.adoc │ │ ├── ATS_process-execute-success-sync-many-json.adoc │ │ ├── ATS_process-execute-success-sync-one-default-content.adoc │ │ ├── ATS_process-execute-success-sync-one.adoc │ │ ├── ATS_process-list-limit-def.adoc │ │ ├── ATS_process-list-limit-response.adoc │ │ ├── ATS_process-list-links.adoc │ │ ├── ATS_process-list-op.adoc │ │ ├── ATS_process-list-success.adoc │ │ ├── ATS_process-summary-links.adoc │ │ └── ATS_test-process.adoc │ ├── dismiss │ │ ├── ATS_job-dismiss-op.adoc │ │ └── ATS_job-dismiss-success.adoc │ ├── html │ │ ├── ATS_content.adoc │ │ └── ATS_definition.adoc │ ├── job-list │ │ ├── ATS_datetime-def.adoc │ │ ├── ATS_datetime-response.adoc │ │ ├── ATS_duration-def.adoc │ │ ├── ATS_duration-response.adoc │ │ ├── ATS_limit-def.adoc │ │ ├── ATS_limit-response.adoc │ │ ├── ATS_links.adoc │ │ ├── ATS_op.adoc │ │ ├── ATS_processid-def.adoc │ │ ├── ATS_processid-mandatory.adoc │ │ ├── ATS_processid-response.adoc │ │ ├── ATS_status-def.adoc │ │ ├── ATS_status-response.adoc │ │ ├── ATS_success.adoc │ │ ├── ATS_type-def.adoc │ │ └── ATS_type-response.adoc │ ├── json │ │ └── 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 │ └── ogc-process-description │ │ ├── ATS_input-def.adoc │ │ ├── ATS_input-multiple-types.adoc │ │ ├── ATS_inputs-def.adoc │ │ ├── ATS_json-encoding.adoc │ │ ├── ATS_links.adoc │ │ ├── ATS_output-def.adoc │ │ ├── ATS_output-multiple-types.adoc │ │ └── ATS_outputs-def.adoc ├── examples │ ├── json │ │ ├── ConfClasses.json │ │ ├── Execute.json │ │ ├── JobList.json │ │ ├── LandingPage.json │ │ ├── ProcessDescription.json │ │ ├── ProcessList.json │ │ ├── Result.json │ │ ├── StatusInfo-dismissed.json │ │ ├── StatusInfo.json │ │ └── bbox.json │ ├── openapi │ │ └── ogcapi-processes-1-example.yaml │ └── yaml │ │ ├── alternative-api.yaml │ │ └── callbacks.yaml ├── figures │ ├── PT1_FIG01.png │ └── README.md ├── iev │ └── cache │ │ └── version ├── images │ └── README.md ├── recommendations │ ├── README.md │ ├── core │ │ ├── PER_additional-status-codes.adoc │ │ ├── PER_alternative-process-description.adoc │ │ ├── PER_alternative-process-paths.adoc │ │ ├── PER_api-definition-uri.adoc │ │ ├── PER_job-results-success-async-many-other-formats.adoc │ │ ├── PER_job-status.adoc │ │ ├── PER_process-execute-input-inline-bbox.adoc │ │ ├── PER_process-execute-multiple-output-pkg.adoc │ │ ├── PER_process-execute-success-sync-many-other-formats.adoc │ │ ├── PER_process-execute-sync-job.adoc │ │ ├── PER_process-list-limit-default-minimum-maximum.adoc │ │ ├── PER_process-list-limit-response.adoc │ │ ├── PER_process-list-prev.adoc │ │ ├── REC_access-control-expose-headers.adoc │ │ ├── REC_api-definition-oas.adoc │ │ ├── REC_content-length.adoc │ │ ├── REC_cross-origin.adoc │ │ ├── REC_header-profile-link.adoc │ │ ├── REC_html.adoc │ │ ├── REC_http-head.adoc │ │ ├── REC_job-links.adoc │ │ ├── REC_job-results-success-async-many-json-prefer-minimal.adoc │ │ ├── REC_job-results-success-async-many-json-prefer-none.adoc │ │ ├── REC_job-results-success-async-many-json-prefer-representation.adoc │ │ ├── REC_job-status.adoc │ │ ├── REC_link-header.adoc │ │ ├── REC_ogc-process-description.adoc │ │ ├── REC_problem-details.adoc │ │ ├── REC_process-execute-handle-prefer.adoc │ │ ├── REC_process-execute-handle-return-preference.adoc │ │ ├── REC_process-execute-honor-prefer.adoc │ │ ├── REC_process-execute-honor-return-preference.adoc │ │ ├── REC_process-execute-mode-auto.adoc │ │ ├── REC_process-execute-preference-applied.adoc │ │ ├── REC_process-execute-success-sync-many-json-prefer-minimal.adoc │ │ ├── REC_process-execute-success-sync-many-json-prefer-none.adoc │ │ ├── REC_process-execute-success-sync-many-json-prefer-representation.adoc │ │ ├── REC_process-list-next-1.adoc │ │ ├── REC_process-list-next-2.adoc │ │ ├── REC_process-list-next-3.adoc │ │ └── REC_test-process.adoc │ ├── html │ │ └── PER_media-types.adoc │ ├── job-list │ │ ├── PER_jl-limit-default-minimum-maximum.adoc │ │ ├── PER_jl-limit-response.adoc │ │ ├── PER_prev.adoc │ │ ├── REC_access-control-job-list.adoc │ │ ├── REC_landing-page.adoc │ │ ├── REC_next-1.adoc │ │ ├── REC_next-2.adoc │ │ └── REC_next-3.adoc │ ├── json │ │ └── PER_media-types.adoc │ ├── kvp-execute │ │ ├── PER_boolean-input-value.adoc │ │ ├── PER_complex-input-value.adoc │ │ ├── PER_numeric-input-value.adoc │ │ └── PER_string-input-value.adoc │ ├── ogc-process-description │ │ ├── REC_format-key.adoc │ │ ├── REC_format-short-code.adoc │ │ ├── REC_format-value-registration.adoc │ │ └── REC_links.adoc │ └── query-param-profile │ │ ├── PER_default.adoc │ │ ├── PER_profiles-of-media-type.adoc │ │ ├── REC_link-header.adoc │ │ └── REC_negotiation.adoc ├── requirements │ ├── README.md │ ├── callback │ │ └── REQ_process-execute-callback.adoc │ ├── core │ │ ├── REQ_api-definition-op.adoc │ │ ├── REQ_api-definition-success.adoc │ │ ├── REQ_conformance-op.adoc │ │ ├── REQ_conformance-success.adoc │ │ ├── REQ_http.adoc │ │ ├── REQ_job-exception-no-such-job.adoc │ │ ├── REQ_job-op.adoc │ │ ├── REQ_job-result-op.adoc │ │ ├── REQ_job-results-exception-invalid-query-parameter-value.adoc │ │ ├── REQ_job-results-exception-no-such-job.adoc │ │ ├── REQ_job-results-exception-results-not-ready.adoc │ │ ├── REQ_job-results-failed.adoc │ │ ├── REQ_job-results-op.adoc │ │ ├── REQ_job-results-param-outputs-empty.adoc │ │ ├── REQ_job-results-param-outputs-omit.adoc │ │ ├── REQ_job-results-param-outputs-response.adoc │ │ ├── REQ_job-results-param-outputs.adoc │ │ ├── REQ_job-results-success-async-many.adoc │ │ ├── REQ_job-results-success-async-one.adoc │ │ ├── REQ_job-results-success-sync.adoc │ │ ├── REQ_job-success.adoc │ │ ├── REQ_landingpage-op.adoc │ │ ├── REQ_landingpage-success.adoc │ │ ├── REQ_process-description-op.adoc │ │ ├── REQ_process-description-success.adoc │ │ ├── REQ_process-exception-no-such-process.adoc │ │ ├── REQ_process-execute-auto-execution-mode.adoc │ │ ├── REQ_process-execute-default-execution-mode.adoc │ │ ├── REQ_process-execute-default-outputs.adoc │ │ ├── REQ_process-execute-input-array.adoc │ │ ├── REQ_process-execute-input-inline-bbox.adoc │ │ ├── REQ_process-execute-input-inline-binary.adoc │ │ ├── REQ_process-execute-input-inline-multiple-types.adoc │ │ ├── REQ_process-execute-input-inline-object.adoc │ │ ├── REQ_process-execute-input-validation.adoc │ │ ├── REQ_process-execute-op.adoc │ │ ├── REQ_process-execute-request.adoc │ │ ├── REQ_process-execute-success-async.adoc │ │ ├── REQ_process-execute-success-sync-many-json.adoc │ │ ├── REQ_process-execute-success-sync-one-default-content.adoc │ │ ├── REQ_process-execute-success-sync-one.adoc │ │ ├── REQ_process-list-limit-def.adoc │ │ ├── REQ_process-list-limit-response.adoc │ │ ├── REQ_process-list-links.adoc │ │ ├── REQ_process-list-op.adoc │ │ ├── REQ_process-list-success.adoc │ │ ├── REQ_process-summary-links.adoc │ │ └── REQ_test-process.adoc │ ├── dismiss │ │ ├── REQ_job-dismiss-op.adoc │ │ ├── REQ_job-dismiss-status.adoc │ │ └── REQ_job-dismiss-success.adoc │ ├── html │ │ ├── REQ_content.adoc │ │ └── REQ_definition.adoc │ ├── job-list │ │ ├── REQ_datetime-def.adoc │ │ ├── REQ_datetime-response.adoc │ │ ├── REQ_duration-def.adoc │ │ ├── REQ_duration-response.adoc │ │ ├── REQ_jl-limit-def.adoc │ │ ├── REQ_jl-limit-response.adoc │ │ ├── REQ_links.adoc │ │ ├── REQ_op.adoc │ │ ├── REQ_processid-def.adoc │ │ ├── REQ_processid-mandatory.adoc │ │ ├── REQ_processid-response.adoc │ │ ├── REQ_status-def.adoc │ │ ├── REQ_status-response.adoc │ │ ├── REQ_success.adoc │ │ ├── REQ_type-def.adoc │ │ └── REQ_type-response.adoc │ ├── json │ │ └── REQ_definition.adoc │ ├── kvp-execute │ │ ├── REQ_array-input-value.adoc │ │ ├── REQ_bbox-crs-input-value.adoc │ │ ├── REQ_bbox-input-value.adoc │ │ ├── REQ_binary-input-value-qualified.adoc │ │ ├── REQ_binary-input-value.adoc │ │ ├── REQ_boolean-input-value.adoc │ │ ├── REQ_complex-input-value.adoc │ │ ├── REQ_f-definition.adoc │ │ ├── REQ_f-response.adoc │ │ ├── REQ_input-by-reference.adoc │ │ ├── REQ_input-cardinality.adoc │ │ ├── REQ_input-query-parameter-values.adoc │ │ ├── REQ_input-query-parameters.adoc │ │ ├── REQ_numeric-input-value.adoc │ │ ├── REQ_output.adoc │ │ ├── REQ_prefer-definition.adoc │ │ ├── REQ_prefer-response.adoc │ │ ├── REQ_process-execute-op.adoc │ │ └── REQ_string-input-value.adoc │ ├── oas30 │ │ ├── REQ_completeness.adoc │ │ ├── REQ_exception-codes.adoc │ │ ├── REQ_oas-definition-1.adoc │ │ ├── REQ_oas-definition-2.adoc │ │ ├── REQ_oas-impl.adoc │ │ └── REQ_security.adoc │ ├── ogc-process-description │ │ ├── REQ_input-binary.adoc │ │ ├── REQ_input-def.adoc │ │ ├── REQ_input-multiple-types.adoc │ │ ├── REQ_inputs-def.adoc │ │ ├── REQ_json-encoding.adoc │ │ ├── REQ_links.adoc │ │ ├── REQ_output-def.adoc │ │ ├── REQ_output-multiple-types.adoc │ │ ├── REQ_outputs-def.adoc │ │ └── REQ_value-passing.adoc │ ├── query-param-profile │ │ ├── REQ_definition.adoc │ │ └── REQ_response.adoc │ ├── requirements_class_callback.adoc │ ├── requirements_class_core.adoc │ ├── requirements_class_dismiss.adoc │ ├── requirements_class_html.adoc │ ├── requirements_class_job-list.adoc │ ├── requirements_class_json.adoc │ ├── requirements_class_kvp-execute.adoc │ ├── requirements_class_oas30.adoc │ ├── requirements_class_ogc-process-description.adoc │ └── requirements_class_query-param-profile.adoc └── sections │ ├── annex-ats.adoc │ ├── annex-bibliography.adoc │ ├── annex-history.adoc │ ├── clause_0_front_material.adoc │ ├── clause_10_encodings.adoc │ ├── clause_11_oas.adoc │ ├── clause_12_job_list.adoc │ ├── clause_13_callback.adoc │ ├── clause_14_dismiss.adoc │ ├── clause_15_kvp-execute.adoc │ ├── clause_16_media_types.adoc │ ├── clause_17_profile.adoc │ ├── clause_18_additional-api-building-blocks.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_ogc-process-description.adoc │ └── clause_9_security-considerations.adoc ├── extensions ├── README.md ├── billing │ └── README.md ├── deploy_replace_undeploy │ ├── README.md │ ├── examples │ │ ├── json │ │ │ └── README.md │ │ └── xml │ │ │ └── README.md │ ├── standard │ │ ├── 20-044.adoc │ │ ├── README.md │ │ ├── abstract_tests │ │ │ ├── ATS_class_cwl.adoc │ │ │ ├── ATS_class_docker.adoc │ │ │ ├── ATS_class_dru.adoc │ │ │ ├── ATS_class_ogcapppkg.adoc │ │ │ ├── README.md │ │ │ ├── cc │ │ │ │ └── TEST001.adoc │ │ │ ├── cwl │ │ │ │ ├── deploy │ │ │ │ │ ├── ATS_body.adoc │ │ │ │ │ ├── ATS_response-body.adoc │ │ │ │ │ └── ATS_response.adoc │ │ │ │ └── replace │ │ │ │ │ ├── ATS_body.adoc │ │ │ │ │ └── ATS_response.adoc │ │ │ ├── docker │ │ │ │ ├── deploy │ │ │ │ │ └── ATS_body.adoc │ │ │ │ └── replace │ │ │ │ │ └── ATS_body.adoc │ │ │ ├── dru │ │ │ │ ├── ATS_mutable-process.adoc │ │ │ │ ├── ATS_process-list-success.adoc │ │ │ │ ├── ATS_static-indicator.adoc │ │ │ │ ├── ATS_test-process.adoc │ │ │ │ ├── deploy │ │ │ │ │ ├── ATS_content-type.adoc │ │ │ │ │ ├── ATS_post-op.adoc │ │ │ │ │ └── ATS_unsupported-content-type.adoc │ │ │ │ ├── replace │ │ │ │ │ ├── ATS_content-type.adoc │ │ │ │ │ ├── ATS_put-op.adoc │ │ │ │ │ └── ATS_unsupported-content-type.adoc │ │ │ │ └── undeploy │ │ │ │ │ ├── ATS_delete-op.adoc │ │ │ │ │ ├── ATS_response-immutable-success.adoc │ │ │ │ │ ├── ATS_response-immutable.adoc │ │ │ │ │ └── ATS_response.adoc │ │ │ └── ogcapppkg │ │ │ │ ├── deploy │ │ │ │ ├── ATS_body.adoc │ │ │ │ ├── ATS_response-duplicate.adoc │ │ │ │ ├── ATS_response-success.adoc │ │ │ │ └── ATS_response.adoc │ │ │ │ └── replace │ │ │ │ ├── ATS_body.adoc │ │ │ │ └── ATS_response.adoc │ │ ├── figures │ │ │ └── README.md │ │ ├── images │ │ │ └── README.md │ │ ├── recommendations │ │ │ ├── README.md │ │ │ ├── deploy-replace-undeploy │ │ │ │ ├── PER_additional-status-codes.adoc │ │ │ │ ├── deploy │ │ │ │ │ ├── PER_body.adoc │ │ │ │ │ ├── REC_body-cwl.adoc │ │ │ │ │ └── REC_body-ogcapppkg.adoc │ │ │ │ ├── package │ │ │ │ │ ├── REC_response-cwl.adoc │ │ │ │ │ └── REC_response-ogcapppkg.adoc │ │ │ │ └── replace │ │ │ │ │ ├── PER_body.adoc │ │ │ │ │ ├── REC_body-cwl.adoc │ │ │ │ │ └── REC_body-ogcapppkg.adoc │ │ │ └── ogcapppkg │ │ │ │ ├── REC_execution-unit-docker.adoc │ │ │ │ └── REC_ogcapppkg_execution-unit-cwl.adoc │ │ ├── requirements │ │ │ ├── cwl │ │ │ │ ├── REQ_body.adoc │ │ │ │ ├── REQ_execution-unit.adoc │ │ │ │ ├── deploy │ │ │ │ │ ├── REQ_body.adoc │ │ │ │ │ ├── REQ_exception-workflow-not-found.adoc │ │ │ │ │ └── REQ_w-param.adoc │ │ │ │ ├── package │ │ │ │ │ └── REQ_response-body.adoc │ │ │ │ └── replace │ │ │ │ │ └── REQ_body.adoc │ │ │ ├── deploy-replace-undeploy │ │ │ │ ├── deploy │ │ │ │ │ ├── REQ_body.adoc │ │ │ │ │ ├── REQ_content-type.adoc │ │ │ │ │ ├── REQ_post-op.adoc │ │ │ │ │ ├── REQ_response-body.adoc │ │ │ │ │ ├── REQ_response-duplicate.adoc │ │ │ │ │ ├── REQ_response-immutable.adoc │ │ │ │ │ ├── REQ_response-pid.adoc │ │ │ │ │ ├── REQ_response-success.adoc │ │ │ │ │ └── REQ_unsupported-media-type.adoc │ │ │ │ ├── immutable │ │ │ │ │ └── REQ_indicator.adoc │ │ │ │ ├── package │ │ │ │ │ ├── REQ_get-op.adoc │ │ │ │ │ ├── REQ_response-body.adoc │ │ │ │ │ └── REQ_response-success.adoc │ │ │ │ ├── replace │ │ │ │ │ ├── REQ_body.adoc │ │ │ │ │ ├── REQ_content-type.adoc │ │ │ │ │ ├── REQ_put-op.adoc │ │ │ │ │ └── REQ_response.adoc │ │ │ │ └── undeploy │ │ │ │ │ ├── REQ_delete-op.adoc │ │ │ │ │ └── REQ_response.adoc │ │ │ ├── docker │ │ │ │ ├── REQ_execution-unit.adoc │ │ │ │ └── REQ_schema.adoc │ │ │ ├── ogcapppkg │ │ │ │ ├── REQ_body.adoc │ │ │ │ ├── REQ_process-description.adoc │ │ │ │ ├── REQ_profile-docker.adoc │ │ │ │ ├── REQ_schema.adoc │ │ │ │ ├── deploy │ │ │ │ │ └── REQ_body.adoc │ │ │ │ ├── package │ │ │ │ │ └── REQ_response-body.adoc │ │ │ │ └── replace │ │ │ │ │ └── REQ_body.adoc │ │ │ ├── requirements_class_cwl.adoc │ │ │ ├── requirements_class_deploy-replace-undeploy.adoc │ │ │ ├── requirements_class_docker.adoc │ │ │ └── requirements_class_ogcapppkg.adoc │ │ ├── sections │ │ │ ├── annex_ats.adoc │ │ │ ├── annex_bibliography.adoc │ │ │ ├── annex_history.adoc │ │ │ ├── clause_0_front_material.adoc │ │ │ ├── clause_10_oas.adoc │ │ │ ├── clause_11_media_types.adoc │ │ │ ├── clause_12_security_considerations.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_deploy_replace_undeploy.adoc │ │ │ ├── clause_7_apppkg.adoc │ │ │ ├── clause_8_docker.adoc │ │ │ └── clause_9_cwl.adoc │ │ └── standard.css │ └── xml │ │ └── README.md ├── job_management │ ├── README.md │ ├── examples │ │ ├── json │ │ │ └── README.md │ │ └── xml │ │ │ └── README.md │ ├── standard │ │ ├── 24-051.adoc │ │ ├── README.md │ │ ├── abstract_tests │ │ │ ├── ATS_class_jm.adoc │ │ │ ├── README.md │ │ │ ├── cc │ │ │ │ └── TEST001.adoc │ │ │ └── jm │ │ │ │ └── create │ │ │ │ └── ATS_post-op.adoc │ │ ├── figures │ │ │ └── README.md │ │ ├── images │ │ │ └── README.md │ │ ├── recommendations │ │ │ ├── README.md │ │ │ ├── job-management │ │ │ │ ├── PER_additional-status-codes.adoc │ │ │ │ ├── create │ │ │ │ │ ├── PER_body.adoc │ │ │ │ │ ├── PER_content-schema.adoc │ │ │ │ │ ├── REC_body-ogcapi-processes.adoc │ │ │ │ │ └── REC_body-openeo.adoc │ │ │ │ └── update │ │ │ │ │ ├── PER_body.adoc │ │ │ │ │ ├── PER_content-schema.adoc │ │ │ │ │ ├── REC_body-ogcapi-processes.adoc │ │ │ │ │ └── REC_body-openeo.adoc │ │ │ ├── ogcapi-processes │ │ │ │ ├── create │ │ │ │ │ └── PER_content-schema.adoc │ │ │ │ └── update │ │ │ │ │ └── PER_content-schema.adoc │ │ │ ├── openeo │ │ │ │ ├── create │ │ │ │ │ └── PER_content-schema.adoc │ │ │ │ └── update │ │ │ │ │ └── PER_content-schema.adoc │ │ │ └── provenance │ │ │ │ └── prov │ │ │ │ └── PER_content-negotiation.adoc │ │ ├── requirements │ │ │ ├── job-management │ │ │ │ ├── create │ │ │ │ │ ├── REQ_body.adoc │ │ │ │ │ ├── REQ_content-type.adoc │ │ │ │ │ ├── REQ_post-op.adoc │ │ │ │ │ ├── REQ_response-body.adoc │ │ │ │ │ ├── REQ_response-jobid.adoc │ │ │ │ │ ├── REQ_response-success.adoc │ │ │ │ │ ├── REQ_unsupported-media-type.adoc │ │ │ │ │ └── REQ_unsupported-schema.adoc │ │ │ │ ├── definition │ │ │ │ │ ├── REQ_get-op.adoc │ │ │ │ │ ├── REQ_response-body.adoc │ │ │ │ │ └── REQ_response-success.adoc │ │ │ │ ├── start │ │ │ │ │ ├── REQ_post-op.adoc │ │ │ │ │ └── REQ_response.adoc │ │ │ │ └── update │ │ │ │ │ ├── REQ_body.adoc │ │ │ │ │ ├── REQ_content-type.adoc │ │ │ │ │ ├── REQ_patch-op.adoc │ │ │ │ │ ├── REQ_response-locked.adoc │ │ │ │ │ └── REQ_response.adoc │ │ │ ├── ogcapi-processes │ │ │ │ ├── REQ_schema.adoc │ │ │ │ ├── create │ │ │ │ │ └── REQ_body.adoc │ │ │ │ ├── definition │ │ │ │ │ └── REQ_response-body.adoc │ │ │ │ └── update │ │ │ │ │ └── REQ_body.adoc │ │ │ ├── openeo │ │ │ │ ├── REQ_schema.adoc │ │ │ │ ├── create │ │ │ │ │ └── REQ_body.adoc │ │ │ │ ├── definition │ │ │ │ │ └── REQ_response-body.adoc │ │ │ │ └── update │ │ │ │ │ └── REQ_body.adoc │ │ │ ├── provenance │ │ │ │ ├── inputs │ │ │ │ │ ├── REQ_get-op.adoc │ │ │ │ │ └── REQ_response.adoc │ │ │ │ └── prov │ │ │ │ │ ├── REQ_get-op.adoc │ │ │ │ │ └── REQ_response.adoc │ │ │ ├── requirements_class_job-management.adoc │ │ │ ├── requirements_class_ogcapi-processes.adoc │ │ │ ├── requirements_class_openeo.adoc │ │ │ └── requirements_class_provenance.adoc │ │ ├── sections │ │ │ ├── annex_ats.adoc │ │ │ ├── annex_bibliography.adoc │ │ │ ├── annex_history.adoc │ │ │ ├── clause_0_front_material.adoc │ │ │ ├── clause_10_oas.adoc │ │ │ ├── clause_11_media_types.adoc │ │ │ ├── clause_12_security_considerations.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_job_management.adoc │ │ │ ├── clause_7_ogcapi-processes.adoc │ │ │ ├── clause_8_openeo.adoc │ │ │ └── clause_9_provenance.adoc │ │ └── standard.css │ └── xml │ │ └── README.md ├── quotation │ └── README.md └── workflows │ ├── .asciidoctorconfig.adoc │ ├── .dockerenv │ ├── .project │ ├── 21-009.adoc │ ├── UML │ └── README.adoc │ ├── abstract_tests │ └── README.adoc │ ├── code │ └── README.adoc │ ├── figures │ ├── README.adoc │ ├── architecture-diagram.mermaid │ ├── architecture-diagram.png │ ├── coastal-erosion-workflow.mermaid │ └── coastal-erosion-workflow.png │ ├── images │ └── README.adoc │ ├── recommendations │ └── collection-output │ │ └── PER_collection-output_expiry.adoc │ ├── requirements │ ├── README.adoc │ ├── collection-input │ │ ├── REQ_collection-input_collection-access.adoc │ │ └── REQ_collection-input_referenced-collection.adoc │ ├── collection-output │ │ ├── REQ_collection-output_collection-response.adoc │ │ ├── REQ_collection-output_data-access-mechanisms.adoc │ │ ├── REQ_collection-output_landing-page-response.adoc │ │ ├── REQ_collection-output_landing-page.adoc │ │ └── REQ_collection-output_response-query-parameter.adoc │ ├── cwl-workflows │ │ └── REQ_cwl-workflows_adhoc-cwl-execution.adoc │ ├── deployable-workflows │ │ ├── REQ_deployable-workflows_deploying-workflow.adoc │ │ ├── REQ_deployable-workflows_parameterized-inputs.adoc │ │ └── REQ_deployable-workflows_selected-outputs.adoc │ ├── input-fields-modifiers │ │ ├── REQ_input-fields-modifiers_derived-fields.adoc │ │ ├── REQ_input-fields-modifiers_filtering.adoc │ │ └── REQ_input-fields-modifiers_sorting.adoc │ ├── nested-processes │ │ ├── REQ_nested-processes_process-execution.adoc │ │ └── REQ_nested-processes_referenced-process.adoc │ ├── openeo-workflows │ │ └── REQ_openeo-workflows_adhoc-openeo-execution.adoc │ ├── output-fields-modifiers │ │ ├── REQ_output-fields-modifiers_derived-fields.adoc │ │ ├── REQ_output-fields-modifiers_filtering.adoc │ │ └── REQ_output-fields-modifiers_sorting.adoc │ ├── remote-collections │ │ ├── REQ_remote-collections_collection-access.adoc │ │ └── REQ_remote-collections_referenced-collection.adoc │ ├── remote-core-processes │ │ ├── REQ_remote-core-processes_process-execution.adoc │ │ └── REQ_remote-core-processes_referenced-process.adoc │ ├── requirements_class_collection-input.adoc │ ├── requirements_class_collection-output.adoc │ ├── requirements_class_cwl-workflows.adoc │ ├── requirements_class_deployable-workflows.adoc │ ├── requirements_class_input-fields-modifiers.adoc │ ├── requirements_class_nested-processes.adoc │ ├── requirements_class_openeo-workflows.adoc │ ├── requirements_class_output-fields-modifiers.adoc │ ├── requirements_class_remote-collections.adoc │ └── requirements_class_remote-core-processes.adoc │ └── sections │ ├── annex-a.adoc │ ├── annex-b-coastal-erosion.adoc │ ├── annex-bibliography.adoc │ ├── annex-history.adoc │ ├── clause_0_front_material.adoc │ ├── clause_10_deployable_workflow.adoc │ ├── clause_11_collection_output.adoc │ ├── clause_12_cwl_workflows.adoc │ ├── clause_13_openeo_workflows.adoc │ ├── clause_14_media_types.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_nested_processes.adoc │ ├── clause_8_collection_input.adoc │ └── clause_9_input_output_fields_modifiers.adoc ├── implementations.adoc ├── index.adoc ├── metanorma.yml ├── ogcapi-ogc-org-processes-overview.md ├── ogcmetanorma.json ├── openapi.yaml ├── openapi ├── .validaterc ├── README.md ├── api │ ├── README.md │ └── processes-list.json ├── ogcapi-processes.bundled.json ├── ogcapi-processes.yaml ├── parameters │ ├── common-crs │ │ ├── crs.yaml │ │ ├── subset-crs.yaml │ │ └── unspecified │ │ │ ├── f-metadata.yaml │ │ │ └── f-vectorTile.yaml │ ├── common-geodata │ │ ├── bbox.yaml │ │ ├── collectionId-all.yaml │ │ ├── collectionId-coverage.yaml │ │ ├── collectionId-vectorTiles.yaml │ │ ├── collections-coverage.yaml │ │ ├── collections-vectorTiles.yaml │ │ ├── collections.yaml │ │ ├── datetime.yaml │ │ ├── limit-collections.yaml │ │ └── subset.yaml │ ├── processes-core │ │ ├── bbox-crs.yaml │ │ ├── generic │ │ │ ├── array.yaml │ │ │ ├── complex.yaml │ │ │ ├── simple-boolean.yaml │ │ │ ├── simple-numeric.yaml │ │ │ └── simple-string.yaml │ │ ├── jobID.yaml │ │ ├── limit.yaml │ │ ├── maxDuration.yaml │ │ ├── minDuration.yaml │ │ ├── output.yaml │ │ ├── outputID.yaml │ │ ├── prefer-header-execution.yaml │ │ ├── prefer-header-results.yaml │ │ ├── processID-path.yaml │ │ ├── processID-query.yaml │ │ ├── profile.yaml │ │ ├── status.yaml │ │ └── type.yaml │ ├── processes-dru │ │ └── w-param.yaml │ ├── processes-workflows │ │ └── response.yaml │ └── unspecified │ │ └── f-metadata.yaml ├── paths │ ├── common-core │ │ ├── pAPI.yaml │ │ ├── pConformance.yaml │ │ └── pLandingPage.yaml │ ├── common-geodata │ │ ├── pCollection.yaml │ │ └── pCollectionsList.yaml │ ├── dynamic │ │ └── pAllProcesses.yaml │ ├── processes-core │ │ ├── pExecution.yaml │ │ ├── pJob.yaml │ │ ├── pJobResults.yaml │ │ ├── pJobsList.yaml │ │ ├── pProcessDescription.yaml │ │ └── pProcessList.yaml │ ├── processes-dru │ │ ├── pDeploy.yaml │ │ ├── pPackage.yaml │ │ ├── pProcessDescriptionReplaceUndeploy.yaml │ │ ├── pProcessListDeploy.yaml │ │ ├── pReplace.yaml │ │ └── pUndeploy.yaml │ ├── processes-job-management │ │ ├── pJob.yaml │ │ ├── pJobDefinition.yaml │ │ ├── pJobInputs.yaml │ │ ├── pJobResults.yaml │ │ └── pJobsList.yaml │ └── processes-workflows │ │ └── pExecution-workflows.yaml ├── responses │ ├── common-core │ │ ├── rAPI.yaml │ │ ├── rConformance.yaml │ │ ├── rException.yaml │ │ ├── rInvalidParameter.yaml │ │ ├── rLandingPage.yaml │ │ ├── rNotAcceptable.yaml │ │ ├── rNotAllowed.yaml │ │ ├── rNotFound.yaml │ │ └── rServerError.yaml │ ├── common-geodata │ │ ├── rCollection.yaml │ │ └── rCollectionsList.yaml │ ├── dynamic │ │ └── rEnumeration.yaml │ ├── processes-core │ │ ├── rEmpty.yaml │ │ ├── rExecuteAsync.yaml │ │ ├── rExecuteSync.yaml │ │ ├── rExecuteSyncRawRef.yaml │ │ ├── rJobList.yaml │ │ ├── rProcessDescription.yaml │ │ ├── rProcessList.yaml │ │ ├── rResults.yaml │ │ └── rStatus.yaml │ ├── processes-dru │ │ ├── rDeployProcess.yaml │ │ ├── rDuplicateProcess.yaml │ │ └── rImmutableProcess.yaml │ ├── processes-job-management │ │ ├── rInputs.yaml │ │ ├── rLocked.yaml │ │ └── rUnsupportedSchema.yaml │ └── processes-workflows │ │ └── rExecuteCollectionRedirect.yaml ├── schemas │ ├── common-core │ │ ├── confClasses.yaml │ │ ├── exception.yaml │ │ ├── landingPage.yaml │ │ └── link.yaml │ ├── common-geodata │ │ ├── collectionInfo.yaml │ │ ├── collections.yaml │ │ ├── crs.yaml │ │ ├── dataType.yaml │ │ ├── extent-uad.yaml │ │ ├── extent.yaml │ │ ├── numberMatched.yaml │ │ ├── numberReturned.yaml │ │ ├── projJSON.yaml │ │ └── timeStamp.yaml │ ├── dynamic │ │ ├── enumeration.yaml │ │ └── processes-list.yaml │ ├── geojson │ │ └── FeatureCollection.yaml │ ├── processes-core │ │ ├── additionalParameter.yaml │ │ ├── bbox-def-crs.yaml │ │ ├── bbox.yaml │ │ ├── binaryInputValue.yaml │ │ ├── descriptionType.yaml │ │ ├── execute.yaml │ │ ├── format.yaml │ │ ├── inlineOrRefData.yaml │ │ ├── input.yaml │ │ ├── inputDescription.yaml │ │ ├── inputValue.yaml │ │ ├── inputValueNoObject.yaml │ │ ├── jobControlOptions.yaml │ │ ├── jobList.yaml │ │ ├── metadata.yaml │ │ ├── output.yaml │ │ ├── outputDescription.yaml │ │ ├── process.yaml │ │ ├── processList.yaml │ │ ├── processSummary.yaml │ │ ├── qualifiedInputValue.yaml │ │ ├── reference.yaml │ │ ├── results.yaml │ │ ├── statusCode.yaml │ │ ├── statusInfo.yaml │ │ └── subscriber.yaml │ ├── processes-dru │ │ ├── executionUnit.yaml │ │ ├── ogcapppkg-array.yaml │ │ ├── ogcapppkg.yaml │ │ └── staticIndicator.yaml │ ├── processes-job-management │ │ ├── headers.yaml │ │ ├── inputs.yaml │ │ ├── jobList.yaml │ │ ├── openeo-process-graph.yaml │ │ ├── processes-type.yaml │ │ ├── statusCode.yaml │ │ └── statusInfo.yaml │ └── processes-workflows │ │ ├── execute-workflows.yaml │ │ ├── fieldsModifiers.yaml │ │ ├── inlineOrRefData-workflows.yaml │ │ ├── input-workflows.yaml │ │ ├── inputCollection.yaml │ │ ├── inputParameterized.yaml │ │ ├── inputProcess.yaml │ │ ├── inputValue-workflows.yaml │ │ ├── inputValueNoObject-workflows.yaml │ │ ├── output-workflows.yaml │ │ └── qualifiedInputValue-workflows.yaml └── update.sh ├── proposals └── README.md └── workshops ├── 2021 └── workshop-1 │ ├── 2021-06-OGCAPI_Processes_Workshop_Screenshots.pdf │ ├── 2021-06_Workshop_ties.adoc │ ├── 2021_06_Workshop.adoc │ └── 2021_06_Workshop_Registration.adoc ├── 2023 ├── .DS_Store └── code-sprint-1 │ ├── 2023_09_code_sprint.adoc │ ├── 2023_09_code_sprint_registration.adoc │ ├── README.md │ ├── components.adoc │ └── logistics.adoc └── Server_Reports ├── CRIM.adoc ├── CubeWerx.adoc ├── Ecere.adoc ├── GeoLabs.adoc └── Hexagon.adoc /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | See the [OGC Principles of Conduct](https://www.ogc.org/ogc/policies/conduct) 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "metanorma-cli" 4 | -------------------------------------------------------------------------------- /code/README.md: -------------------------------------------------------------------------------- 1 | Sample code may be stored in this folder, organized as you see fit 2 | -------------------------------------------------------------------------------- /core/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the text for the standard 2 | 3 | * standard_document.adoc - the main standard document with references to all sections 4 | * remaining adocs - each section of the standard document is in a separate document: follow directions in each document to populate 5 | * images - directory for image files used as figures 6 | * requirements - directory for requirements and requirement classes to be referenced in clause_7_normative_text.adoc 7 | -------------------------------------------------------------------------------- /core/UML/README.md: -------------------------------------------------------------------------------- 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 "standard/figures" folder. -------------------------------------------------------------------------------- /core/abstract_tests/ATS_class_callback.adoc: -------------------------------------------------------------------------------- 1 | [[ats_callback]] 2 | 3 | [conformance_class] 4 | ==== 5 | [%metadata] 6 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/callback 7 | subject:: <> 8 | classification:: Target Type:Web API 9 | conformance-test:: /conf/callback/job-callback 10 | ==== 11 | 12 | include::callback/ATS_process-execute-callback.adoc[] 13 | -------------------------------------------------------------------------------- /core/abstract_tests/ATS_class_html.adoc: -------------------------------------------------------------------------------- 1 | [[ats_html]] 2 | 3 | [conformance_class] 4 | ==== 5 | [%metadata] 6 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/html 7 | subject:: <> 8 | inherit:: <> 9 | classification:: Target Type:Web API 10 | conformance-test:: /conf/html/content 11 | conformance-test:: /conf/html/definition 12 | ==== 13 | 14 | include::html/ATS_content.adoc[] 15 | 16 | include::html/ATS_definition.adoc[] 17 | -------------------------------------------------------------------------------- /core/abstract_tests/ATS_class_json.adoc: -------------------------------------------------------------------------------- 1 | [[ats_json]] 2 | 3 | [conformance_class] 4 | ==== 5 | [%metadata] 6 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/json 7 | subject:: <> 8 | classification:: Target Type:Web API 9 | conformance-test:: /conf/json/definition 10 | ==== 11 | 12 | include::json/ATS_definition.adoc[] 13 | -------------------------------------------------------------------------------- /core/abstract_tests/README.md: -------------------------------------------------------------------------------- 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/abstract_tests/core/ATS_api-definition-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_api-definition-op]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/api-definition-op 7 | target:: /req/core/api-definition-op 8 | test-purpose:: Validate that the API Definition document can be retrieved from the expected location. 9 | test-method:: 10 | + 11 | -- 12 | 1. Construct a path for the API Definition document that ends with `/api`. 13 | 14 | 2. Issue a HTTP GET request on that path. 15 | 16 | 3. Validate the contents of the returned document using test <>. 17 | -- 18 | ==== 19 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_api-definition-success.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_api-definition-success]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/api-definition-success 7 | target:: /req/core/api-definition-success 8 | test-purpose:: Validate that the API Definition complies with the required structure and contents. 9 | test-method:: 10 | + 11 | -- 12 | 1. Validate that a document was returned with a status code 200. 13 | 14 | 2. Validate the API Definition document against an appropriate schema document. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_http.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_http]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/http 7 | target:: /req/core/http 8 | test-purpose:: Validate that the resource paths advertised through the API conform with HTTP 1.1 and, where appropriate, TLS. 9 | test-method:: 10 | + 11 | -- 12 | 1. All compliance tests SHALL be configured to use the HTTP 1.1 protocol exclusively. 13 | 14 | 2. For APIs which support HTTPS, all compliance tests SHALL be configured to use <> (RFC 2818) with their HTTP 1.1 protocol. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_job-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_job-op]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/job-op 7 | target:: /req/core/job-op 8 | test-purpose:: Validate that the status info of a job can be retrieved. 9 | test-method:: 10 | + 11 | -- 12 | 1. Create a job as per <> and note the {jobID} assigned to the job. 13 | 14 | 2. Issue an HTTP GET request to the URL '/jobs/{jobID}'. 15 | 16 | 3. Validate the contents of the returned document using the test <>. 17 | -- 18 | ==== 19 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_job-results-param-outputs-empty.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_job-results-param-outputs-empty]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/job-results-param-outputs-empty 7 | target:: /req/core/job-results-param-outputs-empty 8 | test-purpose:: Validate that no processing results are available when the `outputs` parameter is present in an execution request but is empty. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the server responds with a 204 HTTP status code and an empty response body when an output is requested. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_job-results-param-outputs-omit.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_job-results-param-outputs-omit]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/job-results-param-outputs-omit 7 | target:: /req/core/job-results-param-outputs-omit 8 | test-purpose:: Validate that all processing results are included in the response when the `outputs` parameter is omitted from an execution request. 9 | test-method:: 10 | + 11 | -- 12 | Omit the `outputs` parameter from a process execution request and verify that all processing results are included in the response. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_job-results-param-outputs.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_job-results-param-outputs]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/job-results-param-outputs 7 | target:: /req/core/job-results-param-outputs 8 | test-purpose:: Validate that the `outputs` parameter is constructed correctly. 9 | test-method:: 10 | + 11 | -- 12 | 1. Verify that the `outputs` parameter complies with its definition in requirement <>. 13 | -- 14 | ==== 15 | 16 | NOTE: The API can define different values for "minimum", "maximum" and "default". 17 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_landingpage-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_landingpage-op]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/landingpage-op 7 | target:: /req/core/landingpage-op 8 | test-purpose:: Validate that a landing page can be retrieved from the expected location. 9 | test-method:: 10 | + 11 | -- 12 | 1. Issue an HTTP GET request to the root URL `/`. 13 | 14 | 2. Validate the contents of the returned document using test <>. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_process-execute-request.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_process-execute-request]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/process-execute-request 7 | target:: /req/core/process-execute-request 8 | test-purpose:: Validate that the server supports a process execution operation complying with the required structure and contents. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the server supports a process execution request whose body conforms to the OpenAPI 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/core/openapi/schemas/execute.yaml[execute.yaml]. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_process-list-limit-def.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_pl-limit-definition]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/pl-limit-definition 7 | target:: /req/core/pl-limit-definition 8 | test-purpose:: Validate that the `limit` query parameter is constructed correctly. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the `limit` query parameter complies with its definition in requirement <>. 13 | -- 14 | ==== 15 | 16 | NOTE: An implementation of the Processes API can define different values for "minimum", "maximum" and "default". 17 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_process-list-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_process-list-op]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core/process-list 7 | target:: /req/core/process-list 8 | test-purpose:: Validate that information about the processes can be retrieved from the expected location. 9 | test-method:: 10 | + 11 | -- 12 | 1. Issue an HTTP GET request to the URL {root}/processes 13 | 14 | 2. Validate the contents of the returned document using test <>. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/core/ATS_test-process.adoc: -------------------------------------------------------------------------------- 1 | [[ats_core_test-process]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/core 7 | target:: /req/core/test-process 8 | test-purpose:: Ensure that a testable process is offered by the server being tested. 9 | test-method:: 10 | + 11 | -- 12 | If a server implementing the OGC API - Processes - Part 1: Core is tested using CITE tests, the server SHALL offer at least one testable process. Please refer to 13 | //<> 14 | Recommendation A.1 15 | for further guidance. 16 | -- 17 | ==== 18 | -------------------------------------------------------------------------------- /core/abstract_tests/html/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_html_definition]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/html/definition 7 | target:: /req/html/definition 8 | test-purpose:: Verify support for HTML 9 | test-method:: 10 | + 11 | -- 12 | Verify that every `200` response for every operation of the Processes API implementation for which HTML was requested is of media type `text/html`. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_datetime-def.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_datetime-definition]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/datetime-definition 7 | target:: /req/job-list/datetime-definition 8 | test-purpose:: Validate that the `datetime` query parameter is constructed correctly. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the `datetime` query parameter complies with its definition in requirement <>. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_limit-def.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_limit-definition]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/limit-definition 7 | target:: /req/job-list/limit-definition 8 | test-purpose:: Validate that the `limit` query parameter is constructed correctly. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the `limit` query parameter complies with its definition in requirement <>. 13 | -- 14 | ==== 15 | 16 | NOTE: An implementation of the Processes API can define different values for "minimum", "maximum" and "default". 17 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_job-list-op]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/job-list-op 7 | target:: /req/job-list/job-list-op 8 | test-purpose:: Validate that information about jobs can be retrieved from the expected location. 9 | test-method:: 10 | + 11 | -- 12 | 1. Issue an HTTP GET request to the URL /jobs. 13 | 14 | 2. Validate the contents of the returned document using test <>. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_processid-def.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_processID-definition]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/processID-definition 7 | target:: /req/job-list/processID-definition 8 | test-purpose:: Validate that the `processID` query parameter is constructed correctly. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the `processID` query parameter complies with its definition in requirement <>. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_processid-mandatory.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_processid-mandatory]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/processID-mandatory 7 | target:: /req/job-list/processID-mandatory 8 | test-purpose:: Validate that the `processID` property is present in every job. 9 | test-method:: 10 | + 11 | -- 12 | 1. Get a list of jobs as per test <>. 13 | 14 | 2. Verify that each job includes a `processID` property. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_status-def.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_status-definition]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/status-definition 7 | target:: /req/job-list/status-definition 8 | test-purpose:: Validate that the `status` query parameter is constructed correctly. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the `status` query parameter complies with its definition in requirement <>. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_success.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_job-list-success]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/job-list-success 7 | target:: /req/job-list/job-list-success 8 | test-purpose:: Validate that the job list content complies with the required structure and contents. 9 | test-method:: 10 | + 11 | -- 12 | 1. Validate that a document was returned with an HTTP status code of 200. 13 | 14 | 2. Validate the job list content for all supported media types using the resources and tests identified in <> 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/job-list/ATS_type-def.adoc: -------------------------------------------------------------------------------- 1 | [[ats_job-list_type-definition]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/job-list/type-definition 7 | target:: /req/job-list/type-definition 8 | test-purpose:: Validate that the `type` query parameter is constructed correctly. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the `type` query parameter complies with its definition in requirement <>. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/json/ATS_definition.adoc: -------------------------------------------------------------------------------- 1 | [[ats_json_content]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/json/definition 7 | target:: /req/json/definition 8 | test-purpose:: Verify support for JSON. 9 | test-method:: 10 | + 11 | -- 12 | 1. A resource is requested with response media type of `application/json`. 13 | 14 | 2. All `200` responses SHALL support the following media types: `application/json` for all resources. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/oas30/ATS_completeness.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_completeness]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/oas30/completeness 7 | target:: /req/oas30/completeness 8 | test-purpose:: Verify the completeness of an OpenAPI document. 9 | test-method:: 10 | + 11 | -- 12 | Verify that for each operation, the OpenAPI document describes all link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#httpCodes[HTTP Status Codes] and link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject[Response Objects] that the API uses in responses. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/oas30/ATS_definition-2.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_oas-definition-2]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/oas30/oas-definition-2 7 | target:: /req/oas30/oas-definition-2 8 | test-purpose:: Verify that the OpenAPI document is valid JSON. 9 | test-method:: 10 | + 11 | -- 12 | Verify that the JSON representation conforms to the <>. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/oas30/ATS_exception-codes.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_exceptions-codes]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/oas30/exceptions-codes 7 | target:: /req/oas30/exceptions-codes 8 | test-purpose:: Verify that the OpenAPI document fully describes potential exception codes. 9 | test-method:: 10 | + 11 | -- 12 | Verify that for each operation, the OpenAPI document describes all link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#httpCodes[HTTP Status Codes] that may be generated. 13 | -- 14 | ==== 15 | -------------------------------------------------------------------------------- /core/abstract_tests/oas30/ATS_oas-impl.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_oas-impl]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/oas30/oas-impl 7 | target:: /req/oas30/oas-impl 8 | test-purpose:: Verify that all capabilities specified in the OpenAPI definition are implemented by the API. 9 | test-method:: 10 | + 11 | -- 12 | 1. Construct a path from each URL template including all server URL options and all enumerated path parameters. 13 | 14 | 2. For each path defined in the OpenAPI document, validate that the path performs in accordance with the API definition and the OGC API - Processes standard. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/abstract_tests/oas30/ATS_security.adoc: -------------------------------------------------------------------------------- 1 | [[ats_oas30_security]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/oas30/security 7 | target:: /req/oas30/security 8 | test-purpose:: Verify that any authentication protocols implemented by the API are documented in the OpenAPI document. 9 | test-method:: 10 | + 11 | -- 12 | 1. Identify all authentication protocols supported by the API. 13 | 14 | 2. Validate that each authentication protocol is described in the OpenAPI document by a Security Schema Object and its use is specified by a Security Requirement Object. 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/examples/json/ConfClasses.json: -------------------------------------------------------------------------------- 1 | { 2 | "conformsTo": [ 3 | "http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/core", 4 | "http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/json", 5 | "http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/html", 6 | "http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/oas30" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /core/examples/json/StatusInfo-dismissed.json: -------------------------------------------------------------------------------- 1 | { 2 | "jobID" : "81574318-1eb1-4d7c-af61-4b3fbcf33c4f", 3 | "status": "dismissed", 4 | "message": "Job dismissed", 5 | "progress": 56, 6 | "links": [ 7 | { 8 | "href": "http://processing.example.org/oapi-p/jobs", 9 | "rel": "up", 10 | "type": "application/json", 11 | "title": "The job list of this server" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /core/examples/json/StatusInfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "jobID" : "81574318-1eb1-4d7c-af61-4b3fbcf33c4f", 3 | "status": "accepted", 4 | "message": "Process started", 5 | "progress": 0, 6 | "created": "2021-05-04T10:13:00+05:00", 7 | "links": [ 8 | { 9 | "href": "http://processing.example.org/oapi-p/jobs/81574318-1eb1-4d7c-af61-4b3fbcf33c4f", 10 | "rel": "self", 11 | "type": "application/json", 12 | "title": "this document" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /core/examples/yaml/callbacks.yaml: -------------------------------------------------------------------------------- 1 | callbacks: 2 | jobCompleted: 3 | '{$request.body#/subscriber/successUri}': 4 | post: 5 | requestBody: 6 | content: 7 | application/json: 8 | schema: 9 | $ref: '#/components/schemas/results' 10 | responses: 11 | '202': 12 | description: Results received successfully 13 | -------------------------------------------------------------------------------- /core/figures/PT1_FIG01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/091640de383292a09cad19ac8ee61dadc4f8cd84/core/figures/PT1_FIG01.png -------------------------------------------------------------------------------- /core/figures/README.md: -------------------------------------------------------------------------------- 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/iev/cache/version: -------------------------------------------------------------------------------- 1 | 0.2.6 -------------------------------------------------------------------------------- /core/images/README.md: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. 2 | 3 | Each graphic 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. 6 | 7 | or, for other graphics not associated with figures: 8 | 9 | "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. 10 | -------------------------------------------------------------------------------- /core/recommendations/README.md: -------------------------------------------------------------------------------- 1 | This folder contains recommendations for each conformance class in the 2 | OGC API - Processes - Part 1 specification. 3 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_additional-status-codes.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_additiona-status-codes]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/additional-status-codes 6 | label:: /per/core/additional-status-codes 7 | 8 | Servers MAY support other capabilities of the HTTP protocol and, therefore, 9 | MAY return other status codes than those listed in <>, too. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_alternative-process-description.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_alternative-process-description]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/alternative-process-description 6 | label:: /per/core/alternative-process-description 7 | 8 | Servers MAY support alternative means of describing the inputs and outputs of a process. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_alternative-process-paths.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_alternative-process-paths]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/alternative-process-paths 6 | label:: /per/core/alternative-process-paths 7 | 8 | Servers MAY support alternative API paths. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_api-definition-uri.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_api-definition-uri]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/api-definition-uri 6 | label:: /per/core/api-definition-uri 7 | 8 | The API definition is metadata about the capabilities provided by an API implementation instance and strictly speaking is not part of the API itself, but the definition MAY be hosted as a sub-resource to the base path of the API, for example, at path `/api`. There is no need to include the path of the API definition in the API definition itself. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_job-status.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_job-status]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/job-status 6 | label:: /per/core/job-status 7 | 8 | [.component,class=part] 9 | -- 10 | Servers MAY, via the `request` field, include the request that was submitted to the server resulting in the creation of this job. The initiating request MAY be encoded inline in the job status information or MAY be referenced via a link. 11 | -- 12 | 13 | [.component,class=part] 14 | -- 15 | Servers MAY, via the `message` field, include additional human-readable context information about the job. 16 | -- 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_process-execute-input-inline-bbox.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_creation-input-inline-bbox]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/process-execute-input-inline-bbox 6 | label:: /per/core/process-execute-input-inline-bbox 7 | 8 | Servers MAY copy the contents of <> into another file and adjust the `default` and `enum` values as required. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_process-execute-sync-job.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_process-execute-sync-job]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/process-execute-sync-job 6 | label:: /per/core/process-execute-sync-job 7 | 8 | Servers MAY support the creation of a job for synchronously executed processes. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_process-list-limit-default-minimum-maximum.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_limit-default-minimum-maximum]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/limit-default-minimum-maximum 6 | label:: /per/core/limit-default-minimum-maximum 7 | 8 | part:: The values for `minimum`, `maximum` and `default` in requirement `/req/core/limit-definition` are only examples and MAY be changed. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_process-list-limit-response.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_limit-response]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/limit-response 6 | label:: /per/core/limit-response 7 | 8 | part:: The server MAY return fewer process summaries than requested (but not more). 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/PER_process-list-prev.adoc: -------------------------------------------------------------------------------- 1 | [[per_core_prev]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/core/prev 6 | label:: /per/core/prev 7 | 8 | part:: A response to dereferencing a next page link (relation: `next`) MAY include a prev page link (relation: `prev`) to the resource that included the next page link (relation: `next`). 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_access-control-expose-headers.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_access-control-expose-headers]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/access-control-expose-headers 6 | label:: /rec/core/access-control-expose-headers 7 | 8 | If the server is intended to be accessed from the browser and if Cross-origin resource sharing is supported, the `Access-Control-Expose-Headers` header SHOULD be used and the header SHOULD contain the value `location` to enable the browser to access the `location` header of the response. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_api-definition-oas.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_api_definition-oas]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/api-definition-oas 6 | label:: /rec/core/api-definition-oas 7 | 8 | If the API definition document is defined using the OpenAPI Specification 3.0, the document SHOULD conform to the <>. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_content-length.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_content-length]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/content-length 6 | label:: /rec/core/content-length 7 | 8 | The server SHOULD include the HTTP 1.1 `Content-Length` header in all responses. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_cross-origin.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_cross-origin]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/cross-origin 6 | label:: /rec/core/cross-origin 7 | 8 | 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. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_html.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_html]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/html 6 | label:: /rec/core/html 7 | 8 | To support browsing an implementation of OGC API - Processes with a web browser and to enable search engines to crawl and index a process, implementations SHOULD consider to support an HTML encoding. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_http-head.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_http-head]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/http-head 6 | label:: /rec/core/http-head 7 | 8 | The server SHOULD support the HTTP 1.1 method HEAD for all resources that support the method GET. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_job-results-success-async-many-json-prefer-representation.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_job-results-async-many-json-prefer-representation]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/job-results-async-many-json-prefer-representation 6 | label:: /rec/core/job-results-async-many-json-prefer-representation 7 | 8 | [.component,class=conditions] 9 | -- 10 | The negotiated https://datatracker.ietf.org/doc/html/rfc7240#section-4.2[return preference] is `representation`. 11 | -- 12 | 13 | [.component,class=part] 14 | -- 15 | Each requested output value SHOULD be included in-line in the response. 16 | -- 17 | ==== 18 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_link-header.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_link-header]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/link-header 6 | label:: /rec/core/link-header 7 | 8 | [.component,class=part] 9 | -- 10 | Links included in payload of responses SHOULD also be included as `Link` headers in the HTTP response according to <>. 11 | -- 12 | 13 | [.component,class=part] 14 | -- 15 | This recommendation does not apply, if there are a large number of links included in a response or the details of a link are not known when the HTTP headers of the response are created. 16 | -- 17 | ==== 18 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_ogc-process-description.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_ogc-process-description]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/ogc-process-description 6 | label:: /rec/core/ogc-process-description 7 | 8 | Implementations SHOULD consider supporting the <>. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_problem-details.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_problem-details]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/problem-details 6 | label:: /rec/core/problem-details 7 | 8 | A server SHOULD include a "Problem Details" report in an error response in accordance with https://datatracker.ietf.org/doc/html/rfc7807[RFC 7807]. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_process-execute-handle-prefer.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_process-execute-handle-prefer]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/process-execute-handle-prefer 6 | label:: /rec/core/process-execute-handle-prefer 7 | 8 | A client that accompanies an execute request with the HTTP https://datatracker.ietf.org/doc/html/rfc7240#section-2[`Prefer`] header asserting a https://tools.ietf.org/html/rfc7240#section-4.1[`respond-async`] preference and/or a https://tools.ietf.org/html/rfc7240#section-4.3[`wait`] preference SHOULD be prepared to receive either an asynchronous or a synchronous response. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_process-execute-mode-auto.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_process-execute-mode-auto]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/process-execute-mode-auto 6 | label:: /rec/core/process-execute-mode-auto 7 | 8 | A client that requests a process be executed in `auto` mode SHOULD be prepared to receive either an asynchronous or a synchronous response. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_process-list-next-1.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_next-1]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/next-1 6 | label:: /rec/core/next-1 7 | 8 | If more processes summaries have been selected than returned in the response, a `200`-response SHOULD include a link to the next page (relation: `next`) of process summaries. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_process-list-next-2.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_next-2]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/next-2 6 | label:: /rec/core/next-2 7 | 8 | Dereferencing a next page link (relation: `next`) SHOULD return additional process summaries from the set of selected process summaries that have not yet been returned. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/core/REC_process-list-next-3.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_next-3]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/core/next-3 6 | label:: /rec/core/next-3 7 | 8 | The number of process summaries in a response to dereferencing a next page link (relation: `next`) SHOULD follow the same rules as for the response to the original query and again include a next page link (relation: `next`), if there are more process summaries in the selection that have not yet been returned. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/html/PER_media-types.adoc: -------------------------------------------------------------------------------- 1 | [[per_html_media-types]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/html/media-types 6 | label:: /per/html/media-types 7 | 8 | A HTML media type may be further qualified with additional subtype, suffix and parameter components. For example, `test/html; charset=UTF-8`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/job-list/PER_jl-limit-default-minimum-maximum.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-list_limit-default-minimum-maximum]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/job-list/limit-default-minimum-maximum 6 | label:: /per/job-list/limit-default-minimum-maximum 7 | 8 | part:: The values for `minimum`, `maximum` and `default` in requirement `/req/job-list/limit-definition` are only examples and MAY be changed. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/job-list/PER_jl-limit-response.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-list_limit-response]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/job-list/limit-response 6 | label:: /per/job-list/limit-response 7 | 8 | part:: The server MAY return fewer jobs than requested (but not more). 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/job-list/PER_prev.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-list_prev]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/job-list/prev 6 | label:: /per/job-list/prev 7 | 8 | part:: A response to dereferencing a next page link (relation: `next`) MAY include a previous page link (relation: `prev`) to the resource that included the next page link (relation: `next`). 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/job-list/REC_access-control-job-list.adoc: -------------------------------------------------------------------------------- 1 | [recommendation] 2 | ==== 3 | [%metadata] 4 | identifier:: /rec/job-list/access-control-job-list 5 | label:: /rec/job-list/access-control-job-list 6 | 7 | Servers implementing the conformance class 'Job List' SHOULD have an access control in place for the /jobs endpoint to prevent misuse of job identifiers. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/recommendations/job-list/REC_landing-page.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-list_job-list-landing-page]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/job-list/job-list-landing-page 6 | label:: /rec/job-list/job-list-landing-page 7 | 8 | A link to the following resource SHOULD be added to the API landing page: 9 | 10 | /jobs (relation type 'http://www.opengis.net/def/rel/ogc/1.0/job-list') 11 | ==== 12 | -------------------------------------------------------------------------------- /core/recommendations/job-list/REC_next-1.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-list_next-1]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/job-list/next-1 6 | label:: /rec/job-list/next-1 7 | 8 | If more jobs have been selected than returned in the respose, a `200`-response SHOULD include a link to the next page (relation: `next`) of jobs. 9 | ==== 10 | 11 | -------------------------------------------------------------------------------- /core/recommendations/job-list/REC_next-2.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-list_next-2]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/job-list/next-2 6 | label:: /rec/job-list/next-2 7 | 8 | Dereferencing a next page link (relation: `next`) SHOULD return additional jobs from the set of selected jobs that have not yet been returned. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/job-list/REC_next-3.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-list_next-3]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/job-list/next-3 6 | label:: /rec/job-list/next-3 7 | 8 | If there are more jobs in the selection that have not yet been returned, the number of jobs in a response to dereferencing a next page link (relation: `next`) SHOULD follow the same rules as for the response to the original query and again include a next page link (relation: `next`). 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/json/PER_media-types.adoc: -------------------------------------------------------------------------------- 1 | [[per_json_media-types]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/json/media-types 6 | label:: /per/json/media-types 7 | 8 | A JSON media type may be further qualified with additional subtype, suffix and parameter components. For example, `application/ld+json; charset=UTF-8`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/ogc-process-description/REC_format-key.adoc: -------------------------------------------------------------------------------- 1 | [[rec_ogc-process-description_format-key]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/ogc-process-description/format-key 6 | label:: /rec/ogc-process-description/format-key 7 | 8 | Servers SHOULD use the `format` key in the schema description of a process input or output (key: `schema`) to provide additional semantic context that can aid in the interpretation and validation of process input or output values in an <> request. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/ogc-process-description/REC_format-short-code.adoc: -------------------------------------------------------------------------------- 1 | [[rec_ogc-process-description_additional-format-short-code]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/ogc-process-description/format-short-code 6 | label:: /rec/ogc-process-description/format-short-code 7 | 8 | In addition to the key values listed in <>, servers SHOULD also accept the short codes. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/ogc-process-description/REC_format-value-registration.adoc: -------------------------------------------------------------------------------- 1 | [[rec_ogc-process-description_format-value-registration]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/ogc-process-description/format-value-registration 6 | label:: /rec/ogc-process-description/format-value-registration 7 | 8 | Servers wishing to extend this list of `format` key values, SHOULD officially register such values with the https://www.ogc.org/ogcna[OGC Naming Authority]. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/recommendations/ogc-process-description/REC_links.adoc: -------------------------------------------------------------------------------- 1 | [[rec_ogc-process-description_process-links]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/ogc-process-description/process-links 6 | label:: /rec/ogc-process-description/process-links 7 | 8 | [.component,class=part] 9 | -- 10 | Each process description SHOULD include a link (`rel="service"`) pointing to the landing page of the service offering this process. 11 | -- 12 | 13 | [.component,class=part] 14 | -- 15 | All links SHOULD include the `rel` and `type` link parameters. 16 | -- 17 | ==== 18 | -------------------------------------------------------------------------------- /core/recommendations/query-param-profile/PER_default.adoc: -------------------------------------------------------------------------------- 1 | [[per_query-param-profile_default]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/query-param-profile/default 6 | part:: The server MAY specify a default value for the query parameter "profile". 7 | ==== 8 | -------------------------------------------------------------------------------- /core/recommendations/query-param-profile/PER_profiles-of-media-type.adoc: -------------------------------------------------------------------------------- 1 | [[per_query-param-profile_profiles-of-media-type]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | identifier:: /per/query-param-profile/profiles-of-media-type 6 | part:: For any media type that can represent a resource, the server MAY support only a subset of the profiles offered for the resource. 7 | part:: The subset of supported profiles for a media type MAY be empty, too. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/recommendations/query-param-profile/REC_link-header.adoc: -------------------------------------------------------------------------------- 1 | [[rec_query-param-profile_link-header]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/query-param-profile/link-header 6 | part:: The response SHOULD include links to the selected profile(s) in the HTTP response headers. 7 | ==== 8 | -------------------------------------------------------------------------------- /core/recommendations/query-param-profile/REC_negotiation.adoc: -------------------------------------------------------------------------------- 1 | [[rec_query-param-profile_negotiation]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | identifier:: /rec/query-param-profile/negotiation 6 | part:: If the server supports one or more of the requested profile(s) for the media type and resource, these profiles SHOULD be used for the response. 7 | part:: The profile negotiation SHOULD NOT result in an error, e.g., because a requested profile cannot be provided. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_api-definition-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_api-definition-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/api-definition-op 6 | label:: /req/core/api-definition-op 7 | 8 | The URIs of all API definitions referenced from the landing page 9 | SHALL support the HTTP GET method. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_api-definition-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_api-definition-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/api-definition-success 6 | label:: /req/core/api-definition-success 7 | 8 | A successful execution of the operation to get the API definition document SHALL be reported as a 9 | response with a HTTP status code `200`. 10 | 11 | The server SHALL return an API definition document. 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_conformance-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_conformance-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/conformance-op 6 | label:: /req/core/conformance-op 7 | 8 | The server SHALL support the HTTP GET operation at the path `/conformance`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_http.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_http]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/http 6 | label:: /req/core/http 7 | 8 | The server SHALL conform to <>. 9 | 10 | If the server supports HTTPS, the server SHALL also conform to 11 | <>. 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_job-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_job]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/job 6 | label:: /req/core/job 7 | 8 | The server SHALL support the HTTP GET operation at the path `/jobs/{jobID}`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_job-result-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_job-result]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/job-result 6 | label:: /req/core/job-result 7 | 8 | For each <> with identifier `outputID`, the server SHALL support the HTTP GET operation at the path `/jobs/{jobID}/results/{outputID}`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_job-results-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_job-results]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/job-results 6 | label:: /req/core/job-results 7 | 8 | The server SHALL support the HTTP GET operation at the path `/jobs/{jobID}/results`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_job-results-param-outputs-empty.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_job-results-param-outputs-empty]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/job-results-param-outputs-empty 6 | label:: /req/core/job-results-param-outputs-empty 7 | 8 | [.component,class=part] 9 | -- 10 | If the `outputs` parameter is empty in an <>, this SHALL cause the server to respond with a HTTP status code 204 and an empty response body. 11 | -- 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_job-results-param-outputs-omit.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_job-results-param-outputs-omit]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/job-results-param-outputs-omit 6 | label:: /req/core/job-results-param-outputs-omit 7 | 8 | [.component,class=part] 9 | -- 10 | Omitting the `outputs` parameter indicates that all processing results SHALL be included in the response. 11 | -- 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_job-results-param-outputs-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_job-results-param-outputs-response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/job-results-param-outputs-response 6 | label:: /req/core/job-results-param-outputs-response 7 | 8 | [.component,class=part] 9 | -- 10 | Only the outputs with identifers specified by the optional `outputs` parameter SHALL be included in the response. 11 | -- 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_job-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_job-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/job-success 6 | label:: /req/core/job-success 7 | 8 | [.component,class=part] 9 | --- 10 | A successful execution of the operation SHALL be reported as a 11 | response with a HTTP status code 200. 12 | --- 13 | 14 | [.component,class=part] 15 | --- 16 | The content of that response SHALL be based upon the OpenAPI 17 | 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/statusInfo.yaml[statusInfo.yaml]. 18 | --- 19 | ==== 20 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_landingpage-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_landingpage-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/landingpage-op 6 | label:: /req/core/landingpage-op 7 | 8 | The server SHALL support the HTTP GET operation at the path `/`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-description-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-description]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-description 6 | label:: /req/core/process-description 7 | 8 | The server SHALL support the HTTP GET operation at the path `/processes/{processID}`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-description-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-description-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-description-success 6 | label:: /req/core/process-description-success 7 | 8 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. 9 | part:: The content of the response SHALL be a process description. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-execute-default-outputs.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-execute-default-outputs]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-execute-default-outputs 6 | label:: /req/core/process-execute-default-outputs 7 | 8 | If a process is defined as having one or more outputs and the `outputs` parameter is omitted in an <>, this SHALL be equivalent to having requested all the defined outputs in the <>. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-execute-input-inline-bbox.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-execute-input-inline-bbox]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-execute-input-inline-bbox 6 | label:: /req/core/process-execute-input-inline-bbox 7 | 8 | Servers SHALL support process input values that conform to the <> schema. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-execute-input-inline-binary.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-execute-input-inline-binary]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-execute-input-inline-binary 6 | label:: /req/core/process-execute-input-inline-binary 7 | 8 | [.component,class=conditions] 9 | -- 10 | . The process input value is specified in-line in an execute request. 11 | . The process input value is binary. 12 | -- 13 | 14 | [.component,class=part] 15 | -- 16 | The service SHALL support binary values encoded as base64-encoded strings. 17 | -- 18 | ==== 19 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-execute-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-execute-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-execute-op 6 | label:: /req/core/process-execute-op 7 | 8 | The server SHALL support the HTTP POST operation at the path `/processes/{processID}/execution`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-execute-request.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-execute-request]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-execute-request 6 | label:: /req/core/process-execute-request 7 | 8 | The content of a request the request body SHALL be based upon the OpenAPI 9 | 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/execute.yaml[execute.yaml]. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-list-limit-def.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_pl-limit-definition]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/pl-limit-definition 6 | label:: /req/core/pl-limit-definition 7 | 8 | [.component,class=part] 9 | -- 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/requirements/core/REQ_process-list-limit-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_pl-limit-response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/pl-limit-response 6 | label:: /req/core/pl-limit-response 7 | 8 | [.component,class=part] 9 | -- 10 | The response SHALL not contain more process summaries than specified by the optional `limit` parameter. 11 | -- 12 | 13 | [.component,class=part] 14 | -- 15 | If the API definition specifies a maximum value for `limit` parameter, the response SHALL not contain more process summaries than this maximum value. 16 | -- 17 | ==== 18 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-list-links.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_pl-links]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/pl-links 6 | label:: /req/core/pl-links 7 | 8 | part:: 9 | + 10 | -- 11 | A `200`-response SHALL include the following links: 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 service (relation: `alternate`). 15 | -- 16 | ==== 17 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-list-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-list]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-list 6 | label:: /req/core/process-list 7 | 8 | The server SHALL support the HTTP GET operation at the path `/processes`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_process-list-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_job-list-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/process-list-success 6 | label:: /req/core/process-list-success 7 | 8 | A successful execution of the _process_ operation SHALL be reported as a 9 | response with a HTTP status code 200. 10 | The content of that response SHALL be based upon the OpenAPI 11 | 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/processList.yaml[processList.yaml]. 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/core/REQ_test-process.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_test-process]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/core/test-process 6 | label:: /req/core/test-process 7 | 8 | If a server implementing the OGC API - Processes - Part 1: Core is tested using CITE tests, the server SHALL offer at least one testable process. Please refer to 9 | //<> 10 | Recommendation A.1 11 | for further guidance. 12 | ==== 13 | 14 | 15 | -------------------------------------------------------------------------------- /core/requirements/dismiss/REQ_job-dismiss-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_dismiss_job-dismiss-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/dismiss/job-dismiss-op 6 | label:: /req/dismiss/job-dismiss-op 7 | 8 | The server SHALL support the HTTP DELETE operation at the path `/jobs/{jobID}`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/dismiss/REQ_job-dismiss-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_dismiss_job-dismiss-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/dismiss/job-dismiss-success 6 | label:: /req/dismiss/job-dismiss-success 7 | 8 | A successful execution of the operation SHALL be reported as a 9 | response with a HTTP status code 200. 10 | The content of that response SHALL be based upon the OpenAPI 11 | 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/statusInfo.yaml[statusInfo.yaml]. The status SHALL be set to "dismissed". 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/html/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_html_content]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/html/content 6 | label:: /req/html/content 7 | 8 | Every `200`-response of the server with the media type "text/html" SHALL be a 9 | <> document that includes the following 10 | information in the HTML body: 11 | 12 | * all information identified in the schemas of the 13 | link:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject[Response Object] 14 | in the HTML ``, and 15 | * all links in HTML `` elements in the HTML ``. 16 | ==== 17 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_datetime-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_datetime-response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/datetime-response 6 | label:: /req/job-list/datetime-response 7 | 8 | If the `datetime` parameter is specified with the operation, only jobs that have a value for the `created` property (see: https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/statusInfo.yaml[statusInfo.yaml] that intersects the temporal information in the `datetime` parameter SHALL be included in the response. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_jl-limit-def.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_limit-definition]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/limit-definition 6 | label:: /req/job-list/limit-definition 7 | 8 | [.component,class=part] 9 | -- 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 | ---- 23 | -- 24 | ==== 25 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_jl-limit-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_limit-response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/limit-response 6 | label:: /req/job-list/limit-response 7 | 8 | [.component,class=part] 9 | -- 10 | The response SHALL not contain more jobs than specified by the optional `limit` parameter. 11 | -- 12 | 13 | [.component,class=part] 14 | -- 15 | If the API definition specifies a maximum value for `limit` parameter, the response SHALL not contain more jobs than this maximum value. 16 | -- 17 | ==== 18 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_links.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_links]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/links 6 | label:: /req/job-list/links 7 | 8 | [.component,class=part] 9 | -- 10 | A `200`-response SHALL include the following links: 11 | 12 | * a link to this response document (relation: `self`), 13 | * a link to the response document in every other media type supported by the service (relation: `alternate`). 14 | -- 15 | ==== 16 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_op.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_job-list-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/job-list-op 6 | label:: /req/job-list/job-list-op 7 | 8 | The server SHALL support the HTTP GET operation at the path `/jobs`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_processid-def.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_processID-definition]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/processID-definition 6 | label:: /req/job-list/processID-definition 7 | 8 | [.component,class=part] 9 | -- 10 | The operation SHALL support a parameter `processID` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 11 | 12 | [source,yaml] 13 | ---- 14 | name: processID 15 | in: query 16 | required: false 17 | schema: 18 | type: array 19 | items: 20 | type: string 21 | ---- 22 | -- 23 | ==== 24 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_processid-mandatory.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_processID-mandatory]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/processID-mandatory 6 | label:: /req/job-list/processID-mandatory 7 | 8 | part:: If the server supports this conformance class, the optional `processID` property in the https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/statusInfo.yaml[statusInfo.yaml] schema SHALL be mandatory. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_processid-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_processid-response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/processid-response 6 | label:: /req/job-list/processid-response 7 | 8 | If the `processID` parameter is specified with the operation, only jobs that have a value for the `processID` property (see: https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/statusInfo.yaml[statusInfo.yaml]) that matches one of the values specified for the `processID` parameter SHALL be included in the response. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_status-def.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_status-definition]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/status-definition 6 | label:: /req/job-list/status-definition 7 | 8 | [.component,class=part] 9 | -- 10 | The operation SHALL support a parameter `status` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 11 | 12 | [source,yaml] 13 | ---- 14 | name: status 15 | in: query 16 | required: false 17 | schema: 18 | type: array 19 | items: 20 | type: string 21 | ---- 22 | -- 23 | ==== 24 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_status-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_status-response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/status-response 6 | label:: /req/job-list/status-response 7 | 8 | If the `status` parameter is specified with the operation, only jobs that have a value for the `status` property (see: https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/statusInfo.yaml[statusInfo.yaml]) that matches one of the specified values of the `status` parameter SHALL be included in the response. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_success.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_process-list-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/job-list-success 6 | label:: /req/job-list/job-list-success 7 | 8 | A successful execution of the operation SHALL be reported as a 9 | response with a HTTP status code 200. 10 | The content of that response SHALL be based upon the OpenAPI 11 | 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/jobList.yaml[jobList.yaml]. 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_type-def.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_type-definition]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/type-definition 6 | label:: /req/job-list/type-definition 7 | 8 | [.component,class=part] 9 | -- 10 | The operation SHALL support a parameter `type` with the following characteristics (using an OpenAPI Specification 3.0 fragment): 11 | 12 | [source,yaml] 13 | ---- 14 | name: type 15 | in: query 16 | required: false 17 | schema: 18 | type: array 19 | items: 20 | type: string 21 | ---- 22 | -- 23 | ==== 24 | -------------------------------------------------------------------------------- /core/requirements/job-list/REQ_type-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-list_type-response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/job-list/type-response 6 | label:: /req/job-list/type-response 7 | 8 | part:: If the parameter is provided and its value is `process` then only jobs created by an OGC processes API SHALL be included in the response. 9 | part:: If the parameter is omitted, then all jobs SHALL be included in the response. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/kvp-execute/REQ_f-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_kvp-execute_f-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/kvp-execute/f-definition* 5 | ^|A |The operation SHALL support a response parameter `response[f]` with the following characteristics: 6 | 7 | [source,YAML] 8 | ---- 9 | name: response 10 | in: query 11 | required: false 12 | schema: 13 | type: object 14 | required: 15 | - f 16 | properties: 17 | f: 18 | type: string 19 | format: uri 20 | style: deepObject 21 | explode: true 22 | ---- 23 | |=== 24 | -------------------------------------------------------------------------------- /core/requirements/kvp-execute/REQ_f-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_kvp-execute_f-response]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/kvp-execute/f-response* 5 | ^|A |The `response[f]` parameter SHALL behave in the same way that the https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.2[HTTP `Accept` header] behaves. 6 | |=== 7 | -------------------------------------------------------------------------------- /core/requirements/kvp-execute/REQ_prefer-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_kvp-execute_prefer-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/kvp-execute/prefer-definition* 5 | ^|A |The operation SHALL support a parameter `response[prefer]` with the following characteristics: 6 | 7 | [source,YAML] 8 | ---- 9 | name: response 10 | in: query 11 | required: false 12 | schema: 13 | type: object 14 | required: 15 | - prefer 16 | properties: 17 | prefer: 18 | type: string 19 | format: uri 20 | style: deepObject 21 | explode: true 22 | ---- 23 | |=== 24 | -------------------------------------------------------------------------------- /core/requirements/kvp-execute/REQ_prefer-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_kvp-execute_prefer-response]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/kvp-execute/f-response* 5 | ^|A |The `response[prefer]` parameter SHALL behave in the same way that the https://datatracker.ietf.org/doc/html/rfc7240[HTTP `Prefer` header] behaves. 6 | |=== 7 | -------------------------------------------------------------------------------- /core/requirements/kvp-execute/REQ_process-execute-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_kvp-execute_process-execute-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/kvp-execute/process-execute-op 6 | label:: /req/kvp-execute/process-execute-op 7 | 8 | The server SHALL support the HTTP GET operation at the path `/processes/{processID}/execution`. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/requirements/oas30/REQ_exception-codes.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas30_exceptions-codes]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/oas30/exceptions-codes 6 | label:: /req/oas30/exceptions-codes 7 | 8 | For error situations that originate from the server, the API definition 9 | SHALL cover all applicable HTTP Status Codes. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/oas30/REQ_oas-definition-1.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas30_oas-definition-1]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/oas30/oas-definition-1 6 | label:: /req/oas30/oas-definition-1 7 | 8 | part:: The content of the response of the HTTP GET operation at the landing page 9 | SHALL include the following links to the API definition: 10 | 11 | * relation type `service-desc` and content type `application/vnd.oai.openapi+json;version=3.0 12 | * relation type `service-doc` and content type `text/html` 13 | ==== 14 | -------------------------------------------------------------------------------- /core/requirements/oas30/REQ_oas-definition-2.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas30_oas-definition-2]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/oas30/oas-definition-2 6 | label:: /req/oas30/oas-definition-2 7 | 8 | The JSON representation SHALL conform to the 9 | <>. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/oas30/REQ_oas-impl.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas30_oas-impl]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/oas30/oas-impl 6 | label:: /req/oas30/oas-impl 7 | 8 | The server SHALL implement all capabilities specified in the OpenAPI 9 | definition. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/oas30/REQ_security.adoc: -------------------------------------------------------------------------------- 1 | [[req_oas30_security]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/oas30/security 6 | label:: /req/oas30/security 7 | 8 | For cases, where the operations of the server are access-controlled, 9 | the security scheme(s) SHALL be documented in the OpenAPI definition. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/ogc-process-description/REQ_input-binary.adoc: -------------------------------------------------------------------------------- 1 | 2 | [[req_ogc-process-description_input-binary]] 3 | [requirement,label="/req/ogc-process-description/input-binary"] 4 | ==== 5 | A server SHALL support the following schema for binary include values: 6 | 7 | [source,yaml] 8 | ---- 9 | include::../../../openapi/schemas/processes-core/binaryInputValue.yaml[] 10 | ---- 11 | ==== -------------------------------------------------------------------------------- /core/requirements/ogc-process-description/REQ_links.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogc-process-description_links]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/ogc-process-description/links 6 | label:: /req/ogc-process-description/links 7 | 8 | [.component,class=part] 9 | -- 10 | Each process description SHALL include a link (relation: `self`) that points to itself. 11 | -- 12 | 13 | [.component,class=part] 14 | -- 15 | Each process description SHALL include one or more links (relation: `alternate`) that points to each alternative representation of this process description. 16 | -- 17 | 18 | ==== 19 | -------------------------------------------------------------------------------- /core/requirements/query-param-profile/REQ_response.adoc: -------------------------------------------------------------------------------- 1 | [[req_query-param-profile_response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/query-param-profile/response 6 | part:: The query parameter is not required, that is, omitting the parameter in a request SHALL not result in an error. 7 | part:: If the media type of the response supports web links in accordance with <>, the response SHALL include links to the selected profile(s) with the link relation type "profile". 8 | ==== 9 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_callback.adoc: -------------------------------------------------------------------------------- 1 | [[rc_callback]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/callback 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/callback 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: <> 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_core.adoc: -------------------------------------------------------------------------------- 1 | [[rc_core]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: http://www.opengis.net/spec/ogcapi_common-1/1.0/req/core[API - Common Core] 10 | inherit:: <> 11 | inherit:: <> 12 | inherit:: <> 13 | ==== 14 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_dismiss.adoc: -------------------------------------------------------------------------------- 1 | [[rc_dismiss]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/dismiss 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/dismiss 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: <> 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_html.adoc: -------------------------------------------------------------------------------- 1 | [[rc_html]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/html 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/html 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: <> 10 | inherit:: http://www.opengis.net/spec/ogcapi_common/1.0/req/html[API - Common HTML] 11 | inherit:: <> 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_job-list.adoc: -------------------------------------------------------------------------------- 1 | [[rc_job-list]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/job-list 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/job-list 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: <> 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_json.adoc: -------------------------------------------------------------------------------- 1 | [[rc_json]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/json 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/json 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: <> 10 | inherit:: <> 11 | ==== 12 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_kvp-execute.adoc: -------------------------------------------------------------------------------- 1 | [[rc_kvp-execute]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/kvp-execute 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/kvp-execute 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 10 | ==== 11 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_oas30.adoc: -------------------------------------------------------------------------------- 1 | [[rc_oas30]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/oas30 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/oas30 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: <> 10 | inherit:: http://www.opengis.net/spec/ogcapi_common-1/1.0/req/oas30[API - Common OpenAPI 3.0] 11 | inherit:: <> 12 | ==== 13 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_ogc-process-description.adoc: -------------------------------------------------------------------------------- 1 | [[rc_ogc-process-description]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/ogc-process-description 6 | label:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/ogc-process-description 7 | obligation:: requirement 8 | subject:: Web API 9 | inherit:: <> 10 | inherit:: <> 11 | ==== 12 | -------------------------------------------------------------------------------- /core/requirements/requirements_class_query-param-profile.adoc: -------------------------------------------------------------------------------- 1 | [[rc_query-param-profile]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-1/2.0/req/query-param-profile 6 | subject:: Web API 7 | requirement:: /req/query-param-profile/definition 8 | requirement:: /req/query-param-profile/response 9 | ==== 10 | -------------------------------------------------------------------------------- /core/sections/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Scope 3 | 4 | The OGC API - Processes Standard (aka "Processes API") specifies requirements of a Web API that enables the execution of computing processes and the retrieval of metadata describing their purpose and functionality. Typically, these processes combine raster, vector, coverage and/or point cloud data with well-defined algorithms to produce new raster, vector, coverage and/or point cloud information. 5 | -------------------------------------------------------------------------------- /extensions/README.md: -------------------------------------------------------------------------------- 1 | This folder contains additional parts of the OGC API Processes series. 2 | -------------------------------------------------------------------------------- /extensions/billing/README.md: -------------------------------------------------------------------------------- 1 | This directory adds a billing API to the OGC API - Processes standard. 2 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/examples/json/README.md: -------------------------------------------------------------------------------- 1 | Add JSON examples to this directory. If not used, delete the directory. 2 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/examples/xml/README.md: -------------------------------------------------------------------------------- 1 | Add XML examples to this directory. If not used, delete the directory. 2 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the text for part 3 of the OGC API Features standard. 2 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/ATS_class_cwl.adoc: -------------------------------------------------------------------------------- 1 | [[ats_cwl]] 2 | [conformance_class] 3 | .Common Workflow Language 4 | ==== 5 | [%metadata] 6 | identifier:: http://www.opengis.net/spec/ogcapi-processes-2/1.0/conf/cwl 7 | subject:: <> 8 | classification:: Target Type:Web API 9 | conformance-test:: /conf/cwl/deploy-body 10 | conformance-test:: /conf/cwl/replace-body 11 | ==== 12 | 13 | ==== Deploy operation 14 | 15 | include::cwl/deploy/ATS_body.adoc[] 16 | 17 | ==== Replace operation 18 | 19 | include::cwl/replace/ATS_body.adoc[] 20 | 21 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/ATS_class_docker.adoc: -------------------------------------------------------------------------------- 1 | [[ats_docker]] 2 | [conformance_class] 3 | .Docker 4 | ==== 5 | [%metadata] 6 | identifier:: http://www.opengis.net/spec/ogcapi-processes-2/1.0/conf/docker 7 | subject:: <> 8 | classification:: Target Type:Web API 9 | conformance-test:: /conf/docker/deploy-body 10 | conformance-test:: /conf/docker/replace-body 11 | ==== 12 | 13 | ==== Deploy operation 14 | 15 | include::docker/deploy/ATS_body.adoc[] 16 | 17 | ==== Replace operation 18 | 19 | include::docker/replace/ATS_body.adoc[] 20 | 21 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/cc/TEST001.adoc: -------------------------------------------------------------------------------- 1 | ===== Test case title 2 | 3 | (( additional discussion, if needed )) 4 | 5 | ====== a) Test Purpose: 6 | (( description )) 7 | 8 | ====== b) Pre-conditions: 9 | * (( list all preconditions )) 10 | 11 | ====== c) Test Method: 12 | * (( steps to execute and assertions to test )) 13 | 14 | ====== d) References: 15 | * <> 16 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_cwl_deploy_response]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/cwl/deploy-response 7 | target:: /req/deploy-replace-undeploy/deploy-response-success 8 | test-purpose:: Validate that the server return HTTP Status code 201 or 202 9 | test-method:: 10 | + 11 | -- 12 | 1. Validate that a document is returned and the status code is 201 or 202 13 | 14 | 2. If status code was 201, validate the document using <> 15 | -- 16 | ==== 17 | 18 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_cwl_replace_response]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/cwl/replace-response 7 | target:: /req/deploy-replace-undeploy/replace-response-success 8 | test-purpose:: Validate that the server return HTTP Status code 200 or 204 9 | test-method:: 10 | + 11 | -- 12 | 1. Validate that the status code is 200 or 204 13 | -- 14 | ==== 15 | 16 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_mutable-process.adoc: -------------------------------------------------------------------------------- 1 | [[ats_dru_mutable-process]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/dru/mutable-process 7 | test-purpose:: Ensure that a mutable process is offered by the server being tested. 8 | test-method:: 9 | + 10 | -- 11 | If a server implementing the OGC API - Processes - Part 2: Deploy, Replace, Undeploy is tested using CITE tests, the server SHALL offer at least one mutable process. 12 | -- 13 | ==== -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_ogcapppkg_deploy_response]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/ogcapppkg/deploy-response 7 | target:: /req/deploy-replace-undeploy/deploy-response-success 8 | test-purpose:: Validate that the server returns HTTP Status code 201 or 202 9 | test-method:: 10 | + 11 | -- 12 | 1. Validate that a document is returned and the status code is 201 or 202 13 | 14 | 2. If status code was 201, validate the document using <> 15 | -- 16 | ==== 17 | 18 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc: -------------------------------------------------------------------------------- 1 | [[ats_ogcapppkg_replace_response]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/ogcapppkg/replace-response 7 | target:: /req/deploy-replace-undeploy-response-success 8 | test-purpose:: Validate that the server returns HTTP Status code 200, 202 or 204 9 | test-method:: 10 | + 11 | -- 12 | 1. Validate that the status code is 200, 202 or 204. 13 | -- 14 | ==== 15 | 16 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/figures/README.md: -------------------------------------------------------------------------------- 1 | Figures go here. 2 | 3 | Each figure is a separate file with the naming convention: 4 | 5 | "PTm_FIGn.xxx" where "m" is a number with leading zeroes appropriate for the total number of parts, "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/deploy_replace_undeploy/standard/images/README.md: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. 2 | 3 | Each graphic 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. 6 | 7 | or, for other graphics not associated with figures: 8 | 9 | "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. 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/README.md: -------------------------------------------------------------------------------- 1 | OGC API - Processes - Part 2: Transactions recommendations. 2 | 3 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/PER_additional-status-codes.adoc: -------------------------------------------------------------------------------- 1 | [[per_deploy-replace-undeploy_additional-status-codes]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/deploy-replace-undeploy/additional-status-codes 6 | part:: Servers MAY support other HTTP protocol capabilities. Therefore, the server may return other status codes than those listed in <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/PER_body.adoc: -------------------------------------------------------------------------------- 1 | [[per_deploy-replace-undeploy_deploy_body]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/deploy-replace-undeploy/deploy-body 6 | part:: A server MAY support any processes description encoding in the body of a HTTP POST operation. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc: -------------------------------------------------------------------------------- 1 | [[rec_deploy-replace-undeploy_deploy_body-cwl]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/deploy-replace-undeploy/deploy-body-cwl 6 | 7 | part:: If a process can be encoded for the intended use in <>, implementations SHOULD consider supporting the <> encoding for describing the process to be deployed to the API. 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc: -------------------------------------------------------------------------------- 1 | [[rec_deploy-replace-undeploy_deploy_body-ogcapppkg]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/deploy-replace-undeploy/deploy-body-ogcapppkg 6 | 7 | part:: If a process can be represented for the intended use as an <>, implementations SHOULD consider supporting the <> encoding for describing the process to be added to the API. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/package/REC_response-cwl.adoc: -------------------------------------------------------------------------------- 1 | [[rec_deploy-replace-undeploy_package_response-cwl]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/deploy-replace-undeploy/package-response-cwl 6 | 7 | part:: If a process deployed as a <>, implementations SHOULD consider supporting the <> encoding. 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/package/REC_response-ogcapppkg.adoc: -------------------------------------------------------------------------------- 1 | [[rec_deploy-replace-undeploy_package_response-ogcapppkg]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/deploy-replace-undeploy/package-response-ogcapppkg 6 | 7 | part:: If a process was deployed as an <>, implementations SHOULD consider supporting the <> encoding. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc: -------------------------------------------------------------------------------- 1 | [[per_deploy-replace-undeploy_replace_body]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/deploy-replace-undeploy/replace-body 6 | part:: A server MAY support any processes description encoding in the body of a HTTP PUT operation. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc: -------------------------------------------------------------------------------- 1 | [[rec_deploy-replace-undeploy_replace_body-cwl]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/deploy-replace-undeploy/replace-body-cwl 6 | 7 | part:: If a process can be encoded for the intended use in <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc: -------------------------------------------------------------------------------- 1 | [[rec_deploy-replace-undeploy_reaplce_body-ogcapppkg]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/deploy-replace-undeploy/replace-body-ogcapppkg 6 | 7 | part:: If a process can be described for the intended use as an <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc: -------------------------------------------------------------------------------- 1 | [[rec_ogcapppkg_execution-unit-docker]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/ogcapppkg/execution-unit-docker 6 | part:: If the execution unit is a Docker image, implementations SHOULD consider supporting the <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc: -------------------------------------------------------------------------------- 1 | [[rec_ogcapppkg_execution-unit-cwl]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/ogcapppkg/execution-unit-cwl 6 | part:: If the execution unit is encoded in CWL, implementations SHOULD consider supporting the <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_cwl_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/cwl/body 6 | part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_cwl_deploy_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/cwl/deploy-body 6 | part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. 7 | ==== -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc: -------------------------------------------------------------------------------- 1 | [[req_cwl_w-param]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/cwl/deploy-w-param 6 | 7 | part:: If the CWL contains more than a single workflow identifier, an additional `w` query parameter MAY be used to target a specific workflow id to be deployed. If not used, the first process found SHALL be deployed. 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/cwl/package/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_cwl_package_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/cwl/package-response-body 6 | part:: A response with HTTP status code `200` SHALL include a body that contains: 7 | * the <> to use to deploy the process, in case the Content-Type used to deploy the process was `application/cwl`. 8 | * the <> to use to deploy the process, in case the Content-Type used to deploy the process was `application/ogcapppkg+json`. 9 | 10 | ==== 11 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/cwl/replace/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_cwl_replace_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/cwl/replace-body 6 | part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. 7 | ==== -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_deploy_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/deploy-body 6 | part:: The body of the POST request SHALL contain a formal description of the process to be dynamically deployed to the API. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_content-type.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_deploy_content-type]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/deploy-content-type 6 | part:: The `Content-Type` https://tools.ietf.org/html/rfc2616#section-14.17[header] SHALL be used to declare the media type of the request body containing a description of the processes to be added to the API. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_post-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_deploy_post-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/deploy-post-op 6 | part:: The server SHALL support the HTTP POST operation at the path `/processes`. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_deploy_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/deploy-response-body 6 | part:: The response SHALL include a body that contains a summary description of the added process conforms to the https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/processSummary.yaml[processSummary.yaml] schema. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-pid.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_deploy_response-pid-pid]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/deploy-response-pid 6 | part:: If the operation completes, the server SHALL assign the processes identifier (i.e. `{processID}`) specified in the processes description for the newly added processes. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/package/REQ_get-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_package_get-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/package-get-op 6 | part:: For every dynamically added process (using method: POST on path: /processes/{processID}), the server SHALL support the HTTP GET operation at the path `/processes/{processID}/package`. 7 | part:: The parameter `processID` is each `id` property in the process collection response (JSONPath: `$.processes[*].id`). 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/package/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_package_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/package-response-body 6 | part:: A response with HTTP status code `200` SHALL include a body that contains the request body used to deploy or replace the process. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/package/REQ_response-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_package_response-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/package-response-success 6 | part:: A successful access to the resource SHALL be reported as a response with a HTTP status code `200`. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_replace_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/replace-body 6 | part:: The body of a PUT request SHALL contain a formal description of the replacement process. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_content-type.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_replace_content-type]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/replace-content-type 6 | part:: As per <> (https://tools.ietf.org/html/rfc2616#section-14.17) the 'Content-Type' header SHALL be used to indicate the media type of a request body containing the description of the replacement processes. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_put-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_replace_put-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/replace-put-op 6 | part:: For every dynamically deployed processes (path '/processes/{processID}'), the server SHALL support the HTTP PUT operation. 7 | part:: The parameter 'processID' is each 'id' property in the process collection response (JSONPath: `$.processes[*].id`). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_response.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_replace_response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/replace-response 6 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code `200` or `204`. 7 | part:: If the operation is not executed immediately, but is added to a processing queue, the response SHALL have a HTTP status code `202`. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_delete-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_undeploy_delete-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/undeploy-delete-op 6 | part:: For every dynamically added process (path: `/processes/{processID}`), the server SHALL support the HTTP DELETE operation. 7 | part:: The parameter `processID` is each `id` property in the process collection response (JSONPath: `$.processes[*].id`). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_response.adoc: -------------------------------------------------------------------------------- 1 | [[req_deploy-replace-undeploy_undeploy_response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/deploy-replace-undeploy/undeploy-response 6 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code '204'. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_execution-unit.adoc: -------------------------------------------------------------------------------- 1 | [[req_docker_execution-unit]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/docker/execution-unit 6 | part:: If the execution unit is specified as a Docker image, the value of the `type` property SHALL be `docker'. 7 | 8 | part:: If the execution unit is specified as a Docker image, the value of the `image` property SHALL be a reference to the Docker image. 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_schema.adoc: -------------------------------------------------------------------------------- 1 | [[req_docker_schema]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/docker/schema 6 | part:: The `executionUnit` property of an `OGC Application Package` document SHALL be based upon the schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-dru/executionUnit.yaml[executionUnit.yaml]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcappkg_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapppkg/body 6 | part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapppkg_process-description]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapppkg/process-description 6 | part:: The value of the `process` member of the `processDescription` property SHALL be based upon the OpenAPI schema https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/process.yaml[process.yaml]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_profile-docker.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapppkg_profile-docker]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapppkg/profile-docker 6 | part:: If the execution unit is a Docker image, the value of the `deploymentProfile` property shall be `http://www.opengis.net/profiles/eoc/dockerizedApplication`. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapppkg_schema]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapppkg/schema 6 | part:: An `OGC Application Package` document SHALL be based upon the OpenAPI schema http://schemas.opengis.net/ogcapi/processes/part2/1.0/openapi/schemas/ogcapppkg.yaml[ogcapppkg.yaml]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcappkg_deploy_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapppkg/deploy-body 6 | part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/package/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapppkg_package_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapppkg/package-response-body 6 | part:: A response with HTTP status code `200` SHALL include a body that contains the <> to use to deploy the process. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/replace/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcappkg_replace_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapppkg/replace-body 6 | part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/requirements_class_cwl.adoc: -------------------------------------------------------------------------------- 1 | [[rc_cwl]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-2/1.0/req/cwl 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | inherit:: <> 10 | inherit:: <> 11 | inherit:: Common Workflow Language <> 12 | ==== 13 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/requirements_class_deploy-replace-undeploy.adoc: -------------------------------------------------------------------------------- 1 | [[rc_deploy-replace-undeploy]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-2/1.0/req/deploy-replace-undeploy 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | inherit:: <> 10 | ==== 11 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/requirements_class_docker.adoc: -------------------------------------------------------------------------------- 1 | [[rc_docker]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-2/1.0/req/docker 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | inherit:: <> 10 | inherit:: <> 11 | ==== 12 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/requirements/requirements_class_ogcapppkg.adoc: -------------------------------------------------------------------------------- 1 | [[rc_ogcapppkg]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-2/1.0/req/ogcapppkg 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | inherit:: <> 10 | ==== 11 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/sections/clause_10_oas.adoc: -------------------------------------------------------------------------------- 1 | 2 | [[oas]] 3 | == OpenAPI 3.0 4 | 5 | See <>, Clause 9. 6 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/sections/clause_11_media_types.adoc: -------------------------------------------------------------------------------- 1 | [[mediatypes]] 2 | == Media Types 3 | 4 | See <>, Clause 13. 5 | 6 | Additional JSON media types that would typically be used in a server that supports JSON are: 7 | 8 | * application/ogcapppkg+json 9 | * application/cwl+json 10 | 11 | Additional CWL media types that would typically be used in a server that supports CWL are: 12 | 13 | * application/cwl -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/sections/clause_3_references.adoc: -------------------------------------------------------------------------------- 1 | 2 | [bibliography] 3 | == References 4 | 5 | * [[[OAProc-1,OGC 18-062]]] Pross, B.: OGC 18-062, *OGC API - Processes - Part 1: Core* 6 | 7 | * [[[OAFeat-1,OGC 17-069r3]]], OGC 17-069r3, OGC API - Features - Part 1: Core 8 | 9 | * [[rfc6902,IETF RFC 6902]] Bryan, P., Nottingham, M.: IETF RFC 6902, *JavaScript Object Notation (JSON) Patch*, 2013 http://tools.ietf.org/rfc/rfc6902.txt 10 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/standard/sections/clause_5_conventions.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Conventions and background 3 | 4 | See <>, Clause 5. 5 | -------------------------------------------------------------------------------- /extensions/deploy_replace_undeploy/xml/README.md: -------------------------------------------------------------------------------- 1 | XML stuff goes here! 2 | -------------------------------------------------------------------------------- /extensions/job_management/examples/json/README.md: -------------------------------------------------------------------------------- 1 | Add JSON examples to this directory. If not used, delete the directory. 2 | -------------------------------------------------------------------------------- /extensions/job_management/examples/xml/README.md: -------------------------------------------------------------------------------- 1 | Add XML examples to this directory. If not used, delete the directory. 2 | -------------------------------------------------------------------------------- /extensions/job_management/standard/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the text for part 4 of the OGC API Processes standard. 2 | -------------------------------------------------------------------------------- /extensions/job_management/standard/abstract_tests/ATS_class_jm.adoc: -------------------------------------------------------------------------------- 1 | [[ats_jm]] 2 | [conformance_class] 3 | .Job Management 4 | ==== 5 | [%metadata] 6 | identifier:: http://www.opengis.net/spec/ogcapi-processes-4/1.0/conf/job-management 7 | subject:: <> 8 | classification:: Target Type:Web API 9 | conformance-test:: /conf/dru/deploy/post-op 10 | ==== 11 | 12 | ==== Create operation 13 | 14 | include::jm/create/ATS_post-op.adoc[] 15 | -------------------------------------------------------------------------------- /extensions/job_management/standard/abstract_tests/cc/TEST001.adoc: -------------------------------------------------------------------------------- 1 | ===== Test case title 2 | 3 | (( additional discussion, if needed )) 4 | 5 | ====== a) Test Purpose: 6 | (( description )) 7 | 8 | ====== b) Pre-conditions: 9 | * (( list all preconditions )) 10 | 11 | ====== c) Test Method: 12 | * (( steps to execute and assertions to test )) 13 | 14 | ====== d) References: 15 | * <> 16 | -------------------------------------------------------------------------------- /extensions/job_management/standard/abstract_tests/jm/create/ATS_post-op.adoc: -------------------------------------------------------------------------------- 1 | [[ats_jm_deploy_post-op]] 2 | 3 | [abstract_test] 4 | ==== 5 | [%metadata] 6 | identifier:: /conf/jm/create/post-op 7 | target:: <> 8 | test-purpose:: Validate that the server support HTTP POST operation at the path /jobs/ 9 | test-method:: 10 | + 11 | -- 12 | 1. Construct a path for the {root}/jobs path. 13 | 14 | 2. Issue an HTTP POST request for each path. 15 | 16 | 3. Validate that the response header does not contain `405 Method not allowed` 17 | -- 18 | ==== 19 | 20 | -------------------------------------------------------------------------------- /extensions/job_management/standard/figures/README.md: -------------------------------------------------------------------------------- 1 | Figures go here. 2 | 3 | Each figure is a separate file with the naming convention: 4 | 5 | "PTm_FIGn.xxx" where "m" is a number with leading zeroes appropriate for the total number of parts, "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/job_management/standard/images/README.md: -------------------------------------------------------------------------------- 1 | Image files for graphics go here. 2 | 3 | Each graphic 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. 6 | 7 | or, for other graphics not associated with figures: 8 | 9 | "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. 10 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/README.md: -------------------------------------------------------------------------------- 1 | OGC API - Processes - Part 4: Job Management recommendations. 2 | 3 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/PER_additional-status-codes.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-management_additional-status-codes]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/job-management/additional-status-codes 6 | part:: Servers MAY support other HTTP protocol capabilities. Therefore, the server may return other status codes than those listed in <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/create/PER_body.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-management_create_body]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/job-management/create-body 6 | part:: A server MAY support any encoding in the body of a HTTP POST operation. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/create/PER_content-schema.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-management_create_content-schema]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/job-management/create-content-schema 6 | part:: The `Content-Schema` header MAY be an URI to a JSON or OpenAPI 3.0 Schema document that describes the structure of the request body. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/create/REC_body-ogcapi-processes.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-management_create_body-ogcapi-processes]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/job-management/create-body-ogcapi-processes 6 | 7 | part:: If the job can be encoded as an <>, implementation SHOULD consider supporting the <> encoding. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/create/REC_body-openeo.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-management_create_body-openeo]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/job-management/create-body-openeo 6 | 7 | part:: If the job can be encoded as an <>, implementation SHOULD consider supporting the <> encoding. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/update/PER_body.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-management_update_body]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/job-management/update-body 6 | part:: A server MAY support any encoding in the body of a HTTP PATCH operation. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/update/PER_content-schema.adoc: -------------------------------------------------------------------------------- 1 | [[per_job-management_update_content-schema]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/job-management/update-content-schema 6 | part:: The `Content-Schema` header MAY be used to indicate the schema of a request body for updating a job. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/update/REC_body-ogcapi-processes.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-management_update-ogcapi-processes]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/job-management/update-body-ogcapi-processes 6 | 7 | part:: If a job can be created from an <>, implementations SHOULD consider supporting the <> encoding. 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/job-management/update/REC_body-openeo.adoc: -------------------------------------------------------------------------------- 1 | [[rec_job-management_update-openeo]] 2 | [recommendation] 3 | ==== 4 | [%metadata] 5 | label:: /rec/job-management/update-body-openeo 6 | 7 | part:: If a job can be created from an <>, implementations SHOULD consider supporting the <> encoding. 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/ogcapi-processes/create/PER_content-schema.adoc: -------------------------------------------------------------------------------- 1 | [[per_ogcapi-processes_create_content-schema]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/ogcapi-processes/create-content-schema 6 | part:: The `Content-Schema` header MAY be pointing to the OpenAPI 3.0 schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-workflows/execute-workflows.yaml[execute-workflows.yaml]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/ogcapi-processes/update/PER_content-schema.adoc: -------------------------------------------------------------------------------- 1 | [[per_ogcapi-processes_update_content-schema]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/ogcapi-processes/update-content-schema 6 | part:: The `Content-Schema` header MAY be pointing to the OpenAPI 3.0 schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-workflows/execute-workflows.yaml[execute-workflows.yaml]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/openeo/create/PER_content-schema.adoc: -------------------------------------------------------------------------------- 1 | [[per_openeo_create_content-schema]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/openeo/create-content-schema 6 | part:: The `Content-Schema` header MAY be pointing to https://raw.githubusercontent.com/Open-EO/openeo-processes/master/meta/subtype-schemas.json#/definitions/process-graph[OpenEO Process Graph schema]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/recommendations/openeo/update/PER_content-schema.adoc: -------------------------------------------------------------------------------- 1 | [[per_openeo_update_content-schema]] 2 | [permission] 3 | ==== 4 | [%metadata] 5 | label:: /per/openeo/update-content-schema 6 | part:: The `Content-Schema` header MAY be pointing to https://raw.githubusercontent.com/Open-EO/openeo-processes/master/meta/subtype-schemas.json#/definitions/process-graph[OpenEO Process Graph schema]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/create/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_create_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/create-body 6 | part:: The body of the POST request SHALL be in JSON format. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/create/REQ_content-type.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_create_content-type]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/create-content-type 6 | part:: The `Content-Type` https://tools.ietf.org/html/rfc2616#section-14.17[header] SHALL be used to declare the media type of the request. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/create/REQ_post-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_create_post-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/create-post-op 6 | part:: The server SHALL support the HTTP POST operation at the path `/jobs`. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/create/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_create_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/create-response-body 6 | part:: The response SHALL include a body that contains a status information of the created job that conforms to the https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/statusInfo.yaml[statusInfo.yaml] schema. 7 | part:: The response SHALL contain a `created` status code and the `id` property that contains the job identifier. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/create/REQ_response-jobid.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_create_response-jobid]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/create-response-jobid 6 | part:: If the operation completes, the server SHALL generate a job identifier (i.e. `{jobID}`) for the created job. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/create/REQ_response-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_create_response_success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/create-response-success 6 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code `201`. 7 | part:: A response with HTTP status code `201` SHALL include a `Location` header with the URI of the deployed processes (path: `/jobs/{jobID}`). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/definition/REQ_get-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_definition_get-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/definition-get-op 6 | part:: For every jobs (using method: POST on path: /jobs/{jobID}), the server SHALL support the HTTP GET operation at the path `/jobs/{jobID}/definition`. 7 | part:: The parameter `jobID` is each `id` property in the job-list response (JSONPath: `$.jobs[*].id`). 8 | 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/definition/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_definition_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/definition-response-body 6 | part:: A response with HTTP status code `200` SHALL include a body that contains the request body used to create or update the job. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/definition/REQ_response-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_definition_response-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/definition-response-success 6 | part:: A successful access to the resource SHALL be reported as a response with a HTTP status code `200`. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/start/REQ_post-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_start_post-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/start-post-op 6 | part:: For every created jobs (path: `/jobs/{jobID}/results`), the server SHALL support the HTTP POST operation. 7 | part:: The parameter `jobID` is each `id` property in the job list response (JSONPath: `$.jobs[*].id`). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/start/REQ_response.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_start_response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/start-response 6 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code '200'. 7 | part:: A response SHALL be a document that conforms to statusInfo.yaml. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/update/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_update_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/update-body 6 | part:: The body of a PATCH request SHALL be in JSON format. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/update/REQ_content-type.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_update_content-type]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/update-content-type 6 | part:: As per <> (https://tools.ietf.org/html/rfc2616#section-14.17) the 'Content-Type' header SHALL be used to indicate the media type of a request body. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/update/REQ_patch-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_update_patch-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/update-patch-op 6 | part:: For every created jobs (path `/jobs/{jobID}`), the server SHALL support the HTTP PATCH operation. 7 | part:: The parameter `jobID` is each `id` property in the jobs list response (JSONPath: `$.jobs[*].id`). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/job-management/update/REQ_response.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-management_update_response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/job-management/update-response 6 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code `200` or `204`. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/ogcapi-processes/REQ_schema.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapi-processes_schema]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapi-processes/schema 6 | part:: An `OGC API - Processes - Workflow - Execute Request` document SHALL be based upon the JSON schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-workflows/execute-workflows.yaml[execute-workflow.yaml]. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/ogcapi-processes/create/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapi-processes_create_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapi-processes/create-body 6 | part:: The body of the POST request SHALL be based upon the OpenAPI 3.0 schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-workflows/execute-workflows.yaml[execute-workflows.yaml] 7 | part:: The media type `application/json` SHALL be used to indicate that request body contains a processes description encoded as an <>. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/ogcapi-processes/definition/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapi-processes_definition_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapi-processes/definition-response-body 6 | part:: A response with HTTP status code `200` SHALL include a body that contains the <> to use to deploy the process. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/ogcapi-processes/update/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_ogcapi-processes_update__body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/ogcapi-processes/update-body 6 | part:: The media type `application/ogcapi-processes+json` SHALL be used to indicate that request body contains a job encoded as an <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/openeo/REQ_schema.adoc: -------------------------------------------------------------------------------- 1 | [[req_openeo_schema]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/openeo/schema 6 | part:: An `OpenEO Process Graph` document SHALL be based upon the OpenEO Process Graph JSON schema https://openeo.org/documentation/1.0/developers/api/assets/pg-schema.json. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/openeo/create/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_openeo_create_body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/openeo/create-body 6 | part:: The media type `application/json` SHALL be used to indicate that request body contains a processes description encoded as an <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/openeo/definition/REQ_response-body.adoc: -------------------------------------------------------------------------------- 1 | [[req_openeo_definition_response-body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/openeo/definition-response-body 6 | part:: A response with HTTP status code `200` SHALL include a body that contains the <> to use to deploy the process. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/openeo/update/REQ_body.adoc: -------------------------------------------------------------------------------- 1 | [[req_openeo_update__body]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/openeo/update-body 6 | part:: The media type `application/json` SHALL be used to indicate that request body contains a job encoded as an <>. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/provenance/inputs/REQ_get-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-provenance_inputs_get-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/provenance/inputs-get-op 6 | part:: For every created jobs (path: `/jobs/{jobID}/inputs`), the server SHALL support the HTTP GET operation. 7 | part:: The parameter `jobID` is each `id` property in the job list response (JSONPath: `$.jobs[*].id`). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/provenance/inputs/REQ_response.adoc: -------------------------------------------------------------------------------- 1 | [[req_provenance_inputs_response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/provenance/inputs-response 6 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code '200'. 7 | part:: The response SHALL contains a JSON document that conforms to the schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-job-management/inputs.yaml[inputs.yaml]. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/provenance/prov/REQ_get-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_job-provenance_prov_get-op]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/provenance/prov-get-op 6 | part:: For every created jobs (path: `/jobs/{jobID}/prov`), the server SHALL support the HTTP GET operation. 7 | part:: The parameter `{jobID}` is each `id` property in the job list response (JSONPath: `$.jobs[*].id`). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/provenance/prov/REQ_response.adoc: -------------------------------------------------------------------------------- 1 | [[req_provenance_prov_response]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | label:: /req/provenance/prov-response 6 | part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code '200'. 7 | part:: Per default, the response SHALL contains a JSON document that conforms to the https://www.w3.org/submissions/prov-json/schema[schema for PROV-JSON]. 8 | part:: In case content-negotiation is used, the response MAY contain other representations including PROV-O as JSON-LD, PROV-XML or PROV-N. 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/requirements_class_job-management.adoc: -------------------------------------------------------------------------------- 1 | [[rc_job-mangement]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-4/1.0/req/job-management 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | inherit:: <> 10 | ==== 11 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/requirements_class_ogcapi-processes.adoc: -------------------------------------------------------------------------------- 1 | [[rc_ogcapi-processes]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-4/1.0/req/ogcapi-processes 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | inherit:: <> 10 | inherit:: <> 11 | ==== 12 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/requirements_class_openeo.adoc: -------------------------------------------------------------------------------- 1 | [[rc_openeo]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-4/1.0/req/openeo 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/job_management/standard/requirements/requirements_class_provenance.adoc: -------------------------------------------------------------------------------- 1 | [[rc_cwl]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | label:: http://www.opengis.net/spec/ogcapi-processes-4/1.0/req/provenance 6 | obligation:: requirement 7 | subject:: Web API 8 | inherit:: <> 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/job_management/standard/sections/annex_history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | == Revision History 3 | 4 | [cols="12,18,12,12,46",options="header,unnumbered"] 5 | |=== 6 | |Date |Release |Editor | Primary clauses modified |Description 7 | |2024-08-22 |None |Gérald Fenoy |all |Boostraping the document 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/job_management/standard/sections/clause_10_oas.adoc: -------------------------------------------------------------------------------- 1 | 2 | [[oas]] 3 | == OpenAPI 3.0 4 | 5 | See <>, Clause 9. 6 | -------------------------------------------------------------------------------- /extensions/job_management/standard/sections/clause_11_media_types.adoc: -------------------------------------------------------------------------------- 1 | [[mediatypes]] 2 | == Media Types 3 | 4 | See <>, Clause 13. 5 | -------------------------------------------------------------------------------- /extensions/job_management/standard/sections/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | == Scope 2 | 3 | The OGC API - Processes - Part 4 Standard is an extension to the OGC API – Processes – Part 1: Core Standard [<>] and defines the behavior of a server that 4 | supports the ability to create jobs without implying the process execution starts right away. 5 | 6 | Specifically, the Processes Part 4 Standard specifies: 7 | 8 | * How to manage job. 9 | 10 | * How to handle provenenance information associated with a job. 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /extensions/job_management/standard/sections/clause_4_terms_and_definitions.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Terms, definitions and abbreviated terms 3 | 4 | === Terms and definitions 5 | 6 | See <>, Clause 4.1. 7 | 8 | === Abbreviated Terms 9 | 10 | See <>, Clause 4.2. -------------------------------------------------------------------------------- /extensions/job_management/standard/sections/clause_5_conventions.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Conventions and background 3 | 4 | See <>, Clause 5. 5 | -------------------------------------------------------------------------------- /extensions/job_management/xml/README.md: -------------------------------------------------------------------------------- 1 | XML stuff goes here! 2 | -------------------------------------------------------------------------------- /extensions/quotation/README.md: -------------------------------------------------------------------------------- 1 | This directory adds a quotation API to the OGC API - Processes standard. 2 | -------------------------------------------------------------------------------- /extensions/workflows/.dockerenv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/091640de383292a09cad19ac8ee61dadc4f8cd84/extensions/workflows/.dockerenv -------------------------------------------------------------------------------- /extensions/workflows/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | ogcapi-processes 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /extensions/workflows/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/workflows/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 | -------------------------------------------------------------------------------- /extensions/workflows/code/README.adoc: -------------------------------------------------------------------------------- 1 | Sample code may be stored in this folder, organized as you see fit 2 | -------------------------------------------------------------------------------- /extensions/workflows/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/workflows/figures/architecture-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/091640de383292a09cad19ac8ee61dadc4f8cd84/extensions/workflows/figures/architecture-diagram.png -------------------------------------------------------------------------------- /extensions/workflows/figures/coastal-erosion-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/091640de383292a09cad19ac8ee61dadc4f8cd84/extensions/workflows/figures/coastal-erosion-workflow.png -------------------------------------------------------------------------------- /extensions/workflows/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/workflows/requirements/collection-input/REQ_collection-input_referenced-collection.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/collection-input/referenced-collection 5 | description:: For referencing a collection as an input to a process: 6 | part:: The Implementation SHALL support execution requests containing a `"collection"` key and a corresponding URI or Relative-URI value identifying an OGC API collection as an input to a process. 7 | part:: The Implementation SHALL interpret Relative-URIs as relative to the parent process within which the containing collection object is nested. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/collection-output/REQ_collection-output_response-query-parameter.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/collection-output/response-query-parameter 5 | description:: For initiating the execution of a workflow and retrieving its output as an OGC API collection: 6 | part:: The Implementation SHALL support the `response` query parameter with `collection` and `landingPage` as possible values. 7 | ==== 8 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/cwl-workflows/REQ_cwl-workflows_adhoc-cwl-execution.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/cwl-workflows/adhoc-cwl-execution 5 | description:: For executing a workflow defined using the Common Workflow Language (CWL) definition: 6 | part:: The Implementation SHALL support ad-hoc execution of a CWL workflow definition (`Content-Type: application/cwl+json`) POSTed to `/processes/CWL/execution`. 7 | ==== 8 | 9 | TODO: Verify whether a `{processID}` for the execution end-point is relevant or not for CWL. 10 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/input-fields-modifiers/REQ_input-fields-modifiers_filtering.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/input-fields-modifiers/filtering 5 | description:: For filtering the data coming in as an input to a process: 6 | part:: The Implementation SHALL support specifying a `"filter"` key and a corresponding filter predicate as part of an input to a process. 7 | part:: The Implementation SHALL support one or more expression languages to define the filter, such as the OGC Common Query Language (CQL2). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/input-fields-modifiers/REQ_input-fields-modifiers_sorting.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/input-fields-modifiers/sorting 5 | description:: For sorting the input data to a process according to its data fields: 6 | part:: The Implementation SHALL support specifying a `"sortBy"` key and a corresponding comma-separated sequence of expressions defining the order in which to sort the data coming in as an input to a process. 7 | part:: The Implementation SHALL support one or more expression languages to define the sorting expressions, such as the OGC Common Query Language (CQL2). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/nested-processes/REQ_nested-processes_referenced-process.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/nested-processes/referenced-process 5 | description:: For referencing a process as an input to another process: 6 | part:: The Implementation SHALL support execution requests containing a `"process"` key and a corresponding URI or Relative-URI value identifying a process as an input to another process. 7 | part:: The Implementation SHALL interpret Relative-URIs as relative to the parent process within which the containing process object is nested. 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/openeo-workflows/REQ_openeo-workflows_adhoc-openeo-execution.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/openeo-workflows/adhoc-openeo-execution 5 | description:: For executing a workflow defined as an OpenEO Process Graph: 6 | part:: The Implementation SHALL support ad-hoc execution of a workflow defined using an OpenEO Process Graph POSTed to `/processes/OpenEO/execution` 7 | ==== 8 | 9 | TODO: Verify whether a `{processID}` for the execution end-point is relevant or not for OpenEO. 10 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/output-fields-modifiers/REQ_output-fields-modifiers_filtering.adoc: -------------------------------------------------------------------------------- 1 | [requirement] 2 | ==== 3 | [%metadata] 4 | identifier:: /req/output-fields-modifiers/filtering 5 | description:: For filtering the data returned as a data output from a process: 6 | part:: The Implementation SHALL support specifying a `"filter"` key and a corresponding filter predicate as part of a nested process or top-level execution request. 7 | part:: The Implementation SHALL support one or more expression languages to define the filter, such as the OGC Common Query Language (CQL2). 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/requirements_class_collection-input.adoc: -------------------------------------------------------------------------------- 1 | [[rc_collection-input]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/collection-input 6 | subject:: Collection Input 7 | inherit:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 8 | inherit:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/input-fields-modifiers (optional) 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/requirements_class_cwl-workflows.adoc: -------------------------------------------------------------------------------- 1 | [[rc_cwl-workflows]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/cwl-workflows 6 | subject:: Common Workflow Language Definitions 7 | inherit:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 8 | inherit:: Common Workflow Language <> 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/requirements_class_input-fields-modifiers.adoc: -------------------------------------------------------------------------------- 1 | [[rc_input-fields-modifiers]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/input-fields-modifiers 6 | subject:: Input Fields Modifiers 7 | inherit:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 8 | inherit:: http://www.opengis.net/spec/ogcapi-features-3/0.0/req/features-filter (optional) 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/requirements_class_openeo-workflows.adoc: -------------------------------------------------------------------------------- 1 | [[rc_openeo-workflows]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/openeo-workflows 6 | subject:: OpenEO Process Graphs Workflows 7 | inherit:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 8 | inherit:: OpenEO Process Graphs <> 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/requirements_class_output-fields-modifiers.adoc: -------------------------------------------------------------------------------- 1 | [[rc_output-fields-modifiers]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/output-fields-modifiers 6 | subject:: Output Fields Modifiers 7 | inherit:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/requirements_class_remote-collections.adoc: -------------------------------------------------------------------------------- 1 | [[rc_remote-collections]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/remote-collections 6 | subject:: Remote Collections 7 | inherit:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/collection-input 8 | inherit:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/nested-process (optional) 9 | ==== 10 | -------------------------------------------------------------------------------- /extensions/workflows/requirements/requirements_class_remote-core-processes.adoc: -------------------------------------------------------------------------------- 1 | [[rc_remote-core-processes]] 2 | [requirements_class] 3 | ==== 4 | [%metadata] 5 | identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/remote-core-processes 6 | subject:: Remote Core Processes 7 | inherit:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/nested-processes 8 | ==== 9 | -------------------------------------------------------------------------------- /extensions/workflows/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 | ==== Requirement 1 10 | [requirement,type="pseudocode",label="/req/req-class-a/req-name-1"] 11 | ===== 12 | 13 | [verification,label="/conf/conf-class-a/req-name-1"] 14 | ====== 15 | Test purpose:: Verify that... 16 | 17 | Test method:: Inspect... 18 | ====== 19 | 20 | ===== 21 | 22 | ==== Requirement 2 23 | -------------------------------------------------------------------------------- /extensions/workflows/sections/annex-history.adoc: -------------------------------------------------------------------------------- 1 | [appendix] 2 | == Revision History 3 | 4 | .Revision history 5 | [width="90%",options="header"] 6 | |=== 7 | |Date |Release |Editor | Primary clauses modified |Description 8 | |2020-10-19 |0.1 |J. St-Louis |all |initial draft 9 | |2022-10-19 |0.2 |J. St-Louis |all |reorganized into multiple conformance classes, using metanorma template, with more detailed descriptions and requirements 10 | |=== 11 | -------------------------------------------------------------------------------- /extensions/workflows/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/spec/ogcapi-processes-3/0.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 | -------------------------------------------------------------------------------- /index.adoc: -------------------------------------------------------------------------------- 1 | index.adoc 2 | 3 | nothing here 4 | -------------------------------------------------------------------------------- /metanorma.yml: -------------------------------------------------------------------------------- 1 | --- 2 | metanorma: 3 | source: 4 | files: 5 | - 18-062.adoc 6 | - extensions/workflows/21-009.adoc 7 | - extensions/deploy_replace_undeploy/standard/20-044.adoc 8 | - extensions/job_management/standard/24-051.adoc 9 | 10 | collection: 11 | organization: "OGC" 12 | name: "OGC API - Processes" 13 | -------------------------------------------------------------------------------- /ogcmetanorma.json: -------------------------------------------------------------------------------- 1 | { 2 | "0": { 3 | "OGC_doc_number": "18-062r3", 4 | "urn":"http://www.opengis.net/doc/IS/ogcapi-processes-1/2.0", 5 | "title":"OGC API - Processes - Part 1: Core", 6 | "version":"2.0.0", 7 | "path":"18-062.adoc" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /openapi/api/README.md: -------------------------------------------------------------------------------- 1 | These stand-in API resources are intended to dynamically enumerate specific types of implementation/deployment-dependent available resources in responses to `/api/*`. 2 | 3 | Alternatively, those resources could be directly enumerated in `schemas/dynamic/*` 4 | -------------------------------------------------------------------------------- /openapi/api/processes-list.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "string", 3 | "enum" : [ 4 | "RenderMap", 5 | "ElevationContours", 6 | "OSMERE" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /openapi/parameters/common-crs/crs.yaml: -------------------------------------------------------------------------------- 1 | name: crs 2 | in: query 3 | description: reproject the output to the given crs 4 | required: false 5 | style: form 6 | explode: true 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/common-crs/subset-crs.yaml: -------------------------------------------------------------------------------- 1 | name: subset-crs 2 | in: query 3 | description: crs for the specified subset 4 | required: false 5 | style: form 6 | explode: true 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/common-crs/unspecified/f-metadata.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: The format of the response. If no value is provided, the accept header is used to determine the format. Accepted values are 'json' or 'html'. 4 | required: false 5 | schema: 6 | type: string 7 | enum: 8 | - json 9 | - html 10 | style: form 11 | explode: false 12 | -------------------------------------------------------------------------------- /openapi/parameters/common-crs/unspecified/f-vectorTile.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: The format of the vector tile response (e.g. json). Accepted values are 'mvt' (Mapbox Vector Tiles) or 'json' (GeoJSON). 4 | required: false 5 | schema: 6 | type: string 7 | enum: 8 | - mvt 9 | - json 10 | style: form 11 | explode: false 12 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/collectionId-all.yaml: -------------------------------------------------------------------------------- 1 | name: collectionId 2 | in: path 3 | description: Local identifier of a collection 4 | required: true 5 | schema: 6 | $ref: '../../schemas/dynamic/all-collections.yaml' 7 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/collectionId-coverage.yaml: -------------------------------------------------------------------------------- 1 | name: collectionId 2 | in: path 3 | description: Local identifier of a coverage collection 4 | required: true 5 | allowEmptyValue: false 6 | schema: 7 | $ref: '../../schemas/dynamic/coverage-collections.yaml' 8 | style: simple 9 | explode: false 10 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/collectionId-vectorTiles.yaml: -------------------------------------------------------------------------------- 1 | name: collectionId 2 | in: path 3 | description: Local identifier of a vector tile collection 4 | required: true 5 | allowEmptyValue: false 6 | schema: 7 | $ref: '../../schemas/dynamic/vectorTiles-collections.yaml' 8 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/collections-coverage.yaml: -------------------------------------------------------------------------------- 1 | name: collections 2 | in: query 3 | style: form 4 | description: The collections that should be included in the response. The parameter value is a comma-separated list of collection identifiers. If the parameters is missing, some or all collections will be included. The collection will be rendered in the order specified, with the last one showing on top, unless the priority is overridden by styling rules. 5 | required: false 6 | explode: false 7 | schema: 8 | type: array 9 | items: 10 | $ref: '../../schemas/dynamic/coverage-collections.yaml' 11 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/collections-vectorTiles.yaml: -------------------------------------------------------------------------------- 1 | name: collections 2 | in: query 3 | style: form 4 | description: The collections that should be included in the response. The parameter value is a comma-separated list of collection identifiers. If the parameters is missing, some or all collections will be included. The collection will be rendered in the order specified, with the last one showing on top, unless the priority is overridden by styling rules. 5 | required: false 6 | explode: false 7 | schema: 8 | type: array 9 | items: 10 | $ref: '../../schemas/dynamic/vectorTiles-collections.yaml' 11 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/collections.yaml: -------------------------------------------------------------------------------- 1 | name: collections 2 | in: query 3 | style: form 4 | description: The collections that should be included in the response. The parameter value is a comma-separated list of collection identifiers. If the parameters is missing, some or all collections will be included. The collection will be rendered in the order specified, with the last one showing on top, unless the priority is overridden by styling rules. 5 | required: false 6 | explode: false 7 | schema: 8 | type: array 9 | items: 10 | $ref: '../../schemas/dynamic/all-collections.yaml' 11 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/limit-collections.yaml: -------------------------------------------------------------------------------- 1 | name: limit 2 | in: query 3 | description: >- 4 | The optional limit parameter limits the number of collections that are 5 | presented in the response document. 6 | 7 | Only items are counted that are on the first level of the collection in 8 | the response document. Nested objects contained within the explicitly 9 | requested items shall not be counted. 10 | 11 | * Minimum = 1 12 | * Maximum = 10000 13 | * Default = 10 14 | required: false 15 | schema: 16 | type: integer 17 | minimum: 1 18 | maximum: 10000 19 | default: 10 20 | style: form 21 | explode: false 22 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/subset.yaml: -------------------------------------------------------------------------------- 1 | name: subset 2 | in: query 3 | description: | 4 | Retrieve only part of the data by slicing or trimming along one or more axis 5 | For trimming: {axisAbbrev}({low}:{high}) (preserves dimensionality) 6 | An asterisk (`*`) can be used instead of {low} or {high} to indicate the minimum/maximum value. 7 | For slicing: {axisAbbrev}({value}) (reduces dimensionality) 8 | style: form 9 | explode: false 10 | required: false 11 | schema: 12 | type: array 13 | items: 14 | type: string 15 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/bbox-crs.yaml: -------------------------------------------------------------------------------- 1 | name: inputsCrs 2 | description: |- 3 | Asserts the CRS used for the coordinate values of a bounding 4 | box input parameter. The name `inputsCrs` is just a generic 5 | name to avoid ambiguity. It is ignored since explode is set 6 | to true. 7 | in: query 8 | description: |- 9 | Asserts the CRS used for the coordinate values of a bounding 10 | box input parameter. 11 | required: false 12 | schema: 13 | type: object 14 | patternProperties: 15 | "^.+[crs]$": 16 | $ref: "../../schemas/processes-core/bbox-def-crs.yaml" 17 | explode: true 18 | style: form 19 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/generic/array.yaml: -------------------------------------------------------------------------------- 1 | name: {array-parameter-name} 2 | in: query 3 | description: |- 4 | Schema for array-valued process input parameters for KVP encoded process 5 | execution requests. Complex-valued array elements or embedded array values 6 | are specified as URL-encoded strings. 7 | required: false 8 | schema: 9 | type: array 10 | items: 11 | oneOf: 12 | - type: string 13 | - type: number 14 | - type: integer 15 | - type: boolean 16 | - type: null 17 | style: form 18 | explode: false 19 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/generic/complex.yaml: -------------------------------------------------------------------------------- 1 | name: {inputID} 2 | in: query 3 | required: false 4 | schema: 5 | type: string 6 | style: form 7 | explode: false 8 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/generic/simple-boolean.yaml: -------------------------------------------------------------------------------- 1 | name: {inputID} 2 | in: query 3 | required: false 4 | schema: 5 | type: boolean 6 | style: form 7 | explode: false 8 | 9 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/generic/simple-numeric.yaml: -------------------------------------------------------------------------------- 1 | name: {inputID} 2 | in: query 3 | required: false 4 | schema: 5 | type: {numeric-type} 6 | style: form 7 | explode: false 8 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/generic/simple-string.yaml: -------------------------------------------------------------------------------- 1 | name: {inputID} 2 | in: query 3 | required: false 4 | schema: 5 | type: string 6 | style: form 7 | explode: false 8 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/jobID.yaml: -------------------------------------------------------------------------------- 1 | name: jobID 2 | in: path 3 | description: local identifier of a job 4 | required: true 5 | schema: 6 | type: string 7 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/limit.yaml: -------------------------------------------------------------------------------- 1 | name: limit 2 | in: query 3 | required: false 4 | schema: 5 | type: integer 6 | minimum: 1 7 | maximum: 1000 8 | default: 10 9 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/maxDuration.yaml: -------------------------------------------------------------------------------- 1 | name: maxDuration 2 | in: query 3 | required: false 4 | schema: 5 | type: integer 6 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/minDuration.yaml: -------------------------------------------------------------------------------- 1 | name: minDuration 2 | in: query 3 | required: false 4 | schema: 5 | type: integer 6 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/output.yaml: -------------------------------------------------------------------------------- 1 | name: output 2 | in: query 3 | required: false 4 | schema: 5 | type: object 6 | required: 7 | - output 8 | properties: 9 | output: 10 | type: string 11 | mediaType: 12 | type: string 13 | encoding: 14 | type: string 15 | schema: 16 | oneOf: 17 | - type: string 18 | format: url 19 | - type: object 20 | # style: true 21 | explode: false 22 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/outputID.yaml: -------------------------------------------------------------------------------- 1 | name: outputID 2 | in: path 3 | description: identifier of an output 4 | required: true 5 | schema: 6 | type: string 7 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/prefer-header-execution.yaml: -------------------------------------------------------------------------------- 1 | in: header 2 | description: |- 3 | Indicates client preferences, including whether the client is capable of asynchronous processing. 4 | A `respond-async` preference indicates a preference for asynchronous processing. 5 | A `wait: s` preference indicates that the client prefers to wait up to x seconds to receive a reponse synchronously before the server falls back to asynchronous processing. 6 | name: Prefer 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/prefer-header-results.yaml: -------------------------------------------------------------------------------- 1 | in: header 2 | description: |- 3 | Indicates client preferences, such as whether the client wishes a self-contained or minimal response. 4 | A `return=minimal` preference indicates that the client would prefer that links be returned to larger object to minimize the response payload. 5 | A `return=representation` indicates that the client would prefer if the server can return a self-contained response. 6 | name: Prefer 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/processID-path.yaml: -------------------------------------------------------------------------------- 1 | name: processID 2 | in: path 3 | required: true 4 | schema: 5 | $ref: '../../schemas/dynamic/processes-list.yaml' 6 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/processID-query.yaml: -------------------------------------------------------------------------------- 1 | name: processID 2 | in: query 3 | required: false 4 | schema: 5 | type: array 6 | items: 7 | type: string 8 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/profile.yaml: -------------------------------------------------------------------------------- 1 | name: profile 2 | in: query 3 | required: false 4 | schema: 5 | type: array 6 | items: 7 | type: string 8 | explode: false 9 | style: form 10 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/status.yaml: -------------------------------------------------------------------------------- 1 | name: status 2 | in: query 3 | required: false 4 | schema: 5 | type: array 6 | items: 7 | $ref: "../../schemas/processes-core/statusCode.yaml" 8 | -------------------------------------------------------------------------------- /openapi/parameters/processes-core/type.yaml: -------------------------------------------------------------------------------- 1 | name: type 2 | in: query 3 | required: false 4 | schema: 5 | type: array 6 | items: 7 | type: string 8 | enum: 9 | - process 10 | -------------------------------------------------------------------------------- /openapi/parameters/processes-dru/w-param.yaml: -------------------------------------------------------------------------------- 1 | name: w 2 | description: Point to the workflow identifier for deploying a CWL containing multiple workflow definitions 3 | in: query 4 | required: false 5 | schema: 6 | type: string 7 | -------------------------------------------------------------------------------- /openapi/parameters/processes-workflows/response.yaml: -------------------------------------------------------------------------------- 1 | name: response 2 | in: query 3 | description: |- 4 | For executing the process using the _Collection Output_ mechanism, where the client is redirected (_303_ status) to either 5 | an OGC API landing page or collection resource, from which one or more OGC API data access mechanism is available. 6 | Data access requests may trigger processing on-demand for a given area, time and resolution of interest. 7 | required: false 8 | schema: 9 | type: string 10 | enum: [ collection, landingPage ] 11 | -------------------------------------------------------------------------------- /openapi/parameters/unspecified/f-metadata.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: The format of the response. If no value is provided, the accept header is used to determine the format. Accepted values are 'json' or 'html'. 4 | required: false 5 | schema: 6 | type: string 7 | enum: 8 | - json 9 | - html 10 | style: form 11 | explode: false 12 | -------------------------------------------------------------------------------- /openapi/paths/common-core/pAPI.yaml: -------------------------------------------------------------------------------- 1 | # API definition 2 | get: 3 | tags: 4 | - API 5 | operationId: getAPI 6 | summary: Retrieve this API definition. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-core/rAPI.yaml' 12 | '406': 13 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 14 | '500': 15 | $ref: '../../responses/common-core/rServerError.yaml' 16 | -------------------------------------------------------------------------------- /openapi/paths/common-core/pConformance.yaml: -------------------------------------------------------------------------------- 1 | # Conformance 2 | get: 3 | tags: 4 | - Conformance 5 | operationId: getConformance 6 | summary: Retrieve the set of OGC API conformance classes that are supported by this service. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-core/rConformance.yaml' 12 | '406': 13 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 14 | '500': 15 | $ref: '../../responses/common-core/rServerError.yaml' 16 | -------------------------------------------------------------------------------- /openapi/paths/common-core/pLandingPage.yaml: -------------------------------------------------------------------------------- 1 | # Landing Page 2 | get: 3 | tags: 4 | - Landing Page 5 | operationId: getLandingPage 6 | summary: Retrieve the OGC API landing page for this service. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-core/rLandingPage.yaml' 12 | '406': 13 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 14 | '500': 15 | $ref: '../../responses/common-core/rServerError.yaml' 16 | -------------------------------------------------------------------------------- /openapi/paths/common-geodata/pCollection.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Data Collections 4 | operationId: getCollection 5 | summary: Retrieve the description of a collection available from this service. 6 | parameters: 7 | - $ref: '../../parameters/common-geodata/collectionId-all.yaml' 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-geodata/rCollection.yaml' 12 | -------------------------------------------------------------------------------- /openapi/paths/common-geodata/pCollectionsList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Data Collections 4 | operationId: getCollectionsList 5 | summary: Retrieve the list of geospatial data collections available from this service. 6 | parameters: 7 | - $ref: '../../parameters/common-geodata/datetime.yaml' 8 | - $ref: '../../parameters/common-geodata/bbox.yaml' 9 | - $ref: '../../parameters/common-geodata/limit-collections.yaml' 10 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 11 | responses: 12 | '200': 13 | $ref: '../../responses/common-geodata/rCollectionsList.yaml' 14 | -------------------------------------------------------------------------------- /openapi/paths/dynamic/pAllProcesses.yaml: -------------------------------------------------------------------------------- 1 | # API Processes 2 | get: 3 | tags: 4 | - API 5 | operationId: getAPIProcesses 6 | summary: Retrieve the list of processes available from this API implementation & deployment. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/dynamic/rEnumeration.yaml' 12 | '404': 13 | $ref: '../../responses/common-core/rNotFound.yaml' 14 | '406': 15 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 16 | '500': 17 | $ref: '../../responses/common-core/rServerError.yaml' 18 | -------------------------------------------------------------------------------- /openapi/paths/processes-core/pProcessList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: retrieve the list of available processes 3 | description: | 4 | The list of processes contains a summary of each process the OGC API - Processes offers, including the link to a more detailed description of the process. 5 | 6 | For more information, see [Section 7.7]https://docs.ogc.org/is/18-062r2/18-062r2.html#sc_process_list). 7 | operationId: getProcesses 8 | tags: 9 | - Processes 10 | responses: 11 | 200: 12 | $ref: "../../responses/processes-core/rProcessList.yaml" 13 | -------------------------------------------------------------------------------- /openapi/paths/processes-job-management/pJobDefinition.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: retrieve the definition of a job 3 | description: | 4 | Retrieve the definition of a job. 5 | operationId: getJobDefinition 6 | tags: 7 | - Jobs Management 8 | parameters: 9 | - $ref: "../../parameters/processes-core/jobID.yaml" 10 | responses: 11 | 200: 12 | $ref: "../../schemas/processes-workflows/execute-workflows.yaml" 13 | 404: 14 | $ref: "../../responses/common-core/rNotFound.yaml" 15 | 500: 16 | $ref: "../../responses/common-core/rServerError.yaml" 17 | -------------------------------------------------------------------------------- /openapi/paths/processes-job-management/pJobInputs.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | summary: retrieve the information about a job 3 | description: | 4 | Retrieve the information about a job. 5 | operationId: getJobInputs 6 | tags: 7 | - Jobs Management 8 | parameters: 9 | - $ref: "../../parameters/processes-core/jobID.yaml" 10 | responses: 11 | 200: 12 | $ref: "../../schemas/processes-management/rInputs.yaml" 13 | 404: 14 | $ref: "../../responses/common-core/rNotFound.yaml" 15 | 500: 16 | $ref: "../../responses/common-core/rServerError.yaml" 17 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rAPI.yaml: -------------------------------------------------------------------------------- 1 | description: The OpenAPI definition of the API. 2 | content: 3 | application/vnd.oai.openapi+json;version=3.0: 4 | schema: 5 | type: object 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rException.yaml: -------------------------------------------------------------------------------- 1 | description: An error occured. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rInvalidParameter.yaml: -------------------------------------------------------------------------------- 1 | description: A query parameter has an invalid value. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rLandingPage.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | The landing page provides links to the API definition (link relation `service-desc`, in this case path `/api`), 3 | to the Conformance declaration (path `/conformance`, link relation `http://www.opengis.net/def/rel/ogc/1.0/conformance`), and to other resources. 4 | content: 5 | application/json: 6 | schema: 7 | $ref: '../../schemas/common-core/landingPage.yaml' 8 | text/html: 9 | schema: 10 | type: string 11 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rNotAcceptable.yaml: -------------------------------------------------------------------------------- 1 | description: Content negotiation failed. For example, the `Accept` header submitted in the request did not support any of the media types supported by the server for the requested resource. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rNotAllowed.yaml: -------------------------------------------------------------------------------- 1 | description: The method is not allowed at the path. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: "../../schemas/common-core/exception.yaml" 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rNotFound.yaml: -------------------------------------------------------------------------------- 1 | description: The requested resource does not exist on the server. For example, a path parameter had an incorrect value. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rServerError.yaml: -------------------------------------------------------------------------------- 1 | description: A server error occurred. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/dynamic/rEnumeration.yaml: -------------------------------------------------------------------------------- 1 | description: An enumerated list of valid string values for API parameters. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/dynamic/enumeration.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rEmpty.yaml: -------------------------------------------------------------------------------- 1 | description: successful operation (no response body) 2 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rExecuteAsync.yaml: -------------------------------------------------------------------------------- 1 | description: Started asynchronous execution. Created job. 2 | headers: 3 | Location: 4 | schema: 5 | type: string 6 | description: URL to check the status of the execution/job. 7 | Preference-Applied: 8 | schema: 9 | type: string 10 | description: The preference applied to execute the process asynchronously (see. RFC 2740). 11 | content: 12 | application/json: 13 | schema: 14 | $ref: "../../schemas/processes-core/statusInfo.yaml" 15 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rExecuteSyncRawRef.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | Synchronous execution response. 3 | headers: 4 | Link: 5 | schema: 6 | type: string 7 | description: One or more Link headers pointing to each raw output. 8 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rJobList.yaml: -------------------------------------------------------------------------------- 1 | description: A list of jobs for this process. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: "../../schemas/processes-core/jobList.yaml" 6 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rProcessDescription.yaml: -------------------------------------------------------------------------------- 1 | description: A process description. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: "../../schemas/processes-core/process.yaml" 6 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rProcessList.yaml: -------------------------------------------------------------------------------- 1 | description: >- 2 | Information about the available processes 3 | content: 4 | application/json: 5 | schema: 6 | $ref: "../../schemas/processes-core/processList.yaml" 7 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rResults.yaml: -------------------------------------------------------------------------------- 1 | description: The processing results of a job. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: "../../schemas/processes-core/results.yaml" 6 | -------------------------------------------------------------------------------- /openapi/responses/processes-core/rStatus.yaml: -------------------------------------------------------------------------------- 1 | description: The status of a job. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: "../../schemas/processes-core/statusInfo.yaml" 6 | -------------------------------------------------------------------------------- /openapi/responses/processes-dru/rDeployProcess.yaml: -------------------------------------------------------------------------------- 1 | description: the process is deployed 2 | headers: 3 | Location: 4 | schema: 5 | type: string 6 | description: URL to fetch the processDescription of the deployed process 7 | content: 8 | application/json: 9 | schema: 10 | $ref: "../../schemas/processes-dru/staticIndicator.yaml" 11 | -------------------------------------------------------------------------------- /openapi/responses/processes-dru/rDuplicateProcess.yaml: -------------------------------------------------------------------------------- 1 | description: the processes being added is already deployed (i.e. duplicate) 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/common-core/exception.yaml 6 | text/html: 7 | schema: 8 | type: string -------------------------------------------------------------------------------- /openapi/responses/processes-dru/rImmutableProcess.yaml: -------------------------------------------------------------------------------- 1 | description: the processes is not mutable 2 | content: 3 | application/json: 4 | schema: 5 | $ref: ../../schemas/common-core/exception.yaml 6 | text/html: 7 | schema: 8 | type: string -------------------------------------------------------------------------------- /openapi/responses/processes-job-management/rInputs.yaml: -------------------------------------------------------------------------------- 1 | description: Proivenance information about a job. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/processes-job-management/inputs.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/processes-job-management/rLocked.yaml: -------------------------------------------------------------------------------- 1 | description: Job is locked. For example, the `status` of the job is currently something else than `successful`, `failed` and `created`. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/processes-job-management/rUnsupportedSchema.yaml: -------------------------------------------------------------------------------- 1 | description: Unprocessable Content. For example, the `Content-Schema` header submitted in the request did not support any of schemas supported by the server for the requested resource. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/schemas/common-core/confClasses.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - conformsTo 4 | properties: 5 | conformsTo: 6 | type: array 7 | items: 8 | type: string 9 | example: "http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/core" 10 | -------------------------------------------------------------------------------- /openapi/schemas/common-core/exception.yaml: -------------------------------------------------------------------------------- 1 | title: Exception Schema 2 | description: JSON schema for exceptions based on RFC 7807 3 | type: object 4 | required: 5 | - type 6 | properties: 7 | type: 8 | type: string 9 | title: 10 | type: string 11 | status: 12 | type: integer 13 | detail: 14 | type: string 15 | instance: 16 | type: string 17 | additionalProperties: true 18 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/collections.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - links 4 | - collections 5 | properties: 6 | links: 7 | type: array 8 | items: 9 | $ref: '../common-core/link.yaml' 10 | timeStamp: 11 | type: string 12 | format: date-time 13 | numberMatched: 14 | type: integer 15 | minimum: 0 16 | example: 1 17 | numberReturned: 18 | type: integer 19 | minimum: 0 20 | example: 1 21 | collections: 22 | type: array 23 | items: 24 | $ref: 'collectionInfo.yaml' 25 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/dataType.yaml: -------------------------------------------------------------------------------- 1 | # This list may be extended (e.g. point clouds, meshes) 2 | oneOf: 3 | - type: string 4 | - type: string 5 | enum: 6 | - map 7 | - vector 8 | - coverage 9 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/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 -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/numberReturned.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | The number of features in the feature collection. 3 | A server may omit this information in a response, if the information 4 | about the number of features is not known or difficult to compute. 5 | If the value is provided, the value shall be identical to the number 6 | of items in the "features" array. 7 | type: integer 8 | minimum: 0 9 | example: 10 -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/timeStamp.yaml: -------------------------------------------------------------------------------- 1 | description: This property indicates the time and date when the response was generated using RFC 3339 notation. 2 | type: string 3 | format: date-time 4 | example: "2017-08-17T08:05:32Z" 5 | -------------------------------------------------------------------------------- /openapi/schemas/dynamic/enumeration.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: [ type, enum ] 3 | properties: 4 | type: 5 | type: string 6 | enum: [ enum ] 7 | enum: 8 | type: array 9 | items: 10 | type: string 11 | -------------------------------------------------------------------------------- /openapi/schemas/dynamic/processes-list.yaml: -------------------------------------------------------------------------------- 1 | # This can be implemented as a dynamic enumeration type 2 | # returning all processes available on the server: 3 | $ref: ../../api/processes-list.json 4 | 5 | # Standardizing this capability would enable to generate and compile generic clients 6 | # from OpenAPI definitions which are not tied to a particular implementation. 7 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/additionalParameter.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - name 4 | - value 5 | properties: 6 | name: 7 | type: string 8 | value: 9 | type: array 10 | items: 11 | oneOf: 12 | - type: string 13 | - type: number 14 | - type: integer 15 | - type: array 16 | items: {} 17 | - type: object 18 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/bbox-def-crs.yaml: -------------------------------------------------------------------------------- 1 | anyOf: 2 | - type: string 3 | format: uri 4 | enum: 5 | - "http://www.opengis.net/def/crs/OGC/1.3/CRS84" 6 | - "http://www.opengis.net/def/crs/OGC/0/CRS84h" 7 | default: "http://www.opengis.net/def/crs/OGC/1.3/CRS84" 8 | - type: string 9 | format: uri 10 | default: "http://www.opengis.net/def/crs/OGC/1.3/CRS84" 11 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/bbox.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - bbox 4 | properties: 5 | bbox: 6 | type: array 7 | oneOf: 8 | - minItems: 4 9 | maxItems: 4 10 | - minItems: 6 11 | maxItems: 6 12 | items: 13 | type: number 14 | crs: 15 | $ref: "bbox-def-crs.yaml" -------------------------------------------------------------------------------- /openapi/schemas/processes-core/binaryInputValue.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | format: byte 3 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/descriptionType.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | title: 4 | type: string 5 | description: 6 | type: string 7 | keywords: 8 | type: array 9 | items: 10 | type: string 11 | metadata: 12 | type: array 13 | items: 14 | $ref: "metadata.yaml" 15 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/execute.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | processID: 4 | type: string 5 | format: uri 6 | inputs: 7 | additionalProperties: 8 | $ref: "input.yaml" 9 | outputs: 10 | additionalProperties: 11 | $ref: "output.yaml" 12 | subscriber: 13 | $ref: "subscriber.yaml" 14 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/format.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | mediaType: 4 | type: string 5 | encoding: 6 | type: string 7 | schema: 8 | oneOf: 9 | - type: string 10 | format: url 11 | - type: object 12 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/inlineOrRefData.yaml: -------------------------------------------------------------------------------- 1 | oneOf: 2 | - $ref: "inputValueNoObject.yaml" 3 | - $ref: "qualifiedInputValue.yaml" 4 | - $ref: "../common-core/link.yaml" 5 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/input.yaml: -------------------------------------------------------------------------------- 1 | oneOf: 2 | - $ref: "inlineOrRefData.yaml" 3 | - type: array 4 | items: 5 | $ref: "inlineOrRefData.yaml" 6 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/inputValue.yaml: -------------------------------------------------------------------------------- 1 | anyOf: 2 | - $ref: "inputValueNoObject.yaml" 3 | - type: object 4 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/inputValueNoObject.yaml: -------------------------------------------------------------------------------- 1 | anyOf: 2 | - type: string 3 | - type: number 4 | - type: integer 5 | - type: boolean 6 | - type: array 7 | items: 8 | $ref: "inputValue.yaml" 9 | - $ref: "binaryInputValue.yaml" 10 | - $ref: "bbox.yaml" 11 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/jobControlOptions.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | enum: 3 | - sync-execute 4 | - async-execute 5 | - dismiss 6 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/jobList.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - jobs 4 | - links 5 | properties: 6 | jobs: 7 | type: array 8 | items: 9 | $ref: "statusInfo.yaml" 10 | links: 11 | type: array 12 | items: 13 | $ref: "../common-core/link.yaml" 14 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/metadata.yaml: -------------------------------------------------------------------------------- 1 | oneOf: 2 | - allOf: 3 | - $ref: ../common-core/link.yaml 4 | - type: object 5 | properties: 6 | role: 7 | type: string 8 | - type: object 9 | properties: 10 | role: 11 | type: string 12 | title: 13 | type: string 14 | lang: 15 | type: string 16 | value: 17 | oneOf: 18 | - type: string 19 | - type: object 20 | 21 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/output.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | format: 4 | $ref: "format.yaml" 5 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/outputDescription.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: "descriptionType.yaml" 3 | - type: object 4 | required: 5 | - schema 6 | properties: 7 | schema: 8 | $ref: "https://json-schema.org/draft/2020-12/schema" 9 | dataClasses: 10 | type: array 11 | items: 12 | type: string 13 | format: uri 14 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/process.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: "processSummary.yaml" 3 | - type: object 4 | properties: 5 | inputs: 6 | additionalProperties: 7 | $ref: "inputDescription.yaml" 8 | outputs: 9 | additionalProperties: 10 | $ref: "outputDescription.yaml" 11 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/processList.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - processes 4 | - links 5 | properties: 6 | processes: 7 | type: array 8 | items: 9 | $ref: "processSummary.yaml" 10 | links: 11 | type: array 12 | items: 13 | $ref: "../common-core/link.yaml" 14 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/processSummary.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: "descriptionType.yaml" 3 | - type: object 4 | required: 5 | - id 6 | - version 7 | properties: 8 | id: 9 | type: string 10 | version: 11 | type: string 12 | jobControlOptions: 13 | type: array 14 | items: 15 | $ref: "jobControlOptions.yaml" 16 | links: 17 | type: array 18 | items: 19 | $ref: "../common-core/link.yaml" 20 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/qualifiedInputValue.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: "format.yaml" 3 | - type: object 4 | required: 5 | - value 6 | properties: 7 | value: 8 | $ref: "inputValue.yaml" 9 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/reference.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - "$ref" 4 | properties: 5 | "$ref": 6 | type: string 7 | format: uri-reference 8 | additionalProperties: false 9 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/results.yaml: -------------------------------------------------------------------------------- 1 | additionalProperties: 2 | $ref: "inlineOrRefData.yaml" 3 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/statusCode.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | nullable: false 3 | enum: 4 | - accepted 5 | - running 6 | - successful 7 | - failed 8 | - dismissed 9 | -------------------------------------------------------------------------------- /openapi/schemas/processes-core/subscriber.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | Optional URIs for callbacks for this job. 3 | 4 | Support for this parameter is not required and the parameter may be 5 | removed from the API definition, if conformance class **'callback'** 6 | is not listed in the conformance declaration under `/conformance`. 7 | type: object 8 | properties: 9 | successUri: 10 | type: string 11 | format: uri 12 | inProgressUri: 13 | type: string 14 | format: uri 15 | failedUri: 16 | type: string 17 | format: uri 18 | -------------------------------------------------------------------------------- /openapi/schemas/processes-dru/ogcapppkg-array.yaml: -------------------------------------------------------------------------------- 1 | type: array 2 | items: 3 | oneOf: 4 | - $ref: "executionUnit.yaml" 5 | - $ref: "../common-core/link.yaml" 6 | - $ref: "../processes-core/qualifiedInputValue.yaml" 7 | -------------------------------------------------------------------------------- /openapi/schemas/processes-dru/ogcapppkg.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - executionUnit 4 | properties: 5 | processDescription: 6 | type: object 7 | required: process 8 | properties: 9 | process: 10 | $ref: "../processes-core/process.yaml" 11 | executionUnit: 12 | oneOf: 13 | - $ref: "executionUnit.yaml" 14 | - $ref: "../common-core/link.yaml" 15 | - $ref: "../processes-core/qualifiedInputValue.yaml" 16 | - $ref: "ogcapppkg-array.yaml" 17 | -------------------------------------------------------------------------------- /openapi/schemas/processes-dru/staticIndicator.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: ../processes-core/processSummary.yaml 3 | - type: object 4 | properties: 5 | mutable: 6 | type: boolean 7 | default: true 8 | -------------------------------------------------------------------------------- /openapi/schemas/processes-job-management/headers.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | additionalProperties: 3 | type: string -------------------------------------------------------------------------------- /openapi/schemas/processes-job-management/inputs.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - inputs 4 | - outputs 5 | properties: 6 | inputs: 7 | type: object 8 | additionalProperties: 9 | $ref: "../processes-workflow/input-workflow.yaml" 10 | outputs: 11 | type: object 12 | additionalProperties: 13 | $ref: "../processes-workflow/output-workflow.yaml" 14 | links: 15 | type: array 16 | items: 17 | $ref: "../common-core/link.yaml" 18 | metadata: 19 | type: array 20 | items: 21 | $ref: "../processes-core/metadata.yaml" 22 | headers: 23 | $ref: "headers.yaml" -------------------------------------------------------------------------------- /openapi/schemas/processes-job-management/jobList.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - jobs 4 | - links 5 | properties: 6 | jobs: 7 | type: array 8 | items: 9 | $ref: "statusInfo.yaml" 10 | links: 11 | type: array 12 | items: 13 | $ref: "../common-core/link.yaml" 14 | -------------------------------------------------------------------------------- /openapi/schemas/processes-job-management/openeo-process-graph.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | additionalProperties: 3 | type: object 4 | required: 5 | - process_id 6 | - arguments 7 | properties: 8 | process_id: 9 | type: string 10 | arguments: {} 11 | -------------------------------------------------------------------------------- /openapi/schemas/processes-job-management/processes-type.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | nullable: false 3 | example: 4 | - process 5 | - openeo 6 | - wps 7 | -------------------------------------------------------------------------------- /openapi/schemas/processes-job-management/statusCode.yaml: -------------------------------------------------------------------------------- 1 | type: string 2 | nullable: false 3 | enum: 4 | - created 5 | - accepted 6 | - running 7 | - successful 8 | - failed 9 | - dismissed 10 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/execute-workflows.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - type: object 3 | properties: 4 | process: 5 | type: string 6 | format: uri-reference 7 | description: URI to the process execution end point (i.e., `.../processes/{processID}/execution`) 8 | inputs: 9 | additionalProperties: 10 | $ref: "input-workflows.yaml" 11 | outputs: 12 | additionalProperties: 13 | $ref: "output-workflows.yaml" 14 | subscriber: 15 | $ref: "../processes-core/subscriber.yaml" 16 | - $ref: "fieldsModifiers.yaml" 17 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/inlineOrRefData-workflows.yaml: -------------------------------------------------------------------------------- 1 | oneOf: 2 | - $ref: "inputValueNoObject-workflows.yaml" 3 | - $ref: "qualifiedInputValue-workflows.yaml" 4 | - $ref: "../common-core/link.yaml" 5 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/input-workflows.yaml: -------------------------------------------------------------------------------- 1 | oneOf: 2 | - $ref: "inlineOrRefData-workflows.yaml" 3 | - type: array 4 | items: 5 | $ref: "inlineOrRefData-workflows.yaml" 6 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/inputCollection.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - type: object 3 | required: 4 | - collection 5 | properties: 6 | collection: 7 | type: string 8 | format: uri-reference 9 | - $ref: fieldsModifiers.yaml 10 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/inputParameterized.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - type: object 3 | required: 4 | - $input 5 | properties: 6 | $input: 7 | type: string 8 | - $ref: fieldsModifiers.yaml 9 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/inputProcess.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - type: object 3 | required: 4 | - process 5 | - $ref: "execute-workflows.yaml" 6 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/inputValue-workflows.yaml: -------------------------------------------------------------------------------- 1 | oneOf: 2 | - $ref: "inputValueNoObject-workflows.yaml" 3 | - type: object 4 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/inputValueNoObject-workflows.yaml: -------------------------------------------------------------------------------- 1 | oneOf: 2 | - type: string 3 | - type: number 4 | - type: integer 5 | - type: boolean 6 | - type: array 7 | items: {} 8 | - $ref: "../processes-core/binaryInputValue.yaml" 9 | - $ref: "../processes-core/bbox.yaml" 10 | - $ref: "inputCollection.yaml" 11 | - $ref: "inputProcess.yaml" 12 | - $ref: "inputParameterized.yaml" 13 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/output-workflows.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | properties: 3 | format: 4 | $ref: "../processes-core/format.yaml" 5 | "$output": 6 | type: string 7 | -------------------------------------------------------------------------------- /openapi/schemas/processes-workflows/qualifiedInputValue-workflows.yaml: -------------------------------------------------------------------------------- 1 | allOf: 2 | - $ref: "../processes-core/format.yaml" 3 | - $ref: "fieldsModifiers.yaml" 4 | - type: object 5 | required: 6 | - value 7 | properties: 8 | value: 9 | $ref: "inputValue-workflows.yaml" 10 | -------------------------------------------------------------------------------- /workshops/2021/workshop-1/2021-06-OGCAPI_Processes_Workshop_Screenshots.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/091640de383292a09cad19ac8ee61dadc4f8cd84/workshops/2021/workshop-1/2021-06-OGCAPI_Processes_Workshop_Screenshots.pdf -------------------------------------------------------------------------------- /workshops/2023/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/091640de383292a09cad19ac8ee61dadc4f8cd84/workshops/2023/.DS_Store --------------------------------------------------------------------------------