From e3e9da146b4876212b591b5752f08bc8ffff0fbb Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Wed, 17 Jul 2024 12:26:43 +0200 Subject: [PATCH 1/8] Update event-subscription-template.yaml --- .../event-subscription-template.yaml | 228 ++++++++++++------ 1 file changed, 150 insertions(+), 78 deletions(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index 7269870..cff2f6a 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -111,17 +111,17 @@ paths: schema: $ref: "#/components/schemas/SubscriptionAsync" "400": - $ref: "#/components/responses/CreateSubscriptionBadRequest400" + $ref: "#/components/responses/Generic400" "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/CreateSubscription403" + $ref: "#/components/responses/Generic403" "409": $ref: "#/components/responses/Generic409" "415": $ref: "#/components/responses/Generic415" "422": - $ref: "#/components/responses/CreateSubscription422" + $ref: "#/components/responses/Generic422" "429": $ref: "#/components/responses/Generic429" "500": @@ -195,6 +195,8 @@ paths: $ref: "#/components/responses/Generic404" "500": $ref: "#/components/responses/Generic500" + "501": + $ref: "#/components/responses/Generic501" "503": $ref: "#/components/responses/Generic503" delete: @@ -797,7 +799,7 @@ components: required: - subject responses: - CreateSubscriptionBadRequest400: + Generic400: description: Problem with the client request headers: x-correlator: @@ -807,39 +809,33 @@ components: schema: $ref: "#/components/schemas/ErrorInfo" examples: - InvalidArgument: + GENERIC_400_INVALID_ARGUMENT: + description: Invalid Argument. Generic Syntax Exception value: status: 400 - code: "INVALID_ARGUMENT" - message: "Client specified an invalid argument, request body or query param" - InvalidProtocol: + code: INVALID_ARGUMENT + message: Client specified an invalid argument, request body or query param. + GENERIC_400_OUT_OF_RANGE: + description: Out of Range. Specific Syntax Exception used when a given field has a pre-defined range or a invalid filter criteria combination is requested + value: + status: 400 + code: OUT_OF_RANGE + message: Client specified an invalid range. + GENERIC_400_INVALID_PROTOCOL: value: status: 400 code: "INVALID_PROTOCOL" message: "Only HTTP is supported" - InvalidCredential: + GENERIC_400_INVALID_CREDENTIAL: value: status: 400 code: "INVALID_CREDENTIAL" message: "Only Access token is supported" - InvalidToken: + GENERIC_400_INVALID_TOKEN: value: status: 400 code: "INVALID_TOKEN" message: "Only bearer token is supported" - Generic400: - description: Problem with the client request - headers: - x-correlator: - $ref: "#/components/headers/x-correlator" - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorInfo" - example: - status: 400 - code: "INVALID_ARGUMENT" - message: "Client specified an invalid argument, request body or query param" Generic401: description: Authentication problem with the client request headers: @@ -849,12 +845,20 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 401 - code: "UNAUTHENTICATED" - message: "Request not authenticated due to missing, invalid, or expired credentials" - - CreateSubscription403: + examples: + GENERIC_401_UNAUTHENTICATED: + description: Request cannot be authenticated + value: + status: 401 + code: UNAUTHENTICATED + message: Request not authenticated due to missing, invalid, or expired credentials. + GENERIC_401_AUTHENTICATION_REQUIRED: + description: New authentication is needed, authentication is no longer valid + value: + status: 401 + code: AUTHENTICATION_REQUIRED + message: New authentication is required. + Generic403: description: Client does not have sufficient permission headers: x-correlator: @@ -864,29 +868,18 @@ components: schema: $ref: "#/components/schemas/ErrorInfo" examples: - PermissionDenied: + GENERIC_403_PERMISSION_DENIED: + description: Permission denied. OAuth2 token access does not have the required scope or when the user fails operational security value: status: 403 - code: "PERMISSION_DENIED" - message: "Client does not have sufficient permissions to perform this action" - TokenMismatch: + code: PERMISSION_DENIED + message: Client does not have sufficient permissions to perform this action. + GENERIC_403_INVALID_TOKEN_CONTEXT: + description: Reflect some inconsistency between information in some field of the API and the related OAuth2 Token value: status: 403 - code: "SUBSCRIPTION_MISMATCH" - message: "Inconsistent access token for requested events subscription" - Generic403: - description: Client does not have sufficient permission - headers: - x-correlator: - $ref: "#/components/headers/x-correlator" - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorInfo" - example: - status: 403 - code: "PERMISSION_DENIED" - message: "Client does not have sufficient permissions to perform this action" + code: INVALID_TOKEN_CONTEXT + message: "{{field}} is not consistent with access token." Generic404: description: Resource Not Found headers: @@ -896,10 +889,25 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 404 - code: NOT_FOUND - message: "The specified resource is not found" + examples: + GENERIC_404_NOT_FOUND: + description: Resource is not found + value: + status: 404 + code: NOT_FOUND + message: The specified resource is not found. + GENERIC_404_DEVICE_NOT_FOUND: + description: Device identifier not found + value: + status: 404 + code: DEVICE_NOT_FOUND + message: Device identifier not found. + GENERIC_404_{{SPECIFIC_CODE}}: + description: Specific situation to highlight the resource/concept not found + value: + status: 404 + code: { { SPECIFIC_CODE } } + message: { { SPECIFIC_CODE_MESSAGE } } Generic409: description: Conflict headers: @@ -909,10 +917,25 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 409 - code: CONFLICT - message: "The specified resource is in a conflict" + examples: + GENERIC_409_ABORTED: + description: Concurreny of processes of the same nature/scope + value: + status: 409 + code: ABORTED + message: Concurrency conflict. + GENERIC_409_ALREADY_EXISTS: + description: Trying to create an existing resource + value: + status: 409 + code: ALREADY_EXISTS + message: The resource that a client tried to create already exists. + GENERIC_409_CONFLICT: + description: Duplication of an existing resource + value: + status: 409 + code: CONFLICT + message: A specified resource duplicate entry found. Generic410: description: Gone headers: @@ -922,10 +945,13 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 410 - code: GONE - message: "The specified resource is no longer available at the requested address" + examples: + GENERIC_410_GONE: + description: Use in notifications flow to allow API Consumer to indicate that its callback is no longer available + value: + status: 410 + code: GONE + message: Access to the target resource is no longer available. Generic415: description: Unsupported Media Type headers: @@ -935,11 +961,14 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 415 - code: UNSUPPORTED_MEDIA_TYPE - message: "The specified media type is not supported" - CreateSubscription422: + examples: + GENERIC_415_UNSUPPORTED_MEDIA_TYPE: + description: Payload format of the request is in an unsupported format by the Server. Should not happen + value: + status: 415 + code: UNSUPPORTED_MEDIA_TYPE + message: The server refuses to accept the request because the payload format is in an unsupported format + Generic422: description: Unprocessable Entity headers: x-correlator: @@ -949,11 +978,23 @@ components: schema: $ref: "#/components/schemas/ErrorInfo" examples: - PermissionDenied: + MULTIEVENT_SUBSCRIPTION_NOT_SUPPORTED: value: status: 422 code: "MULTIEVENT_SUBSCRIPTION_NOT_SUPPORTED" message: "Multi event types subscription not managed" + GENERIC_422_DEVICE_IDENTIFIERS_MISMATCH: + description: Inconsistency between device identifiers not pointing to the same device + value: + status: 422 + code: DEVICE_IDENTIFIERS_MISMATCH + message: Provided device identifiers are not consistent. + GENERIC_422_DEVICE_NOT_APPLICABLE: + description: Service is not available for the provided device + value: + status: 422 + code: DEVICE_NOT_APPLICABLE + message: The service is not available for the provided device. Generic429: description: Too Many Requests headers: @@ -963,10 +1004,19 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 429 - code: TOO_MANY_REQUESTS - message: "Endpoint does not support as many requests per time slot" + examples: + GENERIC_429_QUOTA_EXCEEDED: + description: Request is rejected due to exceeding a business quota limit + value: + status: 429 + code: QUOTA_EXCEEDED + message: Either out of resource quota or reaching rate limiting. + GENERIC_429_TOO_MANY_REQUESTS: + description: API Server request limit is overpassed + value: + status: 429 + code: TOO_MANY_REQUESTS + message: Either out of resource quota or reaching rate limiting. Generic500: description: Server error headers: @@ -976,10 +1026,29 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 500 - code: "INTERNAL" - message: "Server error" + examples: + GENERIC_500_INTERNAL: + description: Problem in Server side. Regular Server Exception + value: + status: 500 + code: INTERNAL + message: Unknown server error. Typically a server bug. + Generic501: + description: Not Implemented + headers: + x-correlator: + $ref: "#/components/headers/x-correlator" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfo" + examples: + GENERIC_501_NOT_IMPLEMENTED: + description: Service not implemented. The use of this code should be avoided as far as possible to get the objective to reach aligned implementations + value: + status: 501 + code: NOT_IMPLEMENTED + message: This functionality is not implemented yet. Generic503: description: Service unavailable. Typically the server is down. headers: @@ -989,10 +1058,13 @@ components: application/json: schema: $ref: "#/components/schemas/ErrorInfo" - example: - status: 503 - code: "UNAVAILABLE" - message: "Service unavailable" + examples: + GENERIC_503_UNAVAILABLE: + description: Service is not available. Temporary situation usually related to maintenance process in the server side + value: + status: 503 + code: UNAVAILABLE + message: Service Unavailable. SubscriptionIdRequired: description: Problem with the client request headers: From debe75b9eb20889dcac1746c25d2d75cd58cd63e Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:14:36 +0200 Subject: [PATCH 2/8] Updates after first discussion with Pedro Diez --- .../event-subscription-template.yaml | 56 ++++++++++++++----- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index cff2f6a..c063574 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -111,11 +111,11 @@ paths: schema: $ref: "#/components/schemas/SubscriptionAsync" "400": - $ref: "#/components/responses/Generic400" + $ref: "#/components/responses/CreateSubscriptionBadRequest400" "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/Generic403" + $ref: "#/components/responses/CreateSubscriptionBadRequest403" "409": $ref: "#/components/responses/Generic409" "415": @@ -799,7 +799,7 @@ components: required: - subject responses: - Generic400: + CreateSubscriptionBadRequest400: description: Problem with the client request headers: x-correlator: @@ -836,6 +836,28 @@ components: status: 400 code: "INVALID_TOKEN" message: "Only bearer token is supported" + Generic400: + description: Problem with the client request + headers: + x-correlator: + $ref: "#/components/headers/x-correlator" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfo" + examples: + GENERIC_400_INVALID_ARGUMENT: + description: Invalid Argument. Generic Syntax Exception + value: + status: 400 + code: INVALID_ARGUMENT + message: Client specified an invalid argument, request body or query param. + GENERIC_400_OUT_OF_RANGE: + description: Out of Range. Specific Syntax Exception used when a given field has a pre-defined range or a invalid filter criteria combination is requested + value: + status: 400 + code: OUT_OF_RANGE + message: Client specified an invalid range. Generic401: description: Authentication problem with the client request headers: @@ -859,6 +881,22 @@ components: code: AUTHENTICATION_REQUIRED message: New authentication is required. Generic403: + description: Client does not have sufficient permission + headers: + x-correlator: + $ref: "#/components/headers/x-correlator" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorInfo" + examples: + GENERIC_403_PERMISSION_DENIED: + description: Permission denied. OAuth2 token access does not have the required scope or when the user fails operational security + value: + status: 403 + code: PERMISSION_DENIED + message: Client does not have sufficient permissions to perform this action. + CreateSubscriptionBadRequest403: description: Client does not have sufficient permission headers: x-correlator: @@ -896,18 +934,6 @@ components: status: 404 code: NOT_FOUND message: The specified resource is not found. - GENERIC_404_DEVICE_NOT_FOUND: - description: Device identifier not found - value: - status: 404 - code: DEVICE_NOT_FOUND - message: Device identifier not found. - GENERIC_404_{{SPECIFIC_CODE}}: - description: Specific situation to highlight the resource/concept not found - value: - status: 404 - code: { { SPECIFIC_CODE } } - message: { { SPECIFIC_CODE_MESSAGE } } Generic409: description: Conflict headers: From 5b17a7b17862f9ceb46e165dbe2fe293eb27c750 Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Thu, 18 Jul 2024 08:24:09 +0200 Subject: [PATCH 3/8] Update artifacts/camara-cloudevents/event-subscription-template.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pedro Díez García --- artifacts/camara-cloudevents/event-subscription-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index c063574..803575b 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -115,7 +115,7 @@ paths: "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/CreateSubscriptionBadRequest403" + $ref: "#/components/responses/CreateSubscriptionPermissionDenied403" "409": $ref: "#/components/responses/Generic409" "415": From 6226bfeb1cdfccc2dfce437e33eb62a3550af6b5 Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Thu, 18 Jul 2024 08:24:16 +0200 Subject: [PATCH 4/8] Update artifacts/camara-cloudevents/event-subscription-template.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pedro Díez García --- artifacts/camara-cloudevents/event-subscription-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index 803575b..a41d5a4 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -896,7 +896,7 @@ components: status: 403 code: PERMISSION_DENIED message: Client does not have sufficient permissions to perform this action. - CreateSubscriptionBadRequest403: + CreateSubscriptionPermissionDenied403: description: Client does not have sufficient permission headers: x-correlator: From 63a48a013c7cc8004204244adb69cc3a417760f5 Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Thu, 18 Jul 2024 08:24:25 +0200 Subject: [PATCH 5/8] Update artifacts/camara-cloudevents/event-subscription-template.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pedro Díez García --- artifacts/camara-cloudevents/event-subscription-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index a41d5a4..acd1707 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -1004,7 +1004,7 @@ components: schema: $ref: "#/components/schemas/ErrorInfo" examples: - MULTIEVENT_SUBSCRIPTION_NOT_SUPPORTED: + GENERIC_422_MULTIEVENT_SUBSCRIPTION_NOT_SUPPORTED: value: status: 422 code: "MULTIEVENT_SUBSCRIPTION_NOT_SUPPORTED" From 2ec342335da1104fd300ad2680512826e75ad34b Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Thu, 18 Jul 2024 09:29:34 +0200 Subject: [PATCH 6/8] Fixed event-subscription-template follwing Pedro review Thanks a lot Pedro for the review. --- .../event-subscription-template.yaml | 35 +++---------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index acd1707..1b67617 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -195,8 +195,6 @@ paths: $ref: "#/components/responses/Generic404" "500": $ref: "#/components/responses/Generic500" - "501": - $ref: "#/components/responses/Generic501" "503": $ref: "#/components/responses/Generic503" delete: @@ -852,12 +850,6 @@ components: status: 400 code: INVALID_ARGUMENT message: Client specified an invalid argument, request body or query param. - GENERIC_400_OUT_OF_RANGE: - description: Out of Range. Specific Syntax Exception used when a given field has a pre-defined range or a invalid filter criteria combination is requested - value: - status: 400 - code: OUT_OF_RANGE - message: Client specified an invalid range. Generic401: description: Authentication problem with the client request headers: @@ -896,6 +888,11 @@ components: status: 403 code: PERMISSION_DENIED message: Client does not have sufficient permissions to perform this action. + GENERIC_403_SUBSCRIPTION_MISMATCH: + value: + status: 403 + code: "SUBSCRIPTION_MISMATCH" + message: "Inconsistent access token for requested events subscription" CreateSubscriptionPermissionDenied403: description: Client does not have sufficient permission headers: @@ -956,12 +953,6 @@ components: status: 409 code: ALREADY_EXISTS message: The resource that a client tried to create already exists. - GENERIC_409_CONFLICT: - description: Duplication of an existing resource - value: - status: 409 - code: CONFLICT - message: A specified resource duplicate entry found. Generic410: description: Gone headers: @@ -1059,22 +1050,6 @@ components: status: 500 code: INTERNAL message: Unknown server error. Typically a server bug. - Generic501: - description: Not Implemented - headers: - x-correlator: - $ref: "#/components/headers/x-correlator" - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorInfo" - examples: - GENERIC_501_NOT_IMPLEMENTED: - description: Service not implemented. The use of this code should be avoided as far as possible to get the objective to reach aligned implementations - value: - status: 501 - code: NOT_IMPLEMENTED - message: This functionality is not implemented yet. Generic503: description: Service unavailable. Typically the server is down. headers: From 56ed7a6fe0f98e290c14c976034f25684a6d0bb6 Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Thu, 18 Jul 2024 17:59:10 +0200 Subject: [PATCH 7/8] Update event-subscription-template.yaml --- .../event-subscription-template.yaml | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index 1b67617..01ec7c6 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -115,13 +115,13 @@ paths: "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/CreateSubscriptionPermissionDenied403" + $ref: "#/components/responses/SubscriptionPermissionDenied403" "409": $ref: "#/components/responses/Generic409" "415": $ref: "#/components/responses/Generic415" "422": - $ref: "#/components/responses/Generic422" + $ref: "#/components/responses/CreateSubscriptionUnprocessableEntity422" "429": $ref: "#/components/responses/Generic429" "500": @@ -157,7 +157,7 @@ paths: "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/Generic403" + $ref: "#/components/responses/SubscriptionPermissionDenied403" "500": $ref: "#/components/responses/Generic500" "503": @@ -190,7 +190,7 @@ paths: "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/Generic403" + $ref: "#/components/responses/SubscriptionPermissionDenied403" "404": $ref: "#/components/responses/Generic404" "500": @@ -887,13 +887,8 @@ components: value: status: 403 code: PERMISSION_DENIED - message: Client does not have sufficient permissions to perform this action. - GENERIC_403_SUBSCRIPTION_MISMATCH: - value: - status: 403 - code: "SUBSCRIPTION_MISMATCH" - message: "Inconsistent access token for requested events subscription" - CreateSubscriptionPermissionDenied403: + message: Client does not have sufficient permissions to perform this action. + SubscriptionPermissionDenied403: description: Client does not have sufficient permission headers: x-correlator: @@ -915,6 +910,11 @@ components: status: 403 code: INVALID_TOKEN_CONTEXT message: "{{field}} is not consistent with access token." + GENERIC_403_SUBSCRIPTION_MISMATCH: + value: + status: 403 + code: "SUBSCRIPTION_MISMATCH" + message: "Inconsistent access token for requested events subscription" Generic404: description: Resource Not Found headers: @@ -985,7 +985,7 @@ components: status: 415 code: UNSUPPORTED_MEDIA_TYPE message: The server refuses to accept the request because the payload format is in an unsupported format - Generic422: + CreateSubscriptionUnprocessableEntity422: description: Unprocessable Entity headers: x-correlator: From fc9b611b9f546a7759cfbcc8d98af7a49c441e54 Mon Sep 17 00:00:00 2001 From: Ludovic Robert <30499179+bigludo7@users.noreply.github.com> Date: Fri, 19 Jul 2024 17:12:00 +0200 Subject: [PATCH 8/8] Update event-subscription-template.yaml for 403 --- .../camara-cloudevents/event-subscription-template.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/artifacts/camara-cloudevents/event-subscription-template.yaml b/artifacts/camara-cloudevents/event-subscription-template.yaml index 01ec7c6..aff167e 100644 --- a/artifacts/camara-cloudevents/event-subscription-template.yaml +++ b/artifacts/camara-cloudevents/event-subscription-template.yaml @@ -66,7 +66,6 @@ paths: application/cloudevents+json: schema: $ref: "#/components/schemas/CloudEvent" - responses: "204": description: Successful notification @@ -157,7 +156,7 @@ paths: "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/SubscriptionPermissionDenied403" + $ref: "#/components/responses/Generic403" "500": $ref: "#/components/responses/Generic500" "503": @@ -190,7 +189,7 @@ paths: "401": $ref: "#/components/responses/Generic401" "403": - $ref: "#/components/responses/SubscriptionPermissionDenied403" + $ref: "#/components/responses/Generic403" "404": $ref: "#/components/responses/Generic404" "500":