From 31e243cc0db567ff5dd02606204ce85de0bee13f Mon Sep 17 00:00:00 2001 From: Jakob Warkotsch Date: Fri, 20 Sep 2024 15:28:25 +0200 Subject: [PATCH] REST: Add 429 response to OAS for edit routes Bug: T366594 Change-Id: Iafcc0edbc3039785adcdbb8f7000984d84d3bd5f --- repo/rest-api/specs/global/responses.json | 25 ++++ .../aliases/aliases-in-language-for-item.json | 1 + .../aliases-in-language-for-property.json | 1 + .../resources/aliases/list-for-item.json | 1 + .../resources/aliases/list-for-property.json | 1 + .../description-in-language-for-item.json | 2 + .../description-in-language-for-property.json | 2 + .../resources/descriptions/list-for-item.json | 1 + .../descriptions/list-for-property.json | 1 + repo/rest-api/specs/resources/items/list.json | 1 + .../specs/resources/items/single.json | 1 + .../labels/label-in-language-for-item.json | 2 + .../label-in-language-for-property.json | 2 + .../specs/resources/labels/list-for-item.json | 1 + .../resources/labels/list-for-property.json | 1 + .../specs/resources/properties/single.json | 1 + .../specs/resources/sitelinks/list.json | 1 + .../specs/resources/sitelinks/single.json | 2 + .../resources/statements/list-for-item.json | 1 + .../statements/list-for-property.json | 1 + .../resources/statements/single-for-item.json | 3 + .../statements/single-for-property.json | 3 + .../specs/resources/statements/single.json | 3 + repo/rest-api/src/RouteHandlers/openapi.json | 128 ++++++++++++++++++ 24 files changed, 186 insertions(+) diff --git a/repo/rest-api/specs/global/responses.json b/repo/rest-api/specs/global/responses.json index 92b122e9c4..9bb0af1c61 100644 --- a/repo/rest-api/specs/global/responses.json +++ b/repo/rest-api/specs/global/responses.json @@ -113,6 +113,31 @@ } } }, + "RequestLimitReached": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { "$ref": "./response-parts.json#/Error" }, + "examples": { + "request-limit-reached": { + "value": { + "code": "request-limit-reached", + "message": "Exceeded the limit of actions that can be performed in a given span of time", + "context": { "reason": "{reason_code}" } + } + } + } + } + }, + "headers": { + "Content-Language": { + "schema": { + "type": "string" + }, + "description": "Language code of the language in which error message is provided" + } + } + }, "ResourceNotFound": { "description": "The specified resource was not found", "content": { diff --git a/repo/rest-api/specs/resources/aliases/aliases-in-language-for-item.json b/repo/rest-api/specs/resources/aliases/aliases-in-language-for-item.json index a8e21775bc..32afe571c3 100644 --- a/repo/rest-api/specs/resources/aliases/aliases-in-language-for-item.json +++ b/repo/rest-api/specs/resources/aliases/aliases-in-language-for-item.json @@ -51,6 +51,7 @@ "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/aliases/aliases-in-language-for-property.json b/repo/rest-api/specs/resources/aliases/aliases-in-language-for-property.json index f3c7a8596e..0f8584f6dd 100644 --- a/repo/rest-api/specs/resources/aliases/aliases-in-language-for-property.json +++ b/repo/rest-api/specs/resources/aliases/aliases-in-language-for-property.json @@ -49,6 +49,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/aliases/list-for-item.json b/repo/rest-api/specs/resources/aliases/list-for-item.json index 030005f652..1f0d19a31c 100644 --- a/repo/rest-api/specs/resources/aliases/list-for-item.json +++ b/repo/rest-api/specs/resources/aliases/list-for-item.json @@ -40,6 +40,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyItemPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedAliases" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/aliases/list-for-property.json b/repo/rest-api/specs/resources/aliases/list-for-property.json index de9f8515c5..85e3113997 100644 --- a/repo/rest-api/specs/resources/aliases/list-for-property.json +++ b/repo/rest-api/specs/resources/aliases/list-for-property.json @@ -39,6 +39,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyPropertyPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedAliases" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/descriptions/description-in-language-for-item.json b/repo/rest-api/specs/resources/descriptions/description-in-language-for-item.json index 6612b399e5..6559d92562 100644 --- a/repo/rest-api/specs/resources/descriptions/description-in-language-for-item.json +++ b/repo/rest-api/specs/resources/descriptions/description-in-language-for-item.json @@ -52,6 +52,7 @@ "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/DataPolicyViolation" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -76,6 +77,7 @@ "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/descriptions/description-in-language-for-property.json b/repo/rest-api/specs/resources/descriptions/description-in-language-for-property.json index 94fa02dfab..a0a3be6189 100644 --- a/repo/rest-api/specs/resources/descriptions/description-in-language-for-property.json +++ b/repo/rest-api/specs/resources/descriptions/description-in-language-for-property.json @@ -50,6 +50,7 @@ "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/DataPolicyViolation" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -73,6 +74,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/descriptions/list-for-item.json b/repo/rest-api/specs/resources/descriptions/list-for-item.json index 2c705e2534..81af54daca 100644 --- a/repo/rest-api/specs/resources/descriptions/list-for-item.json +++ b/repo/rest-api/specs/resources/descriptions/list-for-item.json @@ -43,6 +43,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyItemPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedDescriptions" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/descriptions/list-for-property.json b/repo/rest-api/specs/resources/descriptions/list-for-property.json index 9a7d3d6dcc..7919d006f9 100644 --- a/repo/rest-api/specs/resources/descriptions/list-for-property.json +++ b/repo/rest-api/specs/resources/descriptions/list-for-property.json @@ -42,6 +42,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyPropertyPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedDescriptions" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/items/list.json b/repo/rest-api/specs/resources/items/list.json index 2095db5d7e..10eb18995b 100644 --- a/repo/rest-api/specs/resources/items/list.json +++ b/repo/rest-api/specs/resources/items/list.json @@ -12,6 +12,7 @@ "400": { "$ref": "./responses.json#/InvalidNewItemInput" }, "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "422": { "$ref": "../../global/responses.json#/DataPolicyViolation" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/items/single.json b/repo/rest-api/specs/resources/items/single.json index 720899d27a..37711e69e9 100644 --- a/repo/rest-api/specs/resources/items/single.json +++ b/repo/rest-api/specs/resources/items/single.json @@ -41,6 +41,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyItemPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedItem" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/labels/label-in-language-for-item.json b/repo/rest-api/specs/resources/labels/label-in-language-for-item.json index ee8d2cf4b6..2dd6bdf9e8 100644 --- a/repo/rest-api/specs/resources/labels/label-in-language-for-item.json +++ b/repo/rest-api/specs/resources/labels/label-in-language-for-item.json @@ -52,6 +52,7 @@ "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/DataPolicyViolation" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -76,6 +77,7 @@ "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/labels/label-in-language-for-property.json b/repo/rest-api/specs/resources/labels/label-in-language-for-property.json index 4cc53aa7c9..ed3e152b90 100644 --- a/repo/rest-api/specs/resources/labels/label-in-language-for-property.json +++ b/repo/rest-api/specs/resources/labels/label-in-language-for-property.json @@ -50,6 +50,7 @@ "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/DataPolicyViolation" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -73,6 +74,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/labels/list-for-item.json b/repo/rest-api/specs/resources/labels/list-for-item.json index 0ec345a029..9f4eb10810 100644 --- a/repo/rest-api/specs/resources/labels/list-for-item.json +++ b/repo/rest-api/specs/resources/labels/list-for-item.json @@ -40,6 +40,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyItemPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedLabels" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/labels/list-for-property.json b/repo/rest-api/specs/resources/labels/list-for-property.json index 477501e28a..c1717817bd 100644 --- a/repo/rest-api/specs/resources/labels/list-for-property.json +++ b/repo/rest-api/specs/resources/labels/list-for-property.json @@ -39,6 +39,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyPropertyPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedLabels" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/properties/single.json b/repo/rest-api/specs/resources/properties/single.json index fc6d657aa2..54ad6555a6 100644 --- a/repo/rest-api/specs/resources/properties/single.json +++ b/repo/rest-api/specs/resources/properties/single.json @@ -38,6 +38,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyPropertyPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedProperty" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/sitelinks/list.json b/repo/rest-api/specs/resources/sitelinks/list.json index 2e0944e571..d10f7b9233 100644 --- a/repo/rest-api/specs/resources/sitelinks/list.json +++ b/repo/rest-api/specs/resources/sitelinks/list.json @@ -40,6 +40,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyItemPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "./responses.json#/InvalidPatchedItemSitelinks" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/sitelinks/single.json b/repo/rest-api/specs/resources/sitelinks/single.json index fc5573a9a0..ebd647a32e 100644 --- a/repo/rest-api/specs/resources/sitelinks/single.json +++ b/repo/rest-api/specs/resources/sitelinks/single.json @@ -51,6 +51,7 @@ "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/DataPolicyViolation" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -75,6 +76,7 @@ "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/statements/list-for-item.json b/repo/rest-api/specs/resources/statements/list-for-item.json index 9f57ad0781..acc5b45dc2 100644 --- a/repo/rest-api/specs/resources/statements/list-for-item.json +++ b/repo/rest-api/specs/resources/statements/list-for-item.json @@ -40,6 +40,7 @@ "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "409": { "$ref": "../../global/responses.json#/ItemRedirected" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/statements/list-for-property.json b/repo/rest-api/specs/resources/statements/list-for-property.json index 7adb6f82ce..a848dfa0b4 100644 --- a/repo/rest-api/specs/resources/statements/list-for-property.json +++ b/repo/rest-api/specs/resources/statements/list-for-property.json @@ -38,6 +38,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/statements/single-for-item.json b/repo/rest-api/specs/resources/statements/single-for-item.json index 20cb4e8de0..fc851b2b8e 100644 --- a/repo/rest-api/specs/resources/statements/single-for-item.json +++ b/repo/rest-api/specs/resources/statements/single-for-item.json @@ -41,6 +41,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -65,6 +66,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyStatementPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedStatement" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -87,6 +89,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/statements/single-for-property.json b/repo/rest-api/specs/resources/statements/single-for-property.json index c4df8f1b39..5dda782f8f 100644 --- a/repo/rest-api/specs/resources/statements/single-for-property.json +++ b/repo/rest-api/specs/resources/statements/single-for-property.json @@ -41,6 +41,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -65,6 +66,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyStatementPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedStatement" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -87,6 +89,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/specs/resources/statements/single.json b/repo/rest-api/specs/resources/statements/single.json index e30c9b073a..8ec7f47bca 100644 --- a/repo/rest-api/specs/resources/statements/single.json +++ b/repo/rest-api/specs/resources/statements/single.json @@ -39,6 +39,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -62,6 +63,7 @@ "409": { "$ref": "../../global/responses.json#/CannotApplyStatementPatch" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, "422": { "$ref": "../../global/responses.json#/InvalidPatchedStatement" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } }, @@ -83,6 +85,7 @@ "403": { "$ref": "../../global/responses.json#/PermissionDenied" }, "404": { "$ref": "../../global/responses.json#/ResourceNotFound" }, "412": { "$ref": "../../global/responses.json#/PreconditionFailedError" }, + "429": { "$ref": "../../global/responses.json#/RequestLimitReached" }, "500": { "$ref": "../../global/responses.json#/UnexpectedError" } } } diff --git a/repo/rest-api/src/RouteHandlers/openapi.json b/repo/rest-api/src/RouteHandlers/openapi.json index 608b69916a..f1ca5deae7 100644 --- a/repo/rest-api/src/RouteHandlers/openapi.json +++ b/repo/rest-api/src/RouteHandlers/openapi.json @@ -137,6 +137,9 @@ "422": { "$ref": "#/components/responses/DataPolicyViolation" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -265,6 +268,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedItem" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -402,6 +408,9 @@ } } }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -576,6 +585,9 @@ "422": { "$ref": "#/components/responses/DataPolicyViolation" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -674,6 +686,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -793,6 +808,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedProperty" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -896,6 +914,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedDescriptions" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -996,6 +1017,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedDescriptions" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1118,6 +1142,9 @@ "422": { "$ref": "#/components/responses/DataPolicyViolation" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1174,6 +1201,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1290,6 +1320,9 @@ "422": { "$ref": "#/components/responses/DataPolicyViolation" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1343,6 +1376,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1545,6 +1581,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1710,6 +1749,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1799,6 +1841,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedStatement" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1876,6 +1921,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -1978,6 +2026,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedLabels" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2077,6 +2128,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedLabels" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2199,6 +2253,9 @@ "422": { "$ref": "#/components/responses/DataPolicyViolation" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2255,6 +2312,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2371,6 +2431,9 @@ "422": { "$ref": "#/components/responses/DataPolicyViolation" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2424,6 +2487,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2526,6 +2592,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedAliases" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2625,6 +2694,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedAliases" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2744,6 +2816,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -2857,6 +2932,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -3056,6 +3134,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -3221,6 +3302,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -3310,6 +3394,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedStatement" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -3387,6 +3474,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -3540,6 +3630,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -3591,6 +3684,9 @@ "422": { "$ref": "#/components/responses/InvalidPatchedStatement" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -3662,6 +3758,9 @@ "412": { "$ref": "#/components/responses/PreconditionFailedError" }, + "429": { + "$ref": "#/components/responses/RequestLimitReached" + }, "500": { "$ref": "#/components/responses/UnexpectedError" } @@ -4665,6 +4764,35 @@ } } }, + "RequestLimitReached": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/responses/InvalidPatch/content/application~1json/schema" + }, + "examples": { + "request-limit-reached": { + "value": { + "code": "request-limit-reached", + "message": "Exceeded the limit of actions that can be performed in a given span of time", + "context": { + "reason": "{reason_code}" + } + } + } + } + } + }, + "headers": { + "Content-Language": { + "schema": { + "type": "string" + }, + "description": "Language code of the language in which error message is provided" + } + } + }, "ResourceNotFound": { "description": "The specified resource was not found", "content": {