From 728e0e064e7be2424da99f06e45d8ee65c4aab75 Mon Sep 17 00:00:00 2001 From: Ayesha Ayub Date: Thu, 17 Nov 2022 17:25:01 +0500 Subject: [PATCH] resolve issues raised by Vlademir in SOL002 and SOL003 v3.7.1 --- .../General_Definitions/SOL002_def.yaml | 85 ------------------- .../VNFFaultManagement.yaml | 4 +- src/SOL002/VNFIndicator/VNFIndicator.yaml | 6 +- .../VNFLCMCoordination.yaml} | 6 +- .../SOL002VNFLCMCoordination_def.yaml} | 0 .../VNFLifecycleManagement.yaml | 6 +- .../SOL002VNFLifecycleManagement_def.yaml | 15 ++-- .../VNFPerformanceManagement.yaml | 4 +- .../VNFFaultManagement.yaml | 4 +- src/SOL003/VNFIndicator/VNFIndicator.yaml | 6 +- .../VNFLifecycleManagement.yaml | 6 +- .../SOL003VNFLifecycleManagement_def.yaml | 2 +- .../VNFLifecycleOperationGranting.yaml | 2 +- .../VNFPackageManagement.yaml | 2 +- .../SOL003VNFPackageManagement_def.yaml | 1 + .../VNFPerformanceManagement.yaml | 4 +- ...edResourcesQuotaAvailableNotification.yaml | 8 +- src/responses/SOL002SOL003_resp.yaml | 79 +++++++++-------- 18 files changed, 80 insertions(+), 160 deletions(-) rename src/SOL002/{VNFLifecycleCoordination/VNFLifecycleCoordination.yaml => VNFLCMCoordination/VNFLCMCoordination.yaml} (98%) rename src/SOL002/{VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml => VNFLCMCoordination/definitions/SOL002VNFLCMCoordination_def.yaml} (100%) diff --git a/src/SOL002/General_Definitions/SOL002_def.yaml b/src/SOL002/General_Definitions/SOL002_def.yaml index 4c8d848e..54e12613 100644 --- a/src/SOL002/General_Definitions/SOL002_def.yaml +++ b/src/SOL002/General_Definitions/SOL002_def.yaml @@ -185,91 +185,6 @@ definitions: items: type: string - VimConnectionInfo: - description: > - This type represents parameters to connect to a VIM, a CISM, a CIR or a MCIOP repository for managing - the resources of a VNF instance. - - This structure is used to convey VIM-related, CISM-related, CIR-related, or MCIOP-repository-relate - dparameters over the Or-Vnfm interface. Additional parameters for a VIM, a CISM, a CIR or a MCIOP - repository may be configured into the VNFM by means outside the scope of the present document and - bound to the identifier of that VIM. - - * NOTE 1: If applicable, this attribute also provides information about the resourceGroupIds - that are accessible using a particular set of credentials. See definition of - "resourceGroupId" in clause 9.5.3.3. - * NOTE 2: Once the connectivity between VNFM and VIM, CISM, CIR or MCIOP repository is provided - through a secure connection over HTTP Secure (HTTP over SSL/TLS), and the connection might also be - established through a VPN (for example TLS-based VPN tunnelling) for site-to-site connection, the - "accessInfo" JSON data structure, and the sensitive data related information ("username"/"password" as - required properties for authentication purpose), will be transmitted as plain text through a TLS tunnel - without additional encoding/encryption before transmitting it, making the sensitive data visible to the - endpoint. The base64 encoded certificates are only used by the VNFM to verify the authenticity of the - interface endpoint of the VIM., CISM, CIR or MCIOP repository. - type: object - required: - - vimType - properties: - vimId: - description: > - The identifier of the VIM, CISM, CIR or MCIOP repository - instance. This identifier is managed by the NFVO. - Shall be present to address additional information about - the VIM, CISM, CIR or MCIOP repository if such - information has been configured into the VNFM by - means outside the scope of the present document and - should be absent otherwise. - $ref: "#/definitions/Identifier" - vimType: - description: > - Discriminator for the different types of the VIM - information. - The value of this attribute determines the structure of the - "interfaceInfo" and "accessInfo" attributes, based on the - type of the VIM., CISM, CIR or MCIOP repository. - The set of permitted values is expected to change over - time as new types or versions of VIMs become available. - The ETSI NFV registry of VIM-related information [i.3] - provides access to information about VimConnectionInfo - definitions for various VIM, CISM, CIR or MCIOP - repository types. The structure of the registry is defined in - annex C. - type: string - interfaceInfo: - description: > - Information about the interface or interfaces to the VIM, - CISM, CIR or MCIOP repository, if applicable, such as - the URI of an interface endpoint to communicate with the - VIM, CISM, CIR or MCIOP repository. The applicable - keys are dependent on the content of vimType. - Alternatively, such information may have been configured - into the VNFM and bound to the vimId. - $ref: "#/definitions/KeyValuePairs" - accessInfo: - description: > - Authentication credentials for accessing the VIM, CISM, - CIR or MCIOP repository and other access-related - information such as tenants or infrastructure resource - groups (see note 1). The applicable keys are dependent - on the content of vimType. - If the VimConnectionInfo structure is part of an HTTP - response payload body, sensitive attributes that are - children of this attributes (such as passwords) shall not - be included. - If the VimConnectionInfo structure is part of an HTTP - request payload body, sensitive attributes that are - children of this attribute (such as passwords) shall be - present if they have not been provisioned out of band. - See note 2. - $ref: "#/definitions/KeyValuePairs" - extra: - description: > - VIM, CISM, CIR or MCIOP repository type specific - additional information. The applicable structure, and - whether or not this attribute is available, is dependent on - the content of vimType. - $ref: "#/definitions/KeyValuePairs" - ResourceHandle: required: - resourceId diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 6d9c762e..9f2c532d 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -380,7 +380,7 @@ components: description: | Identifier of the alarm. This identifier can be retrieved from the "id" attribute of the "alarm" attribute in the AlarmNotification or AlarmClearedNotification. It can also be retrieved from the "id" attribute of - the applicable array element in the payload body of the response to a GET request to the "Alarms" resource. + the applicable array element in the message content of the response to a GET request to the "Alarms" resource. required: true style: simple explode: false @@ -393,7 +393,7 @@ components: description: | Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved - from the "id" attribute in the payload body of that response. + from the "id" attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index a0c6f59e..3c1c51ab 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -342,7 +342,7 @@ components: Identifier of the VNF instance to which the VNF indicators applies. NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false @@ -354,6 +354,8 @@ components: in: path description: | Identifier of the VNF indicator. + This identifier can be retrieved from the resource referenced by the message content in the response to a + POST request creating a new "Individual VNF instance" resource. required: true style: simple explode: false @@ -367,7 +369,7 @@ components: Identifier of this subscription. NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved - from the "id" attribute in the payload body of that response. + from the "id" attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLCMCoordination/VNFLCMCoordination.yaml similarity index 98% rename from src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml rename to src/SOL002/VNFLCMCoordination/VNFLCMCoordination.yaml index a2793c11..997d4031 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLCMCoordination/VNFLCMCoordination.yaml @@ -172,7 +172,7 @@ components: content: application/json: schema: - $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoordRequest + $ref: ./definitions/SOL002VNFLCMCoordination_def.yaml#/definitions/LcmCoordRequest required: true responses: @@ -221,7 +221,7 @@ components: content: application/json: schema: - $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord + $ref: ./definitions/SOL002VNFLCMCoordination_def.yaml#/definitions/LcmCoord Coordination_async.Post.202: description: | @@ -418,7 +418,7 @@ components: content: application/json: schema: - $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord + $ref: ./definitions/SOL002VNFLCMCoordination_def.yaml#/definitions/LcmCoord LcmCoord.Get.202: description: | diff --git a/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml b/src/SOL002/VNFLCMCoordination/definitions/SOL002VNFLCMCoordination_def.yaml similarity index 100% rename from src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml rename to src/SOL002/VNFLCMCoordination/definitions/SOL002VNFLCMCoordination_def.yaml diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index b13fe555..820f6bb4 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1316,7 +1316,7 @@ components: description: | Identifier of the VNF instance. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF instance resource. It can also be retrieved - from the "id" attribute in the payload body of that response. + from the "id" attribute in the message content of that response. required: true style: simple explode: false @@ -1342,7 +1342,7 @@ components: description: | Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved from - the "id" attribute in the payload body of that response. + the "id" attribute in the message content of that response. required: true style: simple explode: false @@ -1355,7 +1355,7 @@ components: description: | Identifier of the individual VNF snapshot resource. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF snapshot resource. It can also be - retrieved from the "id" attribute in the payload body of that response. + retrieved from the "id" attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index def2b906..74d4c5ed 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -5,6 +5,9 @@ definitions: VnfInstance: description: > This type represents a VNF instance. + * NOTE: Clause B.3.2 provides examples illustrating the relationship among the different run-time + data types (CP, VL and link ports) used to represent the connectivity of a VNF. + * NOTE 1: Modifying the value of this attribute shall not be performed when conflicts exist between the previous and the newly referred VNF package, i.e. when the new VNFD is changed with respect to the previous VNFD in other aspects than merely referencing @@ -1965,7 +1968,7 @@ definitions: description: > Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled, as declared in the VNFD - as part of "ScaleVnfOpConfig" defined in ETSI GS NFV-IFA 011 [7]. + as part of "ScaleVnfOpConfig" defined in ETSI GS NFV-IFA 011. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" ScaleVnfToLevelRequest: @@ -2001,7 +2004,7 @@ definitions: description: > Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled, as declared in the - VNFD as part of "ScaleVnfToLevelOpConfig" defined in ETSI GS NFV-IFA 011 [7]. + VNFD as part of "ScaleVnfToLevelOpConfig" defined in ETSI GS NFV-IFA 011. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs" CancelMode: @@ -2722,14 +2725,6 @@ definitions: description: > If present, this attribute signals the new value of the "vnfdVersion" attribute in "VnfInstance". See note 2. $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Version" - vimConnectionInfo: - description: > - If present, this attribute signals the changes to VIM connection info that were passed in the related - "ChangeCurrentVnfPkgRequest" structure. The provisions for sensitive information defined in clause - 4.4.1.6 apply. - type: object - additionalProperties: - $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/VimConnectionInfo" LcmOpOccNotificationVerbosityType: description: > diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 1a75bec0..6caf2bbc 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -495,7 +495,7 @@ components: description: | Identifier of the PM job. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new PM job resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false @@ -519,7 +519,7 @@ components: description: | Identifier of the threshold. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new threshold resource. It can also be retrieved from - the "id" attribute in the payload body of that response. + the "id" attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index e02bd04d..9b49837c 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -325,7 +325,7 @@ components: Identifier of the alarm. This identifier can be retrieved from the "id" attribute of the "alarm" attribute in the AlarmNotification or AlarmClearedNotification. It can also be retrieved from the "id" attribute of the applicable array element in - the payload body of the response to a GET request to the "Alarms" resource. + the message content of the response to a GET request to the "Alarms" resource. required: true style: simple explode: false @@ -340,7 +340,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual subscription" resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index d2b6bf64..ec13a596 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -343,7 +343,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false @@ -356,7 +356,7 @@ components: description: | Identifier of the VNF indicator. This identifier can be retrieved from the resource referenced by the - payload body in the response to a POST request creating a new "Individual VNF + message content in the response to a POST request creating a new "Individual VNF instance" resource. required: true style: simple @@ -372,7 +372,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual subscription" resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index e23d4da2..f68ba1b6 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1367,7 +1367,7 @@ components: description: | Identifier of the VNF instance for the VNF snapshot to be reverted to. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual VNF instance" resource. - It can also be retrieved from the "id" attribute in the payload body of that response. + It can also be retrieved from the "id" attribute in the message content of that response. required: true style: simple explode: false @@ -1393,7 +1393,7 @@ components: description: | Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved from - the "id" attribute in the payload body of that response. + the "id" attribute in the message content of that response. required: true style: simple explode: false @@ -1407,7 +1407,7 @@ components: Identifier of the "Individual VNF snapshot" resource. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF snapshot resource. It can also be retrieved from the "id" attribute in - the payload body of that response. + the message content of that response. required: true style: simple explode: false diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index da895222..8a46fdc4 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -674,7 +674,7 @@ definitions: This type represents a VNF instance. NOTE: Clause B.3.2 provides examples illustrating the relationship among the different run-time - information elements (CP, VL and link ports) used to represent the connectivity of a VNF. + data types (CP, VL and link ports) used to represent the connectivity of a VNF. NOTE 1: Modifying the value of this attribute shall not be performed when conflicts exist between the previous and the newly referred VNF package, i.e. when the new VNFD is changed with diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 2fafdf68..5a67a2c7 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -124,7 +124,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request granting a new VNF lifecycle operation. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 1fb1ffac..1b74f2c3 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -890,7 +890,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual subscription" resource. It can also be retrieved from - the "id" attribute in the payload body of that response. + the "id" attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml index 8402a141..d66a2c25 100644 --- a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml @@ -420,6 +420,7 @@ definitions: Shall be present if the artifact is external to the package and shall be absent otherwise. EXAMPLE: https://example.com/m%40ster.sh + See note. type: array items: $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri" diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 178506e1..7e3a5469 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -463,7 +463,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual PM job" resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false @@ -489,7 +489,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual threshold" resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 3dfb64e6..2140a548 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -194,7 +194,7 @@ components: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new "Individual subscription" resource. It can also be retrieved from the "id" - attribute in the payload body of that response. + attribute in the message content of that response. required: true style: simple explode: false @@ -303,11 +303,11 @@ components: Subscriptions.Post.422: description: | - 422 Unprocessable Entity + 422 Unprocessable Content Shall be returned upon the following error: - The content type of the payload body is - supported and the payload body of a + The content type of the message content is + supported and the message content of a request contains syntactically correct data but the data cannot be processed. The general cause for this error and its diff --git a/src/responses/SOL002SOL003_resp.yaml b/src/responses/SOL002SOL003_resp.yaml index 78d92fe9..bf0abf02 100644 --- a/src/responses/SOL002SOL003_resp.yaml +++ b/src/responses/SOL002SOL003_resp.yaml @@ -77,14 +77,15 @@ components: "ProblemDetails" structure to be returned. If the request is malformed or syntactically incorrect (e.g. if the request URI contains incorrect - query parameters or the payload body contains a syntactically incorrect data structure), - the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided, - and should include in the "detail" attribute more information about the source of the problem. + query parameters or the message content contains a syntactically incorrect data structure), + the API producer shall respond with this response code. More details are defined in IETF RFC 9110. + The "ProblemDetails" structure shall be provided, and should include in the "detail" attribute more + information about the source of the problem. If the response to a GET request which queries a container resource would be so big that the performance of the API producer is adversely affected, and the API producer does not support paging for the affected resource, - it shall respond with this response code. The "ProblemDetails" structure shall be provided, and should include - in the "detail" attribute more information about the source of the problem. + it shall respond with this response code. Clause 5.4.2.2 specifies provisions for the "ProblemDetails" structure + provided in the response body. If there is an application error related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), the API producer shall respond with this response code. @@ -92,11 +93,11 @@ components: about the source of the problem. If the request contains a malformed access token, the API producer should respond with this response. - The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750 - and IETF RFC 7235. The ProblemDetails structure may be provided. + The details of the error shall be returned in the WWW Authenticate HTTP header, as defined in IETF RFC 6750. The + ProblemDetails structure may be provided. The use of this HTTP error response code described above is applicable to the use of the OAuth 2.0 - for the authorization of API requests and notifications, as defined in clauses 4.5.3.3 and 4.5.3.4. + for the authorization of API requests and notifications, as defined in clauses 8.3.3 and 8.3.4. headers: Content-Type: description: The MIME type of the body of the response. @@ -132,7 +133,7 @@ components: If the request contains no access token even though one is required, or if the request contains an authorization token that is invalid (e.g. expired or revoked), the API producer should respond with this response. The details of the error shall be returned in the WWW-Authenticate HTTP header, as defined in IETF RFC 6750 - and IETF RFC 7235. The ProblemDetails structure may be provided. + and IETF RFC 9110. The ProblemDetails structure may be provided. headers: Content-Type: description: The MIME type of the body of the response. @@ -166,9 +167,9 @@ components: 403 FORBIDDEN If the API consumer is not allowed to perform a particular request to a particular resource, - the API producer shall respond with this response code. The "ProblemDetails" structure shall be provided. - It should include in the "detail" attribute information about the source of the problem, - and may indicate how to solve it. + the API producer shall respond with this response code. More details are defined in IETF RFC 9110. + The "ProblemDetails" structure shall be provided. It should include in the "detail" attribute information + about the source of the problem, and may indicate how to solve it. headers: Content-Type: description: The MIME type of the body of the response. @@ -203,13 +204,14 @@ components: If the API producer did not find a current representation for the resource addressed by the URI passed in the request or is not willing to disclose that one exists, it shall respond with this response code. - The "ProblemDetails" structure may be provided, including in the "detail" attribute information about - the source of the problem, e.g. a wrong resource URI variable. + A typical reason for this error can e.g. be that resource URI variables were set wrongly. More details + are defined in IETF RFC 9110. The "ProblemDetails" structure may be provided, including in the "detail" + attribute information about the source of the problem, e.g. a wrong resource URI variable. This response code is not appropriate in case the resource addressed by the URI is a container resource which is designed to contain child resources, but does not contain any child resource at the time the request is received. For a GET request to an existing empty container resource, a typical response - contains a 200 OK response code and a payload body with an empty array. + contains a 200 OK response code and a message content with an empty array. headers: Content-Type: description: The MIME type of the body of the response. @@ -243,7 +245,7 @@ components: 405 METHOD NOT ALLOWED If a particular HTTP method is not supported for a particular resource, the API producer shall respond - with this response code. The "ProblemDetails" structure may be omitted. + with this response code. The "ProblemDetails" structure may be provided. headers: Content-Type: description: The MIME type of the body of the response. @@ -278,7 +280,7 @@ components: If the "Accept" HTTP header does not contain at least one name of a content type that is acceptable to the API producer, the API producer shall respond with this - response code. The "ProblemDetails" structure may be omitted. + response code. The "ProblemDetails" structure may be provided. headers: Content-Type: description: The MIME type of the body of the response. @@ -378,9 +380,9 @@ components: description: > 413 PAYLOAD TOO LARGE - If the payload body of a request is larger than the amount of data the API producer is willing or able to process, - it shall respond with this response code, following the provisions in IETF RFC 7231 for the use - of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be omitted. + If the message content of a request is larger than the amount of data the API producer is willing or able to process, + it shall respond with this response code, following the provisions in IETF RFC 9110 for the use + of the "Retry-After" HTTP header and for closing the connection. The "ProblemDetails" structure may be provided. headers: Content-Type: description: The MIME type of the body of the response. @@ -415,7 +417,8 @@ components: If the request URI of a request is longer than the API producer is willing or able to process, it shall respond with this response code. This condition can e.g. be caused by passing long queries - in the request URI of a GET request. The "ProblemDetails" structure may be omitted. + in the request URI of a GET request. More details are defined in IETF RFC 9110. The "ProblemDetails" + structure may be provided. headers: Content-Type: description: The MIME type of the body of the response. @@ -477,12 +480,13 @@ components: 422: description: > - 422 UNPROCESSABLE ENTITY + 422 UNPROCESSABLE Content - If the payload body of a request contains syntactically correct data (e.g. well-formed JSON) but the data - cannot be processed (e.g. because it fails validation against a schema), the API producer shall respond - with this response code. The "ProblemDetails" structure shall be provided, and should include in the "detail" - attribute more information about the source of the problem. + If the content type of the message content is supported and the message content of a request contains + syntactically correct data (e.g. well-formed JSON) but the data cannot be processed (e.g. because it fails + validation against a schema), the API producer shall respond with this response code. More details are + defined in IETF RFC 9110. The "ProblemDetails" structure shall be provided, and should include in the + "detail" attribute more information about the source of the problem. This error response code is only applicable for methods that have a request body. headers: @@ -519,9 +523,9 @@ components: If the API consumer has sent too many requests in a defined period of time and the API producer is able to detect that condition ("rate limiting"), the API producer shall respond with this response code, - following the provisions in IETF RFC 6585 [17] for the use of the "Retry-After" HTTP header. - The "ProblemDetails" structure shall be provided and shall include in the "detail" attribute more information - about the source of the problem. + following the provisions in IETF RFC 6585 for the use of the "Retry-After" HTTP header. The "ProblemDetails" + structure shall be provided and shall include in the "detail" attribute more information about the source + of the problem. The period of time and allowed number of requests are configured within the API producer by means outside the scope of the present document. @@ -557,9 +561,11 @@ components: description: > 500 INTERNAL SERVER ERROR - If there is an application error not related to the client's input that cannot be easily mapped to any other - HTTP response code ("catch all error"), the API producer shall respond with this response code. - The "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information + If the Server is unable to process the request, and retrying the same request later might eventually + succeed, the server shall respond with this response code. Further, if there is an application error + not related to the client's input that cannot be easily mapped to any other HTTP response code ("catch all error"), + the API producer shall respond with this response code. More details are defined in IETF RFC 9110. The + "ProblemDetails" structure shall be provided, and shall include in the "detail" attribute more information about the source of the problem. headers: Content-Type: @@ -594,9 +600,9 @@ components: 503 SERVICE UNAVAILABLE If the API producer encounters an internal overload situation of itself or of a system it relies on, - it should respond with this response code, following the provisions in IETF RFC 7231 for the use of - the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" - structure may be omitted. + it should respond with this response code, following the provisions in IETF RFC 9110 for the use of + the "Retry-After" HTTP header and for the alternative to refuse the connection. The "ProblemDetails" + structure may be provided. headers: Content-Type: description: The MIME type of the body of the response. @@ -631,7 +637,8 @@ components: If the API producer encounters a timeout while waiting for a response from an upstream server (i.e. a server that the API producer communicates with when fulfilling a request), it should respond - with this response code. + with this response code. More details are defined in IETF RFC 9110. The "ProblemDetails" structure + may be provided. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab