Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions core/sections/clause_3_references.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

* [[[rfc3339]]] Internet Engineering Task Force (IETF). RFC 3339: **Date and Time on the Internet: Timestamps** [online]. Edited by G. Klyne, C. Newman. 2002 [viewed 2020-03-16]. Available at https://www.rfc-editor.org/rfc/rfc3339.html

* [[[rfc5829]]] Internet Engineering Task Force (IETF). RFC 5829: **Link Relation Types for Simple Version Navigation between Web Resources** [online]. Edited by A. Brown, G. Clemm, J. Reschke. 2010 [viewed 2026-04-14]. Available at https://www.rfc-editor.org/rfc/rfc5829.html

* [[[rfc8288]]] Internet Engineering Task Force (IETF). RFC 8288: **Web Linking** [online]. Edited by M. Nottingham. 2017 [viewed 2020-03-16]. Available at https://www.rfc-editor.org/rfc/rfc8288.html

* [[[rfc9110]]] Internet Engineering Task Force (IETF). RFC 9110: **HTTP Semantics** [online]. Edited by R. Fielding, J. Reschke, Y. Lafon, M. Nottingham. 2022 [viewed 2023-04-10]. Available at https://www.rfc-editor.org/rfc/rfc9110.html
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[[per_deploy-replace-undeploy_replace_response-insert]]
[permission]
====
[%metadata]
identifier:: /per/deploy-replace-undeploy/replace-response-insert
Copy link
Copy Markdown
Member

@jerstlouis jerstlouis Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is identified as a permission (firt part uses MAY) but includes a recommendation (SHOULD) inside for second part.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there actually something against that term? How to indicate something optional, but if you do, it should be done that way ideally? "SHOULD" is still optional / not prescriptive (unlike SHALL).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise transform it as a recommendation?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fmigneault Usually we try to strictly use SHALL in requirements, MAY in permission, and SHOULD in recommendations. One way I've done it e.g. in the Coverages issue we've been working on together lately is by having a separate recommendation in the context of (immediately following) the permission.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One issue is that I don't find it too appropriate to make it a recommendation and use SHOULD for the first part, since supporting "PUT as insert" is really an extra to the more classical HTTP 200 of inplace replacement.


[.component,class=part]
--
A server MAY support immediate creation of the initial process definition when none exists using the HTTP PUT operation
in an "upsert" fashion (i.e.: update or insert as applicable). In this case, the process creation SHOULD behave as if it
was directly submitted for deployment as per <<req_deploy-replace-undeploy_deploy_post-op,/req/deploy-replace-undeploy/deploy-post-op>>.
--

[.component,class=part]
--
If the operation SHOULD reflect the appropriate HTTP status code as per the requirement
Comment thread
fmigneault marked this conversation as resolved.
Outdated
<<req_deploy-replace-undeploy_replace_response,/req/deploy-replace-undeploy/replace-response>>.
--

====
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
[[rec_deploy-replace-undeploy_replace_response-links]]
[recommendation]
====
[%metadata]
identifier:: /per/deploy-replace-undeploy/replace-response-links
Comment thread
fmigneault marked this conversation as resolved.
Outdated

[.component,class=part]
--
If a server supports multiple versions of a process definition as per
<<req_deploy-replace-undeploy_replace_response,/req/deploy-replace-undeploy/replace-response>>,
its process description `links` SHOULD consider providing references to these versions for improved retrieval.
Such links SHOULD use standard
<<rfc5829,RFC 5829 Link Relation Types for Simple Version Navigation between Web Resources>>.
--

[.component,class=part]
--
If the `latest-version` link relation type is provided, it SHOULD point to the latest version of
the process definition or an equivalent description corresponding to the `/processes/{processID}` endpoint
after resource resolution.
--

====
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ identifier:: /req/deploy-replace-undeploy/replace-content-type

[.component,class=part]
--
As per <<rfc2616,HTTP 1.1>> (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.
As per <<rfc2616,HTTP 1.1>> (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.
--

====
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ identifier:: /req/deploy-replace-undeploy/replace-put-op

[.component,class=part]
--
For every dynamically deployed processes (path '/processes/{processID}'), the server SHALL support the HTTP PUT operation.
For every dynamically deployed processes (path `/processes/{processID}`), the server SHALL support the HTTP PUT operation.
--

[.component,class=part]
--
The parameter 'processID' is each 'id' property in the process collection response (JSONPath: `$.processes[*].id`).
The parameter `{processID}` is each `id` property in the process collection response (JSONPath: `$.processes[*].id`).
--

====
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[[req_deploy-replace-undeploy_replace_response-body]]
[requirement]
====
[%metadata]
identifier:: /req/deploy-replace-undeploy/replace-response-body

[.component,class=part]
--
If the replacement response employs HTTP status code `200`, `201` or `202` accordingly to
requirement <<req_deploy-replace-undeploy_replace_response,/req/deploy-replace-undeploy/replace-response>>,
the response body SHALL conform to the summary description of the process
as per https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/processSummary.yaml[processSummary.yaml] schema.
--

[.component,class=part]
--
If the replacement response employs HTTP status code `204`, the response body SHALL be empty
as per standard HTTP specification.
--

====
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ identifier:: /req/deploy-replace-undeploy/replace-response
A successful execution of the operation SHALL be reported as a response with a HTTP status code `200` or `204`.
--

[.component,class=part]
--
If the operation results in the immediate creation of a distinct process definition (rather than a literal replacement)
which can be distinguished from the originally referenced `{processID}` by some versioning mechanism, the response SHALL
have a HTTP status code `201` to hint clients about this separate resource.
The `{processID}` SHALL then reference the newly created process definition used as replacement.
--

[.component,class=part]
--
If the operation is not executed immediately, but is added to a processing queue, the response SHALL have a HTTP status code `202`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ requirement:: /req/deploy-replace-undeploy/replace-body
requirement:: /req/deploy-replace-undeploy/replace-content-type
requirement:: /req/deploy-replace-undeploy/replace-put-op
requirement:: /req/deploy-replace-undeploy/replace-response
requirement:: /req/deploy-replace-undeploy/replace-response-body
requirement:: /req/deploy-replace-undeploy/static-indicator
requirement:: /req/deploy-replace-undeploy/undeploy-delete-op
requirement:: /req/deploy-replace-undeploy/undeploy-response
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,6 @@
|2024-04-26 |None |Gérald Fenoy |all |Add section for retrieving formal description of a mutable process
|2026-04-08 |None |Francis Charette-Migneault |all |Update format rendering of code snippets
|2026-04-13 |None |Francis Charette-Migneault |all |Fix req/rec/per definitions format and references.
|2026-04-14 |None |Francis Charette-Migneault |Replace |Add more explicit details about replacement conditions and body expectations.
|2026-04-14 |None |Francis Charette-Migneault |Replace |Add versioning link RFC 5829 recommendation if employed for process replacement.
|===
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ put:
#$ref: "https://w3id.org/cwl/v1.2/cwl-json-schema.yaml"
$ref: "../../schemas/cwl/cwl.yaml"
responses:
200:
$ref: "../../responses/processes-dru/rProcessSummary.yaml"
201:
$ref: "../../responses/processes-dru/rProcessSummary.yaml"
202:
$ref: "../../responses/processes-dru/rProcessSummary.yaml"
204:
$ref: "../../responses/processes-core/rEmpty.yaml"
400:
Expand Down