From 4ee20d953053ed52d8d2caa188e8908ae88245f5 Mon Sep 17 00:00:00 2001 From: "redisdocsapp[bot]" <177626021+redisdocsapp[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 00:36:12 +0000 Subject: [PATCH 1/4] Update content/operate/rc/api/api-reference/openapi.json --- .../operate/rc/api/api-reference/openapi.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index 5697fb3489..ec439c8c52 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -12,7 +12,7 @@ }, "externalDocs": { "description": "Redis Cloud API Documentation", - "url": "https://redis.io/docs/latest/operate/rc/api/" + "url": "https://docs.redislabs.com/latest/rc/api/" }, "servers": [ { @@ -86,7 +86,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_1", + "operationId": "proxyDataIntegrationWorkspace", "parameters": [ { "name": "subscriptionId", @@ -227,7 +227,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace", + "operationId": "proxyDataIntegrationWorkspace_2", "parameters": [ { "name": "subscriptionId", @@ -298,7 +298,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_2", + "operationId": "proxyDataIntegrationWorkspace_3", "parameters": [ { "name": "subscriptionId", @@ -369,7 +369,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_3", + "operationId": "proxyDataIntegrationWorkspace_1", "parameters": [ { "name": "subscriptionId", @@ -442,7 +442,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_6", + "operationId": "proxyDataIntegrationWorkspace_5", "parameters": [ { "name": "subscriptionId", @@ -583,7 +583,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_5", + "operationId": "proxyDataIntegrationWorkspace_7", "parameters": [ { "name": "subscriptionId", @@ -654,7 +654,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_7", + "operationId": "proxyDataIntegrationWorkspace_8", "parameters": [ { "name": "subscriptionId", @@ -725,7 +725,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_8", + "operationId": "proxyDataIntegrationWorkspace_6", "parameters": [ { "name": "subscriptionId", From 682ea794e9e6c9e479966929b2f4cab8ad7a16fe Mon Sep 17 00:00:00 2001 From: "redisdocsapp[bot]" <177626021+redisdocsapp[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 00:40:34 +0000 Subject: [PATCH 2/4] Update content/operate/rc/api/api-reference/openapi.json --- .../operate/rc/api/api-reference/openapi.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index ec439c8c52..e73b64b3dc 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -86,7 +86,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace", + "operationId": "proxyDataIntegrationWorkspace_4", "parameters": [ { "name": "subscriptionId", @@ -156,7 +156,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_4", + "operationId": "proxyDataIntegrationWorkspace_2", "parameters": [ { "name": "subscriptionId", @@ -227,7 +227,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_2", + "operationId": "proxyDataIntegrationWorkspace", "parameters": [ { "name": "subscriptionId", @@ -298,7 +298,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_3", + "operationId": "proxyDataIntegrationWorkspace_1", "parameters": [ { "name": "subscriptionId", @@ -369,7 +369,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_1", + "operationId": "proxyDataIntegrationWorkspace_3", "parameters": [ { "name": "subscriptionId", @@ -442,7 +442,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_5", + "operationId": "proxyDataIntegrationWorkspace_9", "parameters": [ { "name": "subscriptionId", @@ -512,7 +512,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_9", + "operationId": "proxyDataIntegrationWorkspace_7", "parameters": [ { "name": "subscriptionId", @@ -583,7 +583,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_7", + "operationId": "proxyDataIntegrationWorkspace_5", "parameters": [ { "name": "subscriptionId", @@ -654,7 +654,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_8", + "operationId": "proxyDataIntegrationWorkspace_6", "parameters": [ { "name": "subscriptionId", @@ -725,7 +725,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_6", + "operationId": "proxyDataIntegrationWorkspace_8", "parameters": [ { "name": "subscriptionId", From 24b6638c3ad9d22a42d3ec60a944059bc3f92e8d Mon Sep 17 00:00:00 2001 From: "redisdocsapp[bot]" <177626021+redisdocsapp[bot]@users.noreply.github.com> Date: Sat, 11 Jul 2026 00:34:41 +0000 Subject: [PATCH 3/4] Update content/operate/rc/api/api-reference/openapi.json --- .../operate/rc/api/api-reference/openapi.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index e73b64b3dc..129a060b81 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -86,7 +86,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_4", + "operationId": "proxyDataIntegrationWorkspace", "parameters": [ { "name": "subscriptionId", @@ -156,7 +156,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_2", + "operationId": "proxyDataIntegrationWorkspace_1", "parameters": [ { "name": "subscriptionId", @@ -227,7 +227,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace", + "operationId": "proxyDataIntegrationWorkspace_3", "parameters": [ { "name": "subscriptionId", @@ -298,7 +298,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_1", + "operationId": "proxyDataIntegrationWorkspace_4", "parameters": [ { "name": "subscriptionId", @@ -369,7 +369,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_3", + "operationId": "proxyDataIntegrationWorkspace_2", "parameters": [ { "name": "subscriptionId", @@ -442,7 +442,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_9", + "operationId": "proxyDataIntegrationWorkspace_5", "parameters": [ { "name": "subscriptionId", @@ -512,7 +512,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_7", + "operationId": "proxyDataIntegrationWorkspace_6", "parameters": [ { "name": "subscriptionId", @@ -583,7 +583,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_5", + "operationId": "proxyDataIntegrationWorkspace_8", "parameters": [ { "name": "subscriptionId", @@ -654,7 +654,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_6", + "operationId": "proxyDataIntegrationWorkspace_9", "parameters": [ { "name": "subscriptionId", @@ -725,7 +725,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_8", + "operationId": "proxyDataIntegrationWorkspace_7", "parameters": [ { "name": "subscriptionId", From 24b230442f1405ed6abfc9f3f3e97cf1cc78ce63 Mon Sep 17 00:00:00 2001 From: "redisdocsapp[bot]" <177626021+redisdocsapp[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 00:37:20 +0000 Subject: [PATCH 4/4] Update content/operate/rc/api/api-reference/openapi.json --- .../operate/rc/api/api-reference/openapi.json | 439 +++++++++++++++++- 1 file changed, 421 insertions(+), 18 deletions(-) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index 129a060b81..5be730d733 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -12,7 +12,7 @@ }, "externalDocs": { "description": "Redis Cloud API Documentation", - "url": "https://docs.redislabs.com/latest/rc/api/" + "url": "https://redis.io/docs/latest/operate/rc/api/" }, "servers": [ { @@ -47,6 +47,11 @@ "description": "All Pro database operations.", "x-order": "20" }, + { + "name": "Endpoint Redirections", + "description": "Dynamic endpoint redirection operations.", + "x-order": "21" + }, { "name": "Subscriptions - Essentials", "description": "All Essentials subscription operations.", @@ -86,7 +91,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace", + "operationId": "proxyDataIntegrationWorkspace_4", "parameters": [ { "name": "subscriptionId", @@ -156,7 +161,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_1", + "operationId": "proxyDataIntegrationWorkspace_3", "parameters": [ { "name": "subscriptionId", @@ -227,7 +232,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_3", + "operationId": "proxyDataIntegrationWorkspace", "parameters": [ { "name": "subscriptionId", @@ -298,7 +303,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_4", + "operationId": "proxyDataIntegrationWorkspace_2", "parameters": [ { "name": "subscriptionId", @@ -369,7 +374,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_2", + "operationId": "proxyDataIntegrationWorkspace_1", "parameters": [ { "name": "subscriptionId", @@ -442,7 +447,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_5", + "operationId": "proxyDataIntegrationWorkspace_9", "parameters": [ { "name": "subscriptionId", @@ -512,7 +517,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_6", + "operationId": "proxyDataIntegrationWorkspace_8", "parameters": [ { "name": "subscriptionId", @@ -583,7 +588,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_8", + "operationId": "proxyDataIntegrationWorkspace_5", "parameters": [ { "name": "subscriptionId", @@ -654,7 +659,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_9", + "operationId": "proxyDataIntegrationWorkspace_7", "parameters": [ { "name": "subscriptionId", @@ -725,7 +730,7 @@ ], "summary": "Proxy a Data Integration workspace request", "description": "Forwards the request to the Data Integration workspace owned by the specified subscription. Path under `data-integration-workspace/**` is forwarded as-is to the Cloud RDI service.", - "operationId": "proxyDataIntegrationWorkspace_7", + "operationId": "proxyDataIntegrationWorkspace_6", "parameters": [ { "name": "subscriptionId", @@ -7954,7 +7959,7 @@ "Databases - Pro" ], "summary": "Resume Pro database traffic", - "description": "Resumes traffic for the specified Pro database.", + "description": "Resumes traffic for the specified Pro database. This is available in private preview.", "operationId": "resumeBdbTraffic", "parameters": [ { @@ -8759,7 +8764,7 @@ "Databases - Essentials" ], "summary": "Resume Essentials database traffic", - "description": "Resumes traffic for the specified Essentials database.", + "description": "Resumes traffic for the specified Essentials database. This is available in private preview.", "operationId": "resumeBdbTraffic_1", "parameters": [ { @@ -9121,6 +9126,143 @@ } } }, + "/v1/endpoint-redirections": { + "post": { + "tags": [ + "Endpoint Redirections" + ], + "summary": "Create dynamic endpoint redirection", + "description": "Initiates a dynamic endpoint redirection from a source database to a target database. Returns a redirection ID that can be used to poll the status. This is available in private preview.", + "operationId": "createEndpointsRedirection", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateEndpointsRedirectionRequest" + }, + "example": { + "sourceDatabaseId": 51404231, + "targetDatabaseId": 51404232, + "endpointTargetType": "public", + "duplicateACLs": true, + "migrationProtection": true + } + } + }, + "required": true + }, + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndpointsRedirectionResponse" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with the new name" + }, + "422": { + "description": "Unprocessable Entity - The server understands the request, and the syntax of the request is correct, but it was unable to process the contained instructions" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, + "/v1/endpoint-redirections/{redirectionId}/revert": { + "post": { + "tags": [ + "Endpoint Redirections" + ], + "summary": "Revert dynamic endpoint redirection", + "description": "Reverts a previously completed dynamic endpoint redirection, restoring the original endpoint configuration. This is available in private preview.", + "operationId": "revertEndpointsRedirection", + "parameters": [ + { + "name": "redirectionId", + "in": "path", + "description": "Dynamic endpoint redirection ID.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "example": "550e8400-e29b-41d4-a716-446655440000" + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndpointsRedirectionResponse" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "408": { + "description": "Request Timeout - The server didn't receive a complete request message within the server's allotted timeout period" + }, + "409": { + "description": "Conflict - request could not be processed because of a conflict (primarily due to another resource that exist with new updated name)" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, "/v1/cost-report": { "post": { "tags": [ @@ -10547,7 +10689,7 @@ "Databases - Pro" ], "summary": "Get Pro database traffic", - "description": "Gets traffic information for the specified Pro database. If the database was not a source in a redirect endpoints operation, a not found error will be returned.", + "description": "Gets traffic information for the specified Pro database. If the database was not a source in a redirect endpoints operation, a not found error will be returned. This is available in private preview.", "operationId": "getDatabaseTraffic", "parameters": [ { @@ -11238,7 +11380,7 @@ "Databases - Essentials" ], "summary": "Get Essentials database traffic", - "description": "Gets traffic information for the specified Essentials database. If the database was not a source in a redirect endpoints operation, a not found error will be returned.", + "description": "Gets traffic information for the specified Essentials database. If the database was not a source in a redirect endpoints operation, a not found error will be returned. This is available in private preview.", "operationId": "getDatabaseTraffic_1", "parameters": [ { @@ -11683,6 +11825,65 @@ } } }, + "/v1/endpoint-redirections/{redirectionId}": { + "get": { + "tags": [ + "Endpoint Redirections" + ], + "summary": "Get dynamic endpoint redirection status", + "description": "Gets the status of a dynamic endpoint redirection operation by its ID. This is available in private preview.", + "operationId": "getEndpointsRedirectionStatus", + "parameters": [ + { + "name": "redirectionId", + "in": "path", + "description": "Dynamic endpoint redirection ID.", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + }, + "example": "550e8400-e29b-41d4-a716-446655440000" + } + ], + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" + }, + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndpointsRedirectionResponse" + } + } + } + }, + "401": { + "description": "Unauthorized - Authentication failed for requested resource" + }, + "403": { + "description": "Forbidden - Not allowed to access requested resource (primarily due to client source IP API Key restrictions)" + }, + "404": { + "description": "Not Found - The resource you were trying to reach was not found or does not exist" + }, + "429": { + "description": "Too Many Requests - Too many resources are concurrently created / updated / deleted in the account. Please re-submit API requests after resource changes are completed)" + }, + "500": { + "description": "Internal system error - If this error persists, please contact customer support" + }, + "503": { + "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " + } + } + } + }, "/v1/database-modules": { "get": { "tags": [ @@ -12448,6 +12649,10 @@ "lastModified": "2021-08-29T13:03:08Z", "publicEndpoint": "redis-17571.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:17571", "privateEndpoint": "redis-17571.internal.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:17571", + "dynamicEndpoints": { + "public": "malleable-ultraquiet-point-31101.db-qa.redis.io:17571", + "private": "cherry-cook-turn-91868.db-qa.redis.io:17571" + }, "replica": { "syncSources": [ { @@ -13791,6 +13996,81 @@ }, "description": "RedisLabs data persistence information" }, + "EndpointsRedirectionResponse": { + "type": "object", + "properties": { + "redirectionId": { + "type": "string", + "description": "Unique identifier of the dynamic endpoint redirection. Use it to poll the redirection status.", + "format": "uuid", + "example": "550e8400-e29b-41d4-a716-446655440000" + }, + "status": { + "type": "string", + "description": "Current status of the dynamic endpoint redirection.", + "example": "in-progress", + "enum": [ + "initiated", + "pending", + "in-progress", + "completed", + "failed", + "reverted" + ] + }, + "sourceDatabaseId": { + "type": "integer", + "description": "ID of the source database the endpoint is redirected from.", + "format": "int32", + "example": 51404231 + }, + "targetDatabaseId": { + "type": "integer", + "description": "ID of the target database the endpoint is redirected to.", + "format": "int32", + "example": 51404232 + }, + "isRevert": { + "type": "boolean", + "description": "Whether this redirection reverts a previously completed redirection.", + "example": false + }, + "duplicateACLs": { + "type": "boolean", + "description": "Whether the source database ACLs were duplicated to the target database.", + "example": true + }, + "startedAt": { + "type": "string", + "description": "Timestamp when the redirection started.", + "format": "date-time", + "example": "2024-05-01T13:03:08Z" + }, + "completedAt": { + "type": "string", + "description": "Timestamp when the redirection completed.", + "format": "date-time", + "example": "2024-05-01T13:05:42Z" + }, + "revertedAt": { + "type": "string", + "description": "Timestamp when the redirection was reverted, if applicable.", + "format": "date-time" + }, + "errorMessage": { + "type": "string", + "description": "Error message describing why the redirection failed, if applicable." + }, + "endpoints": { + "type": "array", + "description": "Details of the individual endpoint redirections performed.", + "items": { + "$ref": "#/components/schemas/EndpointRedirectionDTO" + } + } + }, + "description": "Dynamic endpoint redirection status response message" + }, "CloudAccounts": { "type": "object", "properties": { @@ -14504,6 +14784,10 @@ "lastModified": "2021-08-29T13:03:08Z", "publicEndpoint": "redis-17571.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:17571", "privateEndpoint": "redis-17571.internal.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:17571", + "dynamicEndpoints": { + "public": "nonstick-pot-wave-27804.db-qa.redis.io:17571", + "private": "mustard-shake-suitable-46756.db-qa.redis.io:17571" + }, "replica": { "syncSources": [ { @@ -14573,6 +14857,10 @@ "lastModified": "2021-08-29T13:03:27Z", "publicEndpoint": "redis-11836.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:11836", "privateEndpoint": "redis-11836.internal.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:11836", + "dynamicEndpoints": { + "public": "responsible-reason-camp-67293.db-qa.redis.io:11836", + "private": "ultraclear-pocket-mercurial-75326.db-qa.redis.io:11836" + }, "replica": { "syncSources": [ { @@ -14642,6 +14930,10 @@ "lastModified": "2021-08-29T13:03:26Z", "publicEndpoint": "redis-19708.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:19708", "privateEndpoint": "redis-19708.internal.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:19708", + "dynamicEndpoints": { + "public": "rabbit-colorfast-cheery-91128.db-qa.redis.io:19708", + "private": "sprout-eucalyptus-care-43178.db-qa.redis.io:19708" + }, "replica": { "syncSources": [ { @@ -14711,6 +15003,10 @@ "lastModified": "2021-08-29T13:03:27Z", "publicEndpoint": "redis-14503.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:14503", "privateEndpoint": "redis-14503.internal.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:14503", + "dynamicEndpoints": { + "public": "connection-stitch-seafoam-17021.db-qa.redis.io:14503", + "private": "pocket-pan-neoswift-58145.db-qa.redis.io:14503" + }, "replica": { "syncSources": [ { @@ -14780,6 +15076,10 @@ "lastModified": "2021-08-29T13:03:22Z", "publicEndpoint": "redis-11349.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:11349", "privateEndpoint": "redis-11349.internal.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:11349", + "dynamicEndpoints": { + "public": "ecru-measure-theory-32604.db-qa.redis.io:11349", + "private": "error-rosemary-gold-92024.db-qa.redis.io:11349" + }, "replica": { "syncSources": [ { @@ -14831,6 +15131,10 @@ "lastModified": "2021-08-29T13:03:27Z", "publicEndpoint": "redis-13074.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:13074", "privateEndpoint": "redis-13074.internal.c235866.us-east-1-1.ec2.qa-cloud.rlrcp.com:13074", + "dynamicEndpoints": { + "public": "purebred-saffronish-bird-84456.db-qa.redis.io:13074", + "private": "sparkly-tiger-jovial-96172.db-qa.redis.io:13074" + }, "replica": { "syncSources": [ { @@ -16105,6 +16409,10 @@ "dataPersistence": "none", "replication": true, "dataEvictionPolicy": "noeviction", + "dynamicEndpoints": { + "public": "beautiful-ultralight-board-76526.db-qa.redis.io:12345", + "private": "dog-ball-key-65499.db-qa.redis.io:12345" + }, "clustering": { "enabled": false, "regexRules": [ @@ -16185,6 +16493,10 @@ "dataPersistence": "none", "replication": true, "dataEvictionPolicy": "noeviction", + "dynamicEndpoints": { + "public": "morning-easy-volleyball-28510.db-qa.redis.io:12000", + "private": "table-peanut-chin-89928.db-qa.redis.io:12000" + }, "clustering": { "enabled": false, "regexRules": [ @@ -16368,6 +16680,49 @@ }, "description": "Private Service Connect endpoint update request" }, + "CreateEndpointsRedirectionRequest": { + "required": [ + "endpointTargetType", + "migrationProtection", + "sourceDatabaseId", + "targetDatabaseId" + ], + "type": "object", + "properties": { + "sourceDatabaseId": { + "type": "integer", + "description": "ID of the source database to redirect the endpoint from.", + "format": "int32", + "example": 51404231 + }, + "targetDatabaseId": { + "type": "integer", + "description": "ID of the target database to redirect the endpoint to.", + "format": "int32", + "example": 51404232 + }, + "endpointTargetType": { + "type": "string", + "description": "Type of endpoint to redirect.", + "example": "public", + "enum": [ + "public", + "private" + ] + }, + "duplicateACLs": { + "type": "boolean", + "description": "Whether to duplicate the source database ACLs to the target database.", + "example": true + }, + "migrationProtection": { + "type": "boolean", + "description": "Must be explicitly set to true to start the migration. This is a protective measure to avoid accidental migrations.", + "example": true + } + }, + "description": "Dynamic endpoint redirection request" + }, "DatabaseSlowLogEntries": { "type": "object", "properties": { @@ -17481,6 +17836,44 @@ }, "description": "RedisLabs region information" }, + "EndpointRedirectionDTO": { + "type": "object", + "properties": { + "sourceEndpointName": { + "type": "string", + "description": "Name of the source endpoint.", + "example": "redis-12345" + }, + "targetEndpointName": { + "type": "string", + "description": "Name of the target endpoint.", + "example": "redis-12346" + }, + "sourceEndpointType": { + "type": "string", + "description": "Type of the source endpoint.", + "example": "public", + "enum": [ + "public", + "private" + ] + }, + "targetEndpointType": { + "type": "string", + "description": "Type of the target endpoint.", + "example": "public", + "enum": [ + "public", + "private" + ] + }, + "errorMessage": { + "type": "string", + "description": "Error message describing why this endpoint redirection failed, if applicable." + } + }, + "description": "Details of a single endpoint redirection." + }, "TasksStateUpdate": { "type": "object", "properties": { @@ -18142,6 +18535,7 @@ "PRIVATE_LINK_PRINCIPAL_ALREADY_EXISTS", "PRIVATE_LINK_PRINCIPAL_NOT_FOUND", "PRIVATE_LINK_PRINCIPAL_INVALID_PRINCIPLE", + "PRIVATE_LINK_PRINCIPAL_CANNOT_BE_OWNER_ACCOUNT", "PRIVATE_LINK_CLOUD_PROVIDER_NOT_SUPPORTED", "PRIVATE_LINK_GET_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", "PRIVATE_LINK_GET_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", @@ -18468,12 +18862,17 @@ "type": "object", "properties": { "public": { - "type": "string" + "type": "string", + "description": "Public dynamic endpoint of the database. This is available in private preview.", + "example": "accessible-wise-produce-60121.db-qa.redis.io:13427" }, "private": { - "type": "string" + "type": "string", + "description": "Private dynamic endpoint of the database. This is available in private preview.", + "example": "effective-ticket-plants-62093.db-qa.redis.io:13427" } - } + }, + "description": "Database dynamic endpoints. This is available in private preview." }, "CrdbFlushRequest": { "type": "object", @@ -19041,6 +19440,10 @@ "dataPersistence": "none", "replication": true, "dataEvictionPolicy": "noeviction", + "dynamicEndpoints": { + "public": "hyperclear-comparison-purpose-36067.db-qa.redis.io:12037", + "private": "mahogany-refined-system-53022.db-qa.redis.io:12037" + }, "clustering": { "enabled": false, "regexRules": [