From 3c25bf9b828294de32ffcfed08f117d2427a4ddf Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Mon, 29 Jun 2026 12:51:04 +0300 Subject: [PATCH 01/10] RDSC-5669 publish RDI Cloud API reference --- .github/workflows/rc_api_sync.yaml | 10 +- content/operate/rc/api/_index.md | 1 + .../rc/api/data-integration-api-reference.md | 8 + .../openapi.json | 3907 +++++++++++++++++ 4 files changed, 3923 insertions(+), 3 deletions(-) create mode 100644 content/operate/rc/api/data-integration-api-reference.md create mode 100644 content/operate/rc/api/data-integration-api-reference/openapi.json diff --git a/.github/workflows/rc_api_sync.yaml b/.github/workflows/rc_api_sync.yaml index a90b16545a..c415f49179 100644 --- a/.github/workflows/rc_api_sync.yaml +++ b/.github/workflows/rc_api_sync.yaml @@ -39,15 +39,19 @@ jobs: git checkout -b "${branch}" fi - curl -Ls https://api.redislabs.com/v1/cloud-api-docs \ + curl -Ls https://api.redislabs.com/v1/cloud-api-docs/capi \ | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > content/operate/rc/api/api-reference/openapi.json - spec_is_different=$(git diff content/operate/rc/api/api-reference/openapi.json) + curl -Ls https://api.redislabs.com/v1/cloud-api-docs/rdi \ + | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > content/operate/rc/api/data-integration-api-reference/openapi.json + + spec_is_different=$(git diff content/operate/rc/api/api-reference/openapi.json content/operate/rc/api/data-integration-api-reference/openapi.json) if [[ ! -z $spec_is_different ]]; then spec_change=true git add "content/operate/rc/api/api-reference/openapi.json" + git add "content/operate/rc/api/data-integration-api-reference/openapi.json" git config user.email "177626021+redisdocsapp[bot]@users.noreply.github.com" git config user.name "redisdocsapp[bot]" git commit -m "Update content/operate/rc/api/api-reference/openapi.json" @@ -67,4 +71,4 @@ jobs: --head "$branch" \ --base "main" fi - fi \ No newline at end of file + fi diff --git a/content/operate/rc/api/_index.md b/content/operate/rc/api/_index.md index ee728f981b..db79a952b4 100644 --- a/content/operate/rc/api/_index.md +++ b/content/operate/rc/api/_index.md @@ -41,4 +41,5 @@ You can use the API to: - Use the [Redis Cloud API]({{< relref "/operate/rc/api/get-started/use-rest-api.md" >}}) - [Full API Reference]({{< relref "/operate/rc/api/api-reference" >}}) +- [Data Integration API Reference]({{< relref "/operate/rc/api/data-integration-api-reference" >}}) - Secure [authentication and authorization]({{< relref "/operate/rc/api/get-started" >}}) diff --git a/content/operate/rc/api/data-integration-api-reference.md b/content/operate/rc/api/data-integration-api-reference.md new file mode 100644 index 0000000000..89d0aec7f6 --- /dev/null +++ b/content/operate/rc/api/data-integration-api-reference.md @@ -0,0 +1,8 @@ +--- +Title: Redis Cloud Data Integration API +linkTitle: Data Integration API reference +layout: apireference +type: page +params: + backLink: operate/rc/api +--- diff --git a/content/operate/rc/api/data-integration-api-reference/openapi.json b/content/operate/rc/api/data-integration-api-reference/openapi.json new file mode 100644 index 0000000000..f84dafebe7 --- /dev/null +++ b/content/operate/rc/api/data-integration-api-reference/openapi.json @@ -0,0 +1,3907 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Data Integration Workspace API", + "description": "Data Integration Workspace API", + "version": "2.2.2" + }, + "servers": [ + { + "url": "https://api.redislabs.com" + } + ], + "security": [ + { + "x-api-key": [], + "x-api-secret-key": [] + } + ], + "tags": [ + { + "name": "Workspace", + "x-order": "1", + "x-api-lifecycle": "preview" + }, + { + "name": "Tasks", + "x-order": "2", + "x-api-lifecycle": "preview" + }, + { + "name": "Secrets", + "x-order": "3", + "x-api-lifecycle": "preview" + }, + { + "name": "PrivateLink", + "x-order": "4", + "x-api-lifecycle": "preview" + }, + { + "name": "Compose", + "x-order": "5", + "x-api-lifecycle": "preview" + }, + { + "name": "RDI Core", + "description": "Data Integration (RDI) endpoints. This surface is independent of the Cloud API and versions through the RDI OpenAPI contract.\n\nRDI Core API version: 1.18.1\n", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + }, + "x-order": "6", + "x-api-lifecycle": "preview", + "x-rdi-core-api-version": "1.18.1", + "x-rdi-core-api-spec-url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/openapi.json", + "x-rdi-core-api-docs-url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + ], + "paths": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace": { + "get": { + "tags": [ + "Workspace" + ], + "operationId": "getWorkspace", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceResponse" + } + } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "Workspace" + ], + "operationId": "createWorkspace", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "Workspace" + ], + "operationId": "deleteWorkspace", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "202": { + "description": "Accepted", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/data-integration-workspaces": { + "get": { + "tags": [ + "Workspace" + ], + "operationId": "listWorkspaces", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspacesResponse" + } + } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get RDI API information", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2Info", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "List RDI pipelines", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2Pipelines", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Create an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "createRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "put": { + "tags": [ + "RDI Core" + ], + "summary": "Replace an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "replaceRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "RDI Core" + ], + "summary": "Delete an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "deleteRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "patch": { + "tags": [ + "RDI Core" + ], + "summary": "Update an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "updateRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get RDI pipeline status", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2PipelineStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Start an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "startRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Stop an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "stopRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Reset an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "resetRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "List RDI pipeline metric collections", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2MetricCollections", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get an RDI pipeline metric collection", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2MetricCollection", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "collection_name", + "in": "path", + "description": "Metric collection name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "List RDI pipeline secrets", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2PipelineSecrets", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Create an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "createRdiV2PipelineSecret", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2PipelineSecret", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "put": { + "tags": [ + "RDI Core" + ], + "summary": "Replace an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "replaceRdiV2PipelineSecret", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "RDI Core" + ], + "summary": "Delete an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "deleteRdiV2PipelineSecret", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "key", + "in": "path", + "description": "Secret key.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get RDI pipeline source schema", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2SourceSchema", + "parameters": [ + { + "name": "schemas", + "in": "query", + "description": "Comma-separated source schemas to include.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tables", + "in": "query", + "description": "Comma-separated source tables to include.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "details", + "in": "query", + "description": "Include detailed source schema metadata.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "source_name", + "in": "path", + "description": "Source name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Flush an RDI pipeline target", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "flushRdiV2Target", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "target_name", + "in": "path", + "description": "Target name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { + "get": { + "tags": [ + "Tasks" + ], + "operationId": "listTasks", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTasksResponse" + } + } + } + } + }, + "x-speakeasy-group": "tasks", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { + "get": { + "tags": [ + "Tasks" + ], + "operationId": "getTask", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "taskId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } + } + }, + "x-speakeasy-group": "tasks", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { + "get": { + "tags": [ + "PrivateLink" + ], + "operationId": "listEndpoints", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "PrivateLink" + ], + "operationId": "createEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePrivateLinkEndpointRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-speakeasy-name-override": "create-endpoint", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { + "get": { + "tags": [ + "PrivateLink" + ], + "operationId": "getEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "PrivateLink" + ], + "operationId": "deleteEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { + "post": { + "tags": [ + "PrivateLink" + ], + "operationId": "validateEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { + "post": { + "tags": [ + "PrivateLink" + ], + "operationId": "validatePrivateLink", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { + "get": { + "tags": [ + "Workspace" + ], + "operationId": "getSuggestedCidrs", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "cidr-mask", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 22 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CidrsInfoResponse" + } + } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { + "get": { + "tags": [ + "Compose" + ], + "operationId": "listDrafts", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftListResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "Compose" + ], + "operationId": "createDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftCreatedResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { + "post": { + "tags": [ + "Compose" + ], + "operationId": "mountSecretsFromPayload", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { + "post": { + "tags": [ + "Compose" + ], + "operationId": "translate", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { + "get": { + "tags": [ + "Compose" + ], + "operationId": "getDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "put": { + "tags": [ + "Compose" + ], + "operationId": "updateDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "Compose" + ], + "operationId": "deleteDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { + "get": { + "tags": [ + "Compose" + ], + "operationId": "getComposed", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RdiPatchRequest" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { + "post": { + "tags": [ + "Compose" + ], + "operationId": "validateDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RdiPipelineResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { + "post": { + "tags": [ + "Compose" + ], + "operationId": "mountSecrets", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { + "post": { + "tags": [ + "Secrets" + ], + "operationId": "validateSecret", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecretValidationRequestDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecretValidationResponseDto" + } + } + } + } + }, + "x-speakeasy-group": "secrets", + "x-speakeasy-name-override": "validate", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { + "post": { + "tags": [ + "Secrets" + ], + "operationId": "validateSingleSecret", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationRequestDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationResponseDto" + } + } + } + } + }, + "x-speakeasy-group": "secrets", + "x-api-lifecycle": "preview" + } + } + }, + "components": { + "schemas": { + "ComposeDraftAdvanced": { + "type": "object", + "properties": { + "processor": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "ComposeDraftSource": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/PostgresqlSource" + }, + { + "$ref": "#/components/schemas/MySqlSource" + }, + { + "$ref": "#/components/schemas/MariaDbSource" + }, + { + "$ref": "#/components/schemas/OracleSource" + }, + { + "$ref": "#/components/schemas/SqlServerSource" + }, + { + "$ref": "#/components/schemas/MongodbSource" + }, + { + "$ref": "#/components/schemas/SnowflakeSource" + } + ] + }, + "ComposeDraftSourceBase": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "ComposeDraftTarget": { + "type": "object", + "properties": { + "targetBdbId": { + "type": "integer", + "format": "int64" + } + } + }, + "ComposeDraftUpsertRequest": { + "type": "object", + "properties": { + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" + }, + "sourceName": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "pipelineDescription": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + } + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } + }, + "clientData": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "Job": { + "required": [ + "file", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "file": { + "type": "string" + }, + "error": { + "$ref": "#/components/schemas/WebError" + }, + "rdiJob": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "MariaDbSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "serverId": { + "type": "integer", + "format": "int32" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "MongodbSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "connectionString": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "MySqlSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "serverId": { + "type": "integer", + "format": "int32" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "OracleSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "pdb": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "PostgresqlSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "Properties": { + "type": "object" + }, + "Schema": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + } + } + } + }, + "SnowflakeSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "accountIdentifier": { + "type": "string" + }, + "warehouse": { + "type": "string" + }, + "role": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "SqlServerSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "Table": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableColumn" + } + }, + "snapshot_sql": { + "type": "string" + } + } + }, + "TableColumn": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "uniqueConstraint": { + "type": "boolean" + } + } + }, + "WebError": { + "type": "object", + "properties": { + "timestamp": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "params": { + "type": "string" + } + } + }, + "ComposeDraftResponse": { + "type": "object", + "properties": { + "draftId": { + "type": "string" + }, + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" + }, + "sourceName": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "pipelineDescription": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + } + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } + }, + "clientData": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "Advanced": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Properties" + }, + "sink": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "Aws": { + "type": "object", + "properties": { + "privateLink": { + "$ref": "#/components/schemas/PrivateLink" + } + } + }, + "Endpoint": { + "type": "object", + "properties": { + "vpceId": { + "type": "string" + } + } + }, + "Pipeline": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "deploymentCIDR": { + "type": "string" + } + } + }, + "PipelineInfraDto": { + "type": "object", + "properties": { + "pipeline": { + "$ref": "#/components/schemas/Pipeline" + }, + "aws": { + "$ref": "#/components/schemas/Aws" + }, + "source": { + "$ref": "#/components/schemas/Source" + } + } + }, + "PrivateLink": { + "type": "object", + "properties": { + "serviceName": { + "type": "string" + }, + "endpoint": { + "$ref": "#/components/schemas/Endpoint" + } + } + }, + "Source": { + "type": "object", + "properties": { + "connectivityMode": { + "type": "string", + "enum": [ + "privateLink", + "publicEndpoint" + ] + }, + "id": { + "type": "string" + }, + "dbType": { + "type": "string", + "enum": [ + "mysql", + "mariadb", + "oracle", + "sqlserver", + "postgresql", + "mongodb", + "snowflake" + ] + }, + "datasetSizeGB": { + "type": "integer", + "format": "int32" + }, + "dbSecretsARN": { + "type": "string" + }, + "dbUseTLS": { + "type": "boolean" + }, + "dbUseMTLS": { + "type": "boolean" + }, + "dbCaCertARN": { + "type": "string" + }, + "dbClientCertARN": { + "type": "string" + }, + "dbClientKeyARN": { + "type": "string" + }, + "dbClientKeyPasswordARN": { + "type": "string" + }, + "dbPort": { + "type": "integer", + "format": "int32" + }, + "dbServerId": { + "type": "integer", + "format": "int32" + }, + "dbConnectionString": { + "type": "string" + }, + "databases": { + "type": "string" + }, + "pdb": { + "type": "string" + }, + "advanced": { + "$ref": "#/components/schemas/Advanced" + }, + "dbHost": { + "type": "string" + }, + "dbUser": { + "type": "string" + }, + "dbPass": { + "type": "string" + } + } + }, + "PipelineConfigAdvanced": { + "type": "object", + "properties": { + "processor": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "PipelineConfigDto": { + "required": [ + "definitionType", + "targetDataType" + ], + "type": "object", + "properties": { + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "definitionType": { + "type": "string", + "enum": [ + "predefined", + "manual" + ] + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + } + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } + }, + "advanced": { + "$ref": "#/components/schemas/PipelineConfigAdvanced" + } + } + }, + "PipelineConfigJobsResponseDto": { + "type": "object", + "properties": { + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } + } + } + }, + "EulaAcceptanceResponseDto": { + "type": "object", + "properties": { + "accepted": { + "type": "boolean" + }, + "acceptedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "WorkspaceCreateRequest": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + } + } + }, + "TaskLink": { + "type": "object", + "properties": { + "href": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "TaskLinks": { + "type": "object", + "properties": { + "task": { + "$ref": "#/components/schemas/TaskLink" + }, + "resource": { + "$ref": "#/components/schemas/TaskLink" + } + } + }, + "WorkspaceTaskResponse": { + "type": "object", + "properties": { + "taskId": { + "type": "string" + }, + "commandType": { + "type": "string" + }, + "status": { + "type": "string" + }, + "description": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "response": { + "type": "object" + }, + "_links": { + "$ref": "#/components/schemas/TaskLinks" + } + } + }, + "SecretValidationRequestDto": { + "type": "object", + "properties": { + "credentialsSecretArn": { + "type": "string" + }, + "caCertSecretArn": { + "type": "string" + }, + "clientCertSecretArn": { + "type": "string" + }, + "clientKeySecretArn": { + "type": "string" + }, + "clientKeyPassphraseSecretArn": { + "type": "string" + } + } + }, + "SecretError": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "SecretValidationResponseDto": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SecretError" + } + } + } + }, + "SingleSecretValidationRequestDto": { + "required": [ + "purpose", + "secretArn" + ], + "type": "object", + "properties": { + "secretArn": { + "type": "string" + }, + "purpose": { + "type": "string", + "enum": [ + "source-credentials", + "source-tls-ca", + "source-mtls-client-cert", + "source-mtls-client-key", + "source-mtls-key-password" + ] + } + } + }, + "SingleSecretValidationResponseDto": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "errorCode": { + "type": "string" + }, + "error": { + "type": "string" + } + } + }, + "CreatePrivateLinkEndpointRequest": { + "required": [ + "serviceName" + ], + "type": "object", + "properties": { + "serviceName": { + "type": "string" + } + } + }, + "PrivateLinkValidationResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "error": { + "type": "string" + } + } + }, + "PrivateLinkValidationRequest": { + "required": [ + "serviceName" + ], + "type": "object", + "properties": { + "serviceName": { + "type": "string" + } + } + }, + "ComposeDraftCreatedResponse": { + "type": "object", + "properties": { + "draftId": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "PipelineComponentResponse": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ] + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + }, + "metricCollections": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RdiPipelineError": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "details": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "RdiPipelineResponse": { + "type": "object", + "properties": { + "errorOtherThanJobValidationError": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "status": { + "type": "string", + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ] + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiPipelineError" + } + }, + "components": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineComponentResponse" + } + }, + "current": { + "type": "boolean" + } + } + }, + "ComposeTranslateRequest": { + "type": "object", + "properties": { + "direction": { + "type": "string", + "enum": [ + "cloud-to-rdi", + "rdi-to-cloud" + ] + }, + "cloud": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "rdi": { + "$ref": "#/components/schemas/RdiPipelineResponse" + } + } + }, + "ComposeTranslateResponse": { + "type": "object", + "properties": { + "draft": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "rdi": { + "$ref": "#/components/schemas/RdiPatchRequest" + }, + "warnings": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RdiPatchRequest": { + "type": "object", + "properties": { + "active": { + "type": "boolean" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "PipelineCreateRequestDto": { + "required": [ + "targetBdbId" + ], + "type": "object", + "properties": { + "targetBdbId": { + "minimum": 1, + "type": "integer", + "format": "int64" + } + } + }, + "PipelineCreateResponseDto": { + "required": [ + "pipelineId" + ], + "type": "object", + "properties": { + "pipelineId": { + "type": "string" + } + } + }, + "ResetPipelineRequestDto": { + "type": "object", + "properties": { + "flush": { + "type": "boolean" + } + } + }, + "DeployPipelineRequestDto": { + "type": "object", + "properties": { + "reset": { + "$ref": "#/components/schemas/ResetPipelineRequestDto" + } + } + }, + "WorkspaceClusterRef": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + } + }, + "WorkspaceDatabaseResponse": { + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "memorySize": { + "type": "integer", + "format": "int64" + }, + "subscription": { + "$ref": "#/components/schemas/WorkspaceSubscriptionRef" + }, + "cluster": { + "$ref": "#/components/schemas/WorkspaceClusterRef" + }, + "dnsAddress": { + "type": "string" + }, + "publicDnsAddress": { + "type": "string" + }, + "sslEnabled": { + "type": "boolean" + }, + "throughput": { + "type": "integer", + "format": "int64" + }, + "defaultUser": { + "type": "boolean" + } + } + }, + "WorkspaceDatabasesResponse": { + "type": "object", + "properties": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceDatabaseResponse" + } + } + } + }, + "WorkspaceSubscriptionRef": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + } + }, + "Capabilities": { + "type": "object", + "properties": { + "validateSecrets": { + "type": "boolean" + }, + "validatePrivateLink": { + "type": "boolean" + }, + "readyForPipeline": { + "type": "boolean" + } + } + }, + "InfrastructureError": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "details": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "InfrastructureIam": { + "type": "object", + "properties": { + "privateLinkAllowedPrincipal": { + "type": "string" + }, + "secretsRoleArn": { + "type": "string" + } + } + }, + "InfrastructureResponse": { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": [ + "NotProvisioned", + "Provisioning", + "Ready", + "Deleting", + "Failed" + ] + }, + "cidr": { + "type": "string" + }, + "timestamps": { + "$ref": "#/components/schemas/InfrastructureTimestamps" + }, + "iam": { + "$ref": "#/components/schemas/InfrastructureIam" + }, + "networking": { + "$ref": "#/components/schemas/NetworkingOutput" + }, + "monitoring": { + "$ref": "#/components/schemas/MonitoringOutput" + }, + "error": { + "$ref": "#/components/schemas/InfrastructureError" + } + } + }, + "InfrastructureTimestamps": { + "type": "object", + "properties": { + "startedAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "MetricsUrls": { + "type": "object", + "properties": { + "rdiProcessorUrl": { + "type": "string" + }, + "collectorSourceUrl": { + "type": "string" + } + } + }, + "MonitoringOutput": { + "type": "object", + "properties": { + "metricsUrls": { + "$ref": "#/components/schemas/MetricsUrls" + } + } + }, + "NetworkingOutput": { + "type": "object", + "properties": { + "egressIps": { + "type": "array", + "items": { + "type": "string" + } + }, + "availabilityZones": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "WorkspaceResponse": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int64" + }, + "rcpClusterId": { + "type": "string" + }, + "region": { + "type": "string" + }, + "vpcId": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "infrastructure": { + "$ref": "#/components/schemas/InfrastructureResponse" + }, + "capabilities": { + "$ref": "#/components/schemas/Capabilities" + } + } + }, + "WorkspaceTasksResponse": { + "type": "object", + "properties": { + "tasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } + }, + "CidrsInfoResponse": { + "type": "object", + "properties": { + "usedCidrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultCidr": { + "type": "string" + }, + "nextFreeCidr": { + "type": "string" + } + } + }, + "PrivateLinkEndpointListResponse": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + } + } + } + }, + "PrivateLinkEndpointResponse": { + "type": "object", + "properties": { + "endpointId": { + "type": "string" + }, + "type": { + "type": "string" + }, + "state": { + "type": "string" + }, + "network": { + "$ref": "#/components/schemas/PrivateLinkNetwork" + }, + "error": { + "$ref": "#/components/schemas/PrivateLinkError" + } + } + }, + "PrivateLinkError": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "PrivateLinkNetwork": { + "type": "object", + "properties": { + "serviceName": { + "type": "string" + }, + "vpceId": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "ComposeDraftListResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComposeDraftSummaryResponse" + } + } + } + }, + "ComposeDraftSourceSummary": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "ComposeDraftSummaryResponse": { + "type": "object", + "properties": { + "draftId": { + "type": "string" + }, + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSourceSummary" + } + } + }, + "SearchPipeline": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "bdbId": { + "type": "integer", + "format": "int64" + } + } + }, + "SearchPipelinesResponseDto": { + "type": "object", + "properties": { + "pipelines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchPipeline" + } + } + } + }, + "GetPipelineResponseDto": { + "required": [ + "id", + "status" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "draft", + "pipeline-setup-pending", + "pl-initialized", + "pl-approval-pending", + "pl-failed", + "pl-created", + "infra-provision-initialized", + "infra-provisioned", + "infra-provision-failed", + "rdi-deploy-initialized", + "rdi-deployed", + "rdi-deploy-failed", + "rdi-healthy", + "rdi-health-check-failed", + "target-db-connection-test-initialized", + "target-db-connection-test-failed", + "target-db-connection-test-success", + "source-db-connection-test-initialized", + "source-db-connection-test-failed", + "source-db-connection-test-success", + "pipeline-deploy-initialized", + "pipeline-deploy-failed", + "inactive", + "active", + "delete-pending", + "delete-failed", + "delete-success" + ] + }, + "error": { + "$ref": "#/components/schemas/PipelineError" + } + } + }, + "PipelineError": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "PipelineRuntimeStatusResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "validating", + "stopping", + "starting", + "resetting", + "ready", + "not-ready", + "stopped" + ] + }, + "state": { + "type": "string", + "enum": [ + "not-running", + "cdc", + "initial-sync" + ] + }, + "pipelineStatus": { + "type": "string", + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ] + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineStatusErrorDto" + } + } + } + }, + "PipelineStatusErrorDto": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "DataStreamDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "total": { + "type": "integer", + "format": "int32" + }, + "pending": { + "type": "integer", + "format": "int32" + }, + "inserted": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "integer", + "format": "int32" + }, + "deleted": { + "type": "integer", + "format": "int32" + }, + "filtered": { + "type": "integer", + "format": "int32" + }, + "rejected": { + "type": "integer", + "format": "int32" + }, + "deduplicated": { + "type": "integer", + "format": "int32" + }, + "lastArrival": { + "type": "string" + } + } + }, + "PipelineRuntimeStatsResponseDto": { + "type": "object", + "properties": { + "lastRetrieved": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "type": { + "type": "string" + }, + "status": { + "type": "string" + }, + "sourceType": { + "type": "string" + }, + "totals": { + "$ref": "#/components/schemas/DataStreamDto" + }, + "dataStreams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataStreamDto" + } + } + } + }, + "CidrsInfoDto": { + "type": "object", + "properties": { + "usedCidrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultCidr": { + "type": "string" + }, + "nextFreeCidr": { + "type": "string" + } + } + }, + "GetPipelinePrerequisitesResponseDto": { + "type": "object", + "properties": { + "privateLinkAllowedPrincipal": { + "type": "string" + }, + "sourceDbTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + } + }, + "targetTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + } + }, + "cidrsInfo": { + "$ref": "#/components/schemas/CidrsInfoDto" + }, + "pipelineSecretAllowedRole": { + "type": "string" + } + } + }, + "TypeResponseDto": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "label": { + "type": "string" + } + } + }, + "PipelineMetricsUrlsResponseDto": { + "type": "object", + "properties": { + "rdiProcessorUrl": { + "type": "string" + }, + "collectorSourceUrl": { + "type": "string" + } + } + }, + "SourceSchemasResponseDto": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SchemaDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableDto" + } + } + } + }, + "SourceMetadataResponseDto": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaDto" + } + } + } + }, + "TableColumnDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "primaryKey": { + "type": "boolean" + }, + "uniqueConstraint": { + "type": "boolean" + } + } + }, + "TableDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "cdcReady": { + "type": "boolean" + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableColumnDto" + } + } + } + }, + "WorkspacesResponse": { + "type": "object", + "properties": { + "workspaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceResponse" + } + } + } + }, + "BdbPipelinesResponseDto": { + "type": "object", + "properties": { + "pipelineIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "securitySchemes": { + "x-api-key": { + "type": "apiKey", + "name": "x-api-key", + "in": "header" + }, + "x-api-secret-key": { + "type": "apiKey", + "name": "x-api-secret-key", + "in": "header" + } + } + } +} From 8c0a01de224628d0427e6f708192990db7fde6d5 Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Wed, 1 Jul 2026 10:23:42 +0300 Subject: [PATCH 02/10] RDSC-5669 refresh RDI API reference --- .../openapi.json | 2343 ++++++++++++++--- 1 file changed, 1964 insertions(+), 379 deletions(-) diff --git a/content/operate/rc/api/data-integration-api-reference/openapi.json b/content/operate/rc/api/data-integration-api-reference/openapi.json index f84dafebe7..f9ce0632f1 100644 --- a/content/operate/rc/api/data-integration-api-reference/openapi.json +++ b/content/operate/rc/api/data-integration-api-reference/openapi.json @@ -2,8 +2,8 @@ "openapi": "3.0.1", "info": { "title": "Data Integration Workspace API", - "description": "Data Integration Workspace API", - "version": "2.2.2" + "version": "2.2.2", + "description": "Data Integration Workspace API" }, "servers": [ { @@ -59,9 +59,8 @@ "paths": { "/v1/subscriptions/{subscriptionId}/data-integration-workspace": { "get": { - "tags": [ - "Workspace" - ], + "summary": "Get a data integration workspace", + "description": "Returns the current data integration workspace state for the specified subscription.", "operationId": "getWorkspace", "parameters": [ { @@ -76,23 +75,85 @@ ], "responses": { "200": { - "description": "OK", + "description": "Workspace returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "workspaces", - "x-api-lifecycle": "preview" - }, - "post": { "tags": [ "Workspace" ], + "x-api-lifecycle": "preview" + }, + "post": { + "summary": "Create a data integration workspace", + "description": "Starts provisioning a data integration workspace for a subscription and returns an asynchronous task.", "operationId": "createWorkspace", "parameters": [ { @@ -117,23 +178,85 @@ }, "responses": { "202": { - "description": "Accepted", + "description": "Workspace creation accepted", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "workspaces", - "x-api-lifecycle": "preview" - }, - "delete": { "tags": [ "Workspace" ], + "x-api-lifecycle": "preview" + }, + "delete": { + "summary": "Delete a data integration workspace", + "description": "Starts deleting the data integration workspace for a subscription and returns an asynchronous task.", "operationId": "deleteWorkspace", "parameters": [ { @@ -148,50 +271,185 @@ ], "responses": { "202": { - "description": "Accepted", + "description": "Workspace deletion accepted", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], "x-api-lifecycle": "preview" } }, "/v1/data-integration-workspaces": { "get": { - "tags": [ - "Workspace" - ], + "summary": "List data integration workspaces", + "description": "Lists all data integration workspaces in the current Redis Cloud account.", "operationId": "listWorkspaces", "responses": { "200": { - "description": "OK", + "description": "Workspaces returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspacesResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "Get RDI API information", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "getRdiV2Info", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -205,9 +463,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { "parameters": [ { "name": "subscriptionId", @@ -219,16 +481,12 @@ "format": "int64" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "List RDI pipelines", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "listRdiV2Pipelines", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -242,16 +500,16 @@ } } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "post": { "tags": [ "RDI Core" ], + "x-api-lifecycle": "preview" + }, + "post": { "summary": "Create an RDI pipeline", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "createRdiV2Pipeline", + "x-speakeasy-group": "rdi", "parameters": [ { "name": "dry_run", @@ -295,9 +553,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { "parameters": [ { "name": "subscriptionId", @@ -308,17 +570,22 @@ "type": "integer", "format": "int64" } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "Get an RDI pipeline", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "getRdiV2Pipeline", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -332,16 +599,16 @@ } } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "put": { "tags": [ "RDI Core" ], + "x-api-lifecycle": "preview" + }, + "put": { "summary": "Replace an RDI pipeline", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "replaceRdiV2Pipeline", + "x-speakeasy-group": "rdi", "parameters": [ { "name": "dry_run", @@ -385,39 +652,16 @@ } } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "delete": { "tags": [ "RDI Core" ], - "summary": "Delete an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "deleteRdiV2Pipeline", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "x-speakeasy-group": "rdi", "x-api-lifecycle": "preview" }, "patch": { - "tags": [ - "RDI Core" - ], "summary": "Update an RDI pipeline", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "updateRdiV2Pipeline", + "x-speakeasy-group": "rdi", "parameters": [ { "name": "dry_run", @@ -461,9 +705,36 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" }, + "delete": { + "summary": "Delete an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "deleteRdiV2Pipeline", + "x-speakeasy-group": "rdi", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "tags": [ + "RDI Core" + ], + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { "parameters": [ { "name": "subscriptionId", @@ -484,16 +755,12 @@ "type": "string" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "Get RDI pipeline status", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "getRdiV2PipelineStatus", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -507,9 +774,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { "parameters": [ { "name": "subscriptionId", @@ -530,16 +801,12 @@ "type": "string" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { + ], "post": { - "tags": [ - "RDI Core" - ], "summary": "Start an RDI pipeline", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "startRdiV2Pipeline", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -553,9 +820,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { "parameters": [ { "name": "subscriptionId", @@ -576,16 +847,12 @@ "type": "string" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { + ], "post": { - "tags": [ - "RDI Core" - ], "summary": "Stop an RDI pipeline", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "stopRdiV2Pipeline", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -599,9 +866,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { "parameters": [ { "name": "subscriptionId", @@ -622,16 +893,12 @@ "type": "string" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { + ], "post": { - "tags": [ - "RDI Core" - ], "summary": "Reset an RDI pipeline", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "resetRdiV2Pipeline", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -645,9 +912,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { "parameters": [ { "name": "subscriptionId", @@ -668,16 +939,12 @@ "type": "string" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "List RDI pipeline metric collections", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "listRdiV2MetricCollections", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -691,9 +958,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { "parameters": [ { "name": "subscriptionId", @@ -713,17 +984,22 @@ "schema": { "type": "string" } + }, + { + "name": "collection_name", + "in": "path", + "description": "Metric collection name.", + "required": true, + "schema": { + "type": "string" + } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "Get an RDI pipeline metric collection", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "getRdiV2MetricCollection", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -737,9 +1013,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { "parameters": [ { "name": "subscriptionId", @@ -759,26 +1039,13 @@ "schema": { "type": "string" } - }, - { - "name": "collection_name", - "in": "path", - "description": "Metric collection name.", - "required": true, - "schema": { - "type": "string" - } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "List RDI pipeline secrets", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "listRdiV2PipelineSecrets", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -792,16 +1059,16 @@ } } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "post": { "tags": [ "RDI Core" ], + "x-api-lifecycle": "preview" + }, + "post": { "summary": "Create an RDI pipeline secret", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "createRdiV2PipelineSecret", + "x-speakeasy-group": "rdi", "requestBody": { "content": { "application/json": { @@ -825,9 +1092,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { "parameters": [ { "name": "subscriptionId", @@ -847,17 +1118,22 @@ "schema": { "type": "string" } + }, + { + "name": "key", + "in": "path", + "description": "Secret key.", + "required": true, + "schema": { + "type": "string" + } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "Get an RDI pipeline secret", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "getRdiV2PipelineSecret", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -871,16 +1147,16 @@ } } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "put": { "tags": [ "RDI Core" ], + "x-api-lifecycle": "preview" + }, + "put": { "summary": "Replace an RDI pipeline secret", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "replaceRdiV2PipelineSecret", + "x-speakeasy-group": "rdi", "requestBody": { "content": { "application/json": { @@ -904,16 +1180,16 @@ } } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "delete": { "tags": [ "RDI Core" ], + "x-api-lifecycle": "preview" + }, + "delete": { "summary": "Delete an RDI pipeline secret", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "deleteRdiV2PipelineSecret", + "x-speakeasy-group": "rdi", "responses": { "200": { "description": "OK", @@ -927,9 +1203,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { "parameters": [ { "name": "subscriptionId", @@ -951,24 +1231,20 @@ } }, { - "name": "key", + "name": "source_name", "in": "path", - "description": "Secret key.", + "description": "Source name.", "required": true, "schema": { "type": "string" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { + ], "get": { - "tags": [ - "RDI Core" - ], "summary": "Get RDI pipeline source schema", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "getRdiV2SourceSchema", + "x-speakeasy-group": "rdi", "parameters": [ { "name": "schemas", @@ -1011,9 +1287,13 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { "parameters": [ { "name": "subscriptionId", @@ -1035,24 +1315,20 @@ } }, { - "name": "source_name", + "name": "target_name", "in": "path", - "description": "Source name.", + "description": "Target name.", "required": true, "schema": { "type": "string" } } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { + ], "post": { - "tags": [ - "RDI Core" - ], "summary": "Flush an RDI pipeline target", "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", "operationId": "flushRdiV2Target", + "x-speakeasy-group": "rdi", "requestBody": { "content": { "application/json": { @@ -1076,45 +1352,16 @@ } } }, - "x-speakeasy-group": "rdi", + "tags": [ + "RDI Core" + ], "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "target_name", - "in": "path", - "description": "Target name.", - "required": true, - "schema": { - "type": "string" - } - } - ] + } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { "get": { - "tags": [ - "Tasks" - ], + "summary": "List workspace tasks", + "description": "Lists asynchronous workspace tasks for the specified data integration workspace.", "operationId": "listTasks", "parameters": [ { @@ -1129,25 +1376,87 @@ ], "responses": { "200": { - "description": "OK", + "description": "Workspace tasks returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTasksResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "tasks", + "tags": [ + "Tasks" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { "get": { - "tags": [ - "Tasks" - ], + "summary": "Get a workspace task", + "description": "Returns one asynchronous workspace task by task ID.", "operationId": "getTask", "parameters": [ { @@ -1170,25 +1479,87 @@ ], "responses": { "200": { - "description": "OK", + "description": "Workspace task returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "tasks", + "tags": [ + "Tasks" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { "get": { - "tags": [ - "PrivateLink" - ], + "summary": "List PrivateLink endpoints", + "description": "Lists PrivateLink endpoints for the data integration workspace in the specified subscription.", "operationId": "listEndpoints", "parameters": [ { @@ -1203,23 +1574,85 @@ ], "responses": { "200": { - "description": "OK", + "description": "PrivateLink endpoints returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "privatelink", - "x-api-lifecycle": "preview" - }, - "post": { "tags": [ "PrivateLink" ], + "x-api-lifecycle": "preview" + }, + "post": { + "summary": "Create a PrivateLink endpoint", + "description": "Starts creating a PrivateLink endpoint for the data integration workspace and returns an asynchronous task.", "operationId": "createEndpoint", "parameters": [ { @@ -1243,27 +1676,89 @@ "required": true }, "responses": { - "200": { - "description": "OK", + "202": { + "description": "PrivateLink endpoint creation accepted", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "privatelink", "x-speakeasy-name-override": "create-endpoint", + "tags": [ + "PrivateLink" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { "get": { - "tags": [ - "PrivateLink" - ], + "summary": "Get a PrivateLink endpoint", + "description": "Returns one PrivateLink endpoint by endpoint ID.", "operationId": "getEndpoint", "parameters": [ { @@ -1286,29 +1781,91 @@ ], "responses": { "200": { - "description": "OK", + "description": "PrivateLink endpoint returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkEndpointResponse" } } } - } - }, - "x-speakeasy-group": "privatelink", - "x-api-lifecycle": "preview" - }, - "delete": { - "tags": [ - "PrivateLink" - ], - "operationId": "deleteEndpoint", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], + "x-api-lifecycle": "preview" + }, + "delete": { + "summary": "Delete a PrivateLink endpoint", + "description": "Starts deleting a PrivateLink endpoint from the data integration workspace and returns an asynchronous task.", + "operationId": "deleteEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, "schema": { "type": "integer", "format": "int64" @@ -1324,26 +1881,88 @@ } ], "responses": { - "200": { - "description": "OK", + "202": { + "description": "PrivateLink endpoint deletion accepted", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { "post": { - "tags": [ - "PrivateLink" - ], + "summary": "Validate a PrivateLink endpoint", + "description": "Validates reachability for an existing PrivateLink endpoint attached to the data integration workspace.", "operationId": "validateEndpoint", "parameters": [ { @@ -1366,25 +1985,87 @@ ], "responses": { "200": { - "description": "OK", + "description": "PrivateLink endpoint validation completed", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkValidationResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { "post": { - "tags": [ - "PrivateLink" - ], + "summary": "Validate a PrivateLink service", + "description": "Validates an AWS PrivateLink endpoint service name before creating a workspace PrivateLink endpoint.", "operationId": "validatePrivateLink", "parameters": [ { @@ -1409,25 +2090,87 @@ }, "responses": { "200": { - "description": "OK", + "description": "PrivateLink service validation completed", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkValidationResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { "get": { - "tags": [ - "Workspace" - ], + "summary": "Get suggested workspace CIDRs", + "description": "Returns used CIDRs, the default CIDR, and the next free CIDR for data integration workspace provisioning.", "operationId": "getSuggestedCidrs", "parameters": [ { @@ -1452,25 +2195,87 @@ ], "responses": { "200": { - "description": "OK", + "description": "Suggested CIDRs returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/CidrsInfoResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { "get": { - "tags": [ - "Compose" - ], + "summary": "List compose drafts", + "description": "Lists compose drafts for the specified data integration workspace.", "operationId": "listDrafts", "parameters": [ { @@ -1485,23 +2290,85 @@ ], "responses": { "200": { - "description": "OK", + "description": "Compose drafts returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/ComposeDraftListResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - }, - "post": { "tags": [ "Compose" ], + "x-api-lifecycle": "preview" + }, + "post": { + "summary": "Create a compose draft", + "description": "Creates a compose draft for building or editing a data integration pipeline configuration.", "operationId": "createDraft", "parameters": [ { @@ -1524,26 +2391,88 @@ } }, "responses": { - "200": { - "description": "OK", + "201": { + "description": "Compose draft created", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/ComposeDraftCreatedResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { "post": { - "tags": [ - "Compose" - ], + "summary": "Mount compose payload secrets", + "description": "Mounts secret providers from an ad-hoc compose payload into the data integration workspace.", "operationId": "mountSecretsFromPayload", "parameters": [ { @@ -1568,18 +2497,80 @@ }, "responses": { "204": { - "description": "No Content" + "description": "Compose secrets mounted" + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { "post": { - "tags": [ - "Compose" - ], + "summary": "Translate a compose configuration", + "description": "Translates between cloud compose configuration and the RDI-native pipeline configuration format.", "operationId": "translate", "parameters": [ { @@ -1604,25 +2595,87 @@ }, "responses": { "200": { - "description": "OK", + "description": "Compose configuration translated", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/ComposeTranslateResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { "get": { - "tags": [ - "Compose" - ], + "summary": "Get a compose draft", + "description": "Returns one compose draft by draft ID.", "operationId": "getDraft", "parameters": [ { @@ -1645,23 +2698,85 @@ ], "responses": { "200": { - "description": "OK", + "description": "Compose draft returned", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/ComposeDraftResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - }, - "put": { "tags": [ "Compose" ], + "x-api-lifecycle": "preview" + }, + "put": { + "summary": "Update a compose draft", + "description": "Replaces the body of an existing compose draft.", "operationId": "updateDraft", "parameters": [ { @@ -1694,23 +2809,85 @@ }, "responses": { "200": { - "description": "OK", + "description": "Compose draft updated", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/ComposeDraftResponse" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - }, - "delete": { "tags": [ "Compose" ], + "x-api-lifecycle": "preview" + }, + "delete": { + "summary": "Delete a compose draft", + "description": "Deletes a compose draft from the data integration workspace.", "operationId": "deleteDraft", "parameters": [ { @@ -1732,20 +2909,185 @@ } ], "responses": { - "200": { - "description": "OK" + "204": { + "description": "Compose draft deleted" + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { "get": { + "summary": "Get composed RDI configuration", + "description": "Renders a compose draft as the RDI-native pipeline configuration payload.", + "operationId": "getComposed", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "RDI configuration returned", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiPatchRequest" + } + } + } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + } + }, + "x-speakeasy-group": "compose", "tags": [ "Compose" ], - "operationId": "getComposed", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { + "post": { + "summary": "Validate a compose draft", + "description": "Dry-run validates a compose draft against the RDI API without deploying the pipeline.", + "operationId": "validateDraft", "parameters": [ { "name": "subscriptionId", @@ -1767,66 +3109,87 @@ ], "responses": { "200": { - "description": "OK", + "description": "Compose draft validated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiPipelineResponse" + } + } + } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/RdiPatchRequest" + "$ref": "#/components/schemas/WebError" } } } - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { - "post": { - "tags": [ - "Compose" - ], - "operationId": "validateDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", + "502": { + "description": "Upstream service error", "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/RdiPipelineResponse" + "$ref": "#/components/schemas/WebError" } } } } }, "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { "post": { - "tags": [ - "Compose" - ], + "summary": "Mount compose draft secrets", + "description": "Mounts secret providers from a saved compose draft into the data integration workspace.", "operationId": "mountSecrets", "parameters": [ { @@ -1849,18 +3212,80 @@ ], "responses": { "204": { - "description": "No Content" + "description": "Compose draft secrets mounted" + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { "post": { - "tags": [ - "Secrets" - ], + "summary": "Validate workspace secrets", + "description": "Validates AWS Secrets Manager ARNs for source credentials and optional TLS materials used by a data integration workspace.", "operationId": "validateSecret", "parameters": [ { @@ -1885,26 +3310,88 @@ }, "responses": { "200": { - "description": "OK", + "description": "Secret validation completed", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/SecretValidationResponseDto" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "secrets", "x-speakeasy-name-override": "validate", + "tags": [ + "Secrets" + ], "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { "post": { - "tags": [ - "Secrets" - ], + "summary": "Validate one workspace secret", + "description": "Validates one AWS Secrets Manager ARN against a specific data integration secret purpose.", "operationId": "validateSingleSecret", "parameters": [ { @@ -1929,17 +3416,80 @@ }, "responses": { "200": { - "description": "OK", + "description": "Single secret validation completed", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/SingleSecretValidationResponseDto" } } } + }, + "400": { + "description": "Bad request: request or business validation failed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "403": { + "description": "Access denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "409": { + "description": "Resource conflict or invalid state transition", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } + }, + "502": { + "description": "Upstream service error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + } + } + } } }, "x-speakeasy-group": "secrets", + "tags": [ + "Secrets" + ], "x-api-lifecycle": "preview" } } @@ -2091,9 +3641,7 @@ }, "rdiJob": { "type": "object", - "additionalProperties": { - "type": "object" - } + "additionalProperties": true } } }, @@ -2334,6 +3882,23 @@ "Properties": { "type": "object" }, + "RdiPipelineError": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "details": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, "Schema": { "required": [ "name" @@ -2501,6 +4066,12 @@ }, "params": { "type": "string" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiPipelineError" + } } } }, @@ -2850,6 +4421,15 @@ }, "clientKeyPassphraseSecretArn": { "type": "string" + }, + "snowflakeCredentialsSecretArn": { + "type": "string" + }, + "snowflakePrivateKeySecretArn": { + "type": "string" + }, + "snowflakePrivateKeyPassphraseSecretArn": { + "type": "string" } } }, @@ -2895,7 +4475,10 @@ "source-tls-ca", "source-mtls-client-cert", "source-mtls-client-key", - "source-mtls-key-password" + "source-mtls-key-password", + "source-snowflake-credentials", + "source-snowflake-private-key", + "source-snowflake-key-password" ] } } @@ -3005,23 +4588,6 @@ } } }, - "RdiPipelineError": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "details": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, "RdiPipelineResponse": { "type": "object", "properties": { @@ -3246,6 +4812,9 @@ }, "readyForPipeline": { "type": "boolean" + }, + "createPrivateLink": { + "type": "boolean" } } }, @@ -3330,11 +4899,17 @@ "MetricsUrls": { "type": "object", "properties": { - "rdiProcessorUrl": { + "rdiOperatorUrl": { "type": "string" }, - "collectorSourceUrl": { + "rdiProcessorUrl": { "type": "string" + }, + "collectorSourceUrls": { + "type": "object", + "additionalProperties": { + "type": "string" + } } } }, @@ -3370,6 +4945,10 @@ "type": "integer", "format": "int64" }, + "bdbId": { + "type": "integer", + "format": "int64" + }, "rcpClusterId": { "type": "string" }, @@ -3887,6 +5466,12 @@ "items": { "type": "string" } + }, + "workspaceIds": { + "type": "array", + "items": { + "type": "string" + } } } } From be6f28d84506ef7735ee68de625edc50be94d71e Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Thu, 2 Jul 2026 09:05:26 +0300 Subject: [PATCH 03/10] RDSC-5669 merge RDI API into Cloud reference --- .github/workflows/rc_api_sync.yaml | 44 +- content/operate/rc/api/_index.md | 2 +- .../operate/rc/api/api-reference/openapi.json | 16303 +++++++++------- .../rc/api/data-integration-api-reference.md | 8 - .../openapi.json | 5492 ------ 5 files changed, 9730 insertions(+), 12119 deletions(-) delete mode 100644 content/operate/rc/api/data-integration-api-reference.md delete mode 100644 content/operate/rc/api/data-integration-api-reference/openapi.json diff --git a/.github/workflows/rc_api_sync.yaml b/.github/workflows/rc_api_sync.yaml index c415f49179..a2b4a763a9 100644 --- a/.github/workflows/rc_api_sync.yaml +++ b/.github/workflows/rc_api_sync.yaml @@ -40,18 +40,54 @@ jobs: fi curl -Ls https://api.redislabs.com/v1/cloud-api-docs/capi \ - | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > content/operate/rc/api/api-reference/openapi.json + | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > /tmp/rc-capi-openapi.json curl -Ls https://api.redislabs.com/v1/cloud-api-docs/rdi \ - | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > content/operate/rc/api/data-integration-api-reference/openapi.json + | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > /tmp/rc-rdi-openapi.json - spec_is_different=$(git diff content/operate/rc/api/api-reference/openapi.json content/operate/rc/api/data-integration-api-reference/openapi.json) + jq -n --slurpfile capi /tmp/rc-capi-openapi.json --slurpfile rdi /tmp/rc-rdi-openapi.json ' + def opkeys: ["get","put","post","delete","patch","options","head","trace"]; + def retag_rdi_paths: + with_entries( + .value |= with_entries( + if (.key as $k | opkeys | index($k)) then + .value |= (.tags = ["Subscriptions - Pro - Data Integration"]) + else + . + end + ) + ); + def without_old_rdi_proxy_paths: + with_entries( + select(.key | test("^/v1/(data-integration-workspaces|subscriptions/\\{subscriptionId\\}/data-integration-workspace)(/\\*\\*)?$") | not) + ); + def insert_rdi_tag($tags): + ($tags | map(select(.name != "Data Integration" and .name != "Subscriptions - Pro - Data Integration"))) as $base + | ($base | map(.name) | index("Subscriptions - Pro - Connectivity")) as $idx + | { + name: "Subscriptions - Pro - Data Integration", + description: "All Pro subscription Data Integration operations.", + "x-order": "12", + "x-api-lifecycle": "preview" + } as $tag + | if $idx == null then $base + [$tag] + else $base[0:($idx + 1)] + [$tag] + $base[($idx + 1):] + end; + ($capi[0]) as $c + | ($rdi[0]) as $r + | $c + | .tags = insert_rdi_tag($c.tags) + | .paths = (($c.paths | without_old_rdi_proxy_paths) + ($r.paths | retag_rdi_paths)) + | .components.schemas = (($c.components.schemas // {}) + ($r.components.schemas // {})) + | .components.securitySchemes = (($c.components.securitySchemes // {}) + ($r.components.securitySchemes // {})) + ' > content/operate/rc/api/api-reference/openapi.json + + spec_is_different=$(git diff content/operate/rc/api/api-reference/openapi.json) if [[ ! -z $spec_is_different ]]; then spec_change=true git add "content/operate/rc/api/api-reference/openapi.json" - git add "content/operate/rc/api/data-integration-api-reference/openapi.json" git config user.email "177626021+redisdocsapp[bot]@users.noreply.github.com" git config user.name "redisdocsapp[bot]" git commit -m "Update content/operate/rc/api/api-reference/openapi.json" diff --git a/content/operate/rc/api/_index.md b/content/operate/rc/api/_index.md index db79a952b4..0fb5a4a050 100644 --- a/content/operate/rc/api/_index.md +++ b/content/operate/rc/api/_index.md @@ -41,5 +41,5 @@ You can use the API to: - Use the [Redis Cloud API]({{< relref "/operate/rc/api/get-started/use-rest-api.md" >}}) - [Full API Reference]({{< relref "/operate/rc/api/api-reference" >}}) -- [Data Integration API Reference]({{< relref "/operate/rc/api/data-integration-api-reference" >}}) +- [Data Integration API Reference]({{< relref "/operate/rc/api/api-reference" >}}#tag/Subscriptions-Pro-Data-Integration) - Secure [authentication and authorization]({{< relref "/operate/rc/api/get-started" >}}) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index ec439c8c52..02f5d925f5 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -42,6 +42,12 @@ "description": "All Pro subscription connectivity operations.", "x-order": "11" }, + { + "name": "Subscriptions - Pro - Data Integration", + "description": "All Pro subscription Data Integration operations.", + "x-order": "12", + "x-api-lifecycle": "preview" + }, { "name": "Databases - Pro", "description": "All Pro database operations.", @@ -79,32 +85,24 @@ } ], "paths": { - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/**": { + "/v1/users/{userId}": { "get": { "tags": [ - "Data Integration" + "Users" ], - "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", + "summary": "Get a single user", + "description": "Gets details about a single account user.", + "operationId": "getUserById", "parameters": [ { - "name": "subscriptionId", + "name": "userId", "in": "path", - "description": "Subscription ID.", + "description": "User ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "requestBody", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/JsonNode" - } } ], "responses": { @@ -119,7 +117,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/AccountUser" } } } @@ -133,12 +131,6 @@ "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)" }, @@ -152,16 +144,16 @@ }, "put": { "tags": [ - "Data Integration" + "Users" ], - "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", + "summary": "Update a user", + "description": "Updates an account user's name or role.", + "operationId": "updateUser", "parameters": [ { - "name": "subscriptionId", + "name": "userId", "in": "path", - "description": "Subscription ID.", + "description": "User ID.", "required": true, "schema": { "type": "integer", @@ -173,10 +165,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/AccountUserUpdateRequest" } } - } + }, + "required": true }, "responses": { "400": { @@ -190,7 +183,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -221,18 +214,18 @@ } } }, - "post": { + "delete": { "tags": [ - "Data Integration" + "Users" ], - "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", + "summary": "Delete user", + "description": "Deletes a user from this account.", + "operationId": "deleteUserById", "parameters": [ { - "name": "subscriptionId", + "name": "userId", "in": "path", - "description": "Subscription ID.", + "description": "User ID.", "required": true, "schema": { "type": "integer", @@ -240,15 +233,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -261,7 +245,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -291,14 +275,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}": { + "get": { "tags": [ - "Data Integration" + "Subscriptions - Pro" ], - "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", + "summary": "Get a single Pro subscription", + "description": "Gets information on the specified Pro subscription.", + "operationId": "getSubscriptionById", "parameters": [ { "name": "subscriptionId", @@ -311,15 +297,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -332,7 +309,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/Subscription" } } } @@ -346,12 +323,6 @@ "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)" }, @@ -363,13 +334,13 @@ } } }, - "patch": { + "put": { "tags": [ - "Data Integration" + "Subscriptions - Pro" ], - "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", + "summary": "Update Pro subscription", + "description": "Updates the specified Pro subscription.", + "operationId": "updateSubscription", "parameters": [ { "name": "subscriptionId", @@ -386,10 +357,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/BaseSubscriptionUpdateRequest" } } - } + }, + "required": true }, "responses": { "400": { @@ -403,7 +375,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -433,16 +405,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace": { - "get": { + }, + "delete": { "tags": [ - "Data Integration" + "Subscriptions - Pro" ], - "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", + "summary": "Delete Pro subscription", + "description": "Delete the specified Pro subscription. All databases in the subscription must be deleted before deleting it.", + "operationId": "deleteSubscriptionById", "parameters": [ { "name": "subscriptionId", @@ -453,14 +423,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "requestBody", - "in": "query", - "required": true, - "schema": { - "$ref": "#/components/schemas/JsonNode" - } } ], "responses": { @@ -475,7 +437,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -505,14 +467,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, + } + }, + "/v1/subscriptions/{subscriptionId}/transitGateways/{TgwId}/attachment": { "put": { "tags": [ - "Data Integration" + "Subscriptions - Pro - Connectivity" ], - "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", + "summary": "Update a transit gateway attachment", + "description": "Updates the specified AWS transit gateway attachment.", + "operationId": "updateTgwAttachmentCidrs", "parameters": [ { "name": "subscriptionId", @@ -523,16 +487,27 @@ "type": "integer", "format": "int32" } + }, + { + "name": "TgwId", + "in": "path", + "description": "AWS transit gateway ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TgwUpdateCidrsRequest" } } - } + }, + "required": true }, "responses": { "400": { @@ -541,12 +516,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -579,11 +554,11 @@ }, "post": { "tags": [ - "Data Integration" + "Subscriptions - Pro - Connectivity" ], - "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", + "summary": "Create a transit gateway attachment", + "description": "Creates an AWS transit gateway attachment.", + "operationId": "createTgwAttachment", "parameters": [ { "name": "subscriptionId", @@ -594,17 +569,18 @@ "type": "integer", "format": "int32" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } + }, + { + "name": "TgwId", + "in": "path", + "description": "AWS transit gateway ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } } - }, + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -612,12 +588,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -626,7 +602,7 @@ "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)" + "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" @@ -635,7 +611,10 @@ "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)" + "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)" @@ -650,11 +629,11 @@ }, "delete": { "tags": [ - "Data Integration" + "Subscriptions - Pro - Connectivity" ], - "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", + "summary": "Delete a transit gateway attachment", + "description": "Deletes the specified AWS transit gateway attachment.", + "operationId": "deleteTgwAttachment", "parameters": [ { "name": "subscriptionId", @@ -665,17 +644,18 @@ "type": "integer", "format": "int32" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } + }, + { + "name": "TgwId", + "in": "path", + "description": "AWS transit gateway ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } } - }, + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -683,12 +663,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -718,14 +698,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "patch": { + } + }, + "/v1/subscriptions/{subscriptionId}/transitGateways/invitations/{tgwInvitationId}/reject": { + "put": { "tags": [ - "Data Integration" + "Subscriptions - Pro - Connectivity" ], - "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", + "summary": "Reject a transit gateway resource share", + "description": "Rejects the specified AWS transit gateway resource share.", + "operationId": "rejectTgwResourceShare", "parameters": [ { "name": "subscriptionId", @@ -736,17 +718,18 @@ "type": "integer", "format": "int32" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } + }, + { + "name": "tgwInvitationId", + "in": "path", + "description": "AWS transit gateway invitation ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } } - }, + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -754,12 +737,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -791,19 +774,29 @@ } } }, - "/v1/users/{userId}": { - "get": { + "/v1/subscriptions/{subscriptionId}/transitGateways/invitations/{tgwInvitationId}/accept": { + "put": { "tags": [ - "Users" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get a single user", - "description": "Gets details about a single account user.", - "operationId": "getUserById", + "summary": "Accept a transit gateway resource share", + "description": "Accepts the specified AWS transit gateway resource share.", + "operationId": "acceptTgwResourceShare", "parameters": [ { - "name": "userId", + "name": "subscriptionId", "in": "path", - "description": "User ID.", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tgwInvitationId", + "in": "path", + "description": "AWS transit gateway invitation ID.", "required": true, "schema": { "type": "integer", @@ -818,12 +811,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountUser" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -837,6 +830,12 @@ "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)" }, @@ -847,19 +846,21 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, + } + }, + "/v1/subscriptions/{subscriptionId}/resource-tags": { "put": { "tags": [ - "Users" + "Subscriptions - Pro" ], - "summary": "Update a user", - "description": "Updates an account user's name or role.", - "operationId": "updateUser", + "summary": "Update Pro subscription resource tags", + "description": "Updates the resource tags for the specified Pro subscription. This replaces all existing tags with the provided tags.", + "operationId": "updateSubscriptionResourceTags", "parameters": [ { - "name": "userId", + "name": "subscriptionId", "in": "path", - "description": "User ID.", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -871,7 +872,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountUserUpdateRequest" + "$ref": "#/components/schemas/SubscriptionResourceTagsUpdateRequest" } } }, @@ -884,8 +885,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -919,19 +920,42 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/{TgwId}/attachment": { + "put": { "tags": [ - "Users" + "Subscriptions - Pro - Connectivity" ], - "summary": "Delete user", - "description": "Deletes a user from this account.", - "operationId": "deleteUserById", + "summary": "Update a specific region transit gateway attachment", + "description": "(Active-Active subscriptions only) Updates the specified AWS transit gateway attachment for one region in an Active-Active subscription.", + "operationId": "updateActiveActiveTgwAttachmentCidrs", "parameters": [ { - "name": "userId", + "name": "subscriptionId", "in": "path", - "description": "User ID.", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + }, + { + "name": "TgwId", + "in": "path", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -939,6 +963,16 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActiveActiveTgwUpdateCidrsRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -946,8 +980,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -981,16 +1015,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}": { - "get": { + }, + "post": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get a single Pro subscription", - "description": "Gets information on the specified Pro subscription.", - "operationId": "getSubscriptionById", + "summary": "Create a transit gateway attachment for a specific region", + "description": "(Active-Active subscriptions only) Creates an AWS transit gateway attachment for one region in an Active-Active subscription.", + "operationId": "createActiveActiveTgwAttachment", "parameters": [ { "name": "subscriptionId", @@ -1001,57 +1033,22 @@ "type": "integer", "format": "int32" } - } - ], - "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/Subscription" - } - } - } - }, - "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" + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 }, - "503": { - "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " - } - } - }, - "put": { - "tags": [ - "Subscriptions - Pro" - ], - "summary": "Update Pro subscription", - "description": "Updates the specified Pro subscription.", - "operationId": "updateSubscription", - "parameters": [ { - "name": "subscriptionId", + "name": "TgwId", "in": "path", - "description": "Subscription ID.", + "description": "AWS transit gateway ID.", "required": true, "schema": { "type": "integer", @@ -1059,16 +1056,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BaseSubscriptionUpdateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -1076,8 +1063,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -1090,7 +1077,7 @@ "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)" + "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" @@ -1099,7 +1086,10 @@ "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)" + "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)" @@ -1114,11 +1104,11 @@ }, "delete": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Delete Pro subscription", - "description": "Delete the specified Pro subscription. All databases in the subscription must be deleted before deleting it.", - "operationId": "deleteSubscriptionById", + "summary": "Delete a transit gateway attachment for a specific region", + "description": "(Active-Active subscriptions only) Deletes the specified AWS transit gateway attachment for one region in an Active-Active subscription.", + "operationId": "deleteActiveActiveTgwAttachment", "parameters": [ { "name": "subscriptionId", @@ -1129,6 +1119,27 @@ "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + }, + { + "name": "TgwId", + "in": "path", + "description": "AWS transit gateway ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -1138,8 +1149,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -1175,14 +1186,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/transitGateways/{TgwId}/attachment": { + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations/{tgwInvitationId}/accept": { "put": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Update a transit gateway attachment", - "description": "Updates the specified AWS transit gateway attachment.", - "operationId": "updateTgwAttachmentCidrs", + "summary": "Accept a transit gateway resource share for a specific region", + "description": "(Active-Active subscriptions only) Accepts the specified AWS transit gateway resource share for one region in an Active-Active subscription.", + "operationId": "acceptActiveActiveTgwResourceShare", "parameters": [ { "name": "subscriptionId", @@ -1195,9 +1206,20 @@ } }, { - "name": "TgwId", + "name": "regionId", "in": "path", - "description": "AWS transit gateway ID.", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + }, + { + "name": "tgwInvitationId", + "in": "path", + "description": "AWS transit gateway invitation ID.", "required": true, "schema": { "type": "integer", @@ -1205,16 +1227,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TgwUpdateCidrsRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -1257,14 +1269,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}": { + "put": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create a transit gateway attachment", - "description": "Creates an AWS transit gateway attachment.", - "operationId": "createTgwAttachment", + "summary": "Update a Private Service Connect endpoint for a single region", + "description": "(Active-Active subscriptions only) Updates a Private Service Connect endpoint for a single region in an Active-Active subscription.", + "operationId": "updateActiveActivePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", @@ -1277,9 +1291,29 @@ } }, { - "name": "TgwId", + "name": "pscServiceId", "in": "path", - "description": "AWS transit gateway ID.", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -1287,6 +1321,16 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActiveActivePscEndpointUpdateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -1308,7 +1352,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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" @@ -1317,10 +1361,7 @@ "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" + "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)" @@ -1337,9 +1378,9 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete a transit gateway attachment", - "description": "Deletes the specified AWS transit gateway attachment.", - "operationId": "deleteTgwAttachment", + "summary": "Delete a Private Service Connect endpoint for a single region", + "description": "(Active-Active subscriptions only) Deletes the specified Private Service Connect endpoint for a single region in an Active-Active subscription.", + "operationId": "deleteActiveActivePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", @@ -1352,9 +1393,29 @@ } }, { - "name": "TgwId", + "name": "pscServiceId", "in": "path", - "description": "AWS transit gateway ID.", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -1406,14 +1467,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/transitGateways/invitations/{tgwInvitationId}/reject": { + "/v1/subscriptions/{subscriptionId}/regions/peerings/{peeringId}": { "put": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Reject a transit gateway resource share", - "description": "Rejects the specified AWS transit gateway resource share.", - "operationId": "rejectTgwResourceShare", + "summary": "Update Active-Active VPC peering", + "description": "(Active-Active subscriptions only) Updates VPC peering for Active-Active subscription.", + "operationId": "updateActiveActiveVpcPeering", "parameters": [ { "name": "subscriptionId", @@ -1426,9 +1487,9 @@ } }, { - "name": "tgwInvitationId", + "name": "peeringId", "in": "path", - "description": "AWS transit gateway invitation ID.", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1436,6 +1497,22 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringUpdateAwsRequest" + }, + "example": { + "vpcCidrs": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ] + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -1443,8 +1520,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -1478,16 +1555,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/transitGateways/invitations/{tgwInvitationId}/accept": { - "put": { + }, + "delete": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Accept a transit gateway resource share", - "description": "Accepts the specified AWS transit gateway resource share.", - "operationId": "acceptTgwResourceShare", + "summary": "Delete Active-Active VPC peering", + "description": "(Active-Active subscriptions only) Deletes VPC peering for an Active-Active subscription.", + "operationId": "deleteActiveActiveVpcPeering", "parameters": [ { "name": "subscriptionId", @@ -1500,9 +1575,9 @@ } }, { - "name": "tgwInvitationId", + "name": "peeringId", "in": "path", - "description": "AWS transit gateway invitation ID.", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1517,8 +1592,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -1554,14 +1629,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/resource-tags": { + "/v1/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}": { "put": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Update Pro subscription resource tags", - "description": "Updates the resource tags for the specified Pro subscription. This replaces all existing tags with the provided tags.", - "operationId": "updateSubscriptionResourceTags", + "summary": "Update a Private Service Connect endpoint", + "description": "Updates the specified Private Service Connect endpoint.", + "operationId": "updatePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", @@ -1572,13 +1647,33 @@ "type": "integer", "format": "int32" } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionResourceTagsUpdateRequest" + "$ref": "#/components/schemas/PscEndpointUpdateRequest" } } }, @@ -1626,16 +1721,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/{TgwId}/attachment": { - "put": { + }, + "delete": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Update a specific region transit gateway attachment", - "description": "(Active-Active subscriptions only) Updates the specified AWS transit gateway attachment for one region in an Active-Active subscription.", - "operationId": "updateActiveActiveTgwAttachmentCidrs", + "summary": "Delete a Private Service Connect endpoint", + "description": "Deletes the specified Private Service Connect endpoint.", + "operationId": "deletePscServiceEndpoint", "parameters": [ { "name": "subscriptionId", @@ -1648,20 +1741,19 @@ } }, { - "name": "regionId", + "name": "pscServiceId", "in": "path", - "description": "Region ID - required for Active-Active subscription", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", "format": "int32" - }, - "example": 1 + } }, { - "name": "TgwId", + "name": "endpointId", "in": "path", - "description": "AWS transit gateway ID.", + "description": "Private Service Connect endpoint ID.", "required": true, "schema": { "type": "integer", @@ -1669,16 +1761,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ActiveActiveTgwUpdateCidrsRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -1721,14 +1803,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/subscriptions/{subscriptionId}/peerings/{peeringId}": { + "put": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create a transit gateway attachment for a specific region", - "description": "(Active-Active subscriptions only) Creates an AWS transit gateway attachment for one region in an Active-Active subscription.", - "operationId": "createActiveActiveTgwAttachment", + "summary": "Update VPC peering", + "description": "Updates VPC peering for the specified subscription.", + "operationId": "updateVpcPeering", "parameters": [ { "name": "subscriptionId", @@ -1741,20 +1825,9 @@ } }, { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 - }, - { - "name": "TgwId", + "name": "peeringId", "in": "path", - "description": "AWS transit gateway ID.", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1762,6 +1835,22 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VpcPeeringUpdateAwsRequest" + }, + "example": { + "vpcCidrs": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ] + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -1783,7 +1872,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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" @@ -1792,10 +1881,7 @@ "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" + "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)" @@ -1812,9 +1898,9 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete a transit gateway attachment for a specific region", - "description": "(Active-Active subscriptions only) Deletes the specified AWS transit gateway attachment for one region in an Active-Active subscription.", - "operationId": "deleteActiveActiveTgwAttachment", + "summary": "Delete VPC peering", + "description": "Deletes the specified VPC peering.", + "operationId": "deleteVpcPeering", "parameters": [ { "name": "subscriptionId", @@ -1827,20 +1913,9 @@ } }, { - "name": "regionId", + "name": "peeringId", "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 - }, - { - "name": "TgwId", - "in": "path", - "description": "AWS transit gateway ID.", + "description": "VPC Peering ID.", "required": true, "schema": { "type": "integer", @@ -1892,14 +1967,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations/{tgwInvitationId}/accept": { - "put": { + "/v1/subscriptions/{subscriptionId}/maintenance-windows": { + "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Subscriptions - Pro" ], - "summary": "Accept a transit gateway resource share for a specific region", - "description": "(Active-Active subscriptions only) Accepts the specified AWS transit gateway resource share for one region in an Active-Active subscription.", - "operationId": "acceptActiveActiveTgwResourceShare", + "summary": "Get Pro subscription maintenance windows", + "description": "Gets maintenance windows for the specified Pro subscription.", + "operationId": "getSubscriptionMaintenanceWindows", "parameters": [ { "name": "subscriptionId", @@ -1910,27 +1985,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 - }, - { - "name": "tgwInvitationId", - "in": "path", - "description": "AWS transit gateway invitation ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -1940,12 +1994,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/SubscriptionMaintenanceWindows" } } } @@ -1959,12 +2013,6 @@ "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)" }, @@ -1975,16 +2023,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}": { + }, "put": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Subscriptions - Pro" ], - "summary": "Update a Private Service Connect endpoint for a single region", - "description": "(Active-Active subscriptions only) Updates a Private Service Connect endpoint for a single region in an Active-Active subscription.", - "operationId": "updateActiveActivePscServiceEndpoint", + "summary": "Update Pro subscription maintenance windows", + "description": "Updates maintenance windows for the specified Pro subscription.", + "operationId": "updateSubscriptionMaintenanceWindows", "parameters": [ { "name": "subscriptionId", @@ -1995,43 +2041,13 @@ "type": "integer", "format": "int32" } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", - "in": "path", - "description": "Private Service Connect endpoint ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActiveActivePscEndpointUpdateRequest" + "$ref": "#/components/schemas/SubscriptionMaintenanceWindowsSpec" } } }, @@ -2044,8 +2060,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -2079,14 +2095,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}": { + "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Delete a Private Service Connect endpoint for a single region", - "description": "(Active-Active subscriptions only) Deletes the specified Private Service Connect endpoint for a single region in an Active-Active subscription.", - "operationId": "deleteActiveActivePscServiceEndpoint", + "summary": "Get a single Pro database", + "description": "Gets details and settings of a single database in a Pro subscription.", + "operationId": "getSubscriptionDatabaseByID", "parameters": [ { "name": "subscriptionId", @@ -2094,36 +2112,18 @@ "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } }, { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", + "name": "databaseId", "in": "path", - "description": "Private Service Connect endpoint ID.", + "description": "Database ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } @@ -2136,12 +2136,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/Database" } } } @@ -2155,12 +2155,6 @@ "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)" }, @@ -2171,16 +2165,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/regions/peerings/{peeringId}": { + }, "put": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Update Active-Active VPC peering", - "description": "(Active-Active subscriptions only) Updates VPC peering for Active-Active subscription.", - "operationId": "updateActiveActiveVpcPeering", + "summary": "Update Pro database", + "description": "Updates an existing Pro database.", + "operationId": "updateDatabase", "parameters": [ { "name": "subscriptionId", @@ -2193,9 +2185,9 @@ } }, { - "name": "peeringId", + "name": "databaseId", "in": "path", - "description": "VPC Peering ID.", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2207,12 +2199,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringUpdateAwsRequest" + "$ref": "#/components/schemas/DatabaseUpdateRequest" }, "example": { - "vpcCidrs": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" + "dryRun": false, + "name": "Redis-database-example", + "datasetSizeInGb": 5, + "throughputMeasurement": { + "by": "operations-per-second", + "value": 10000 + }, + "dataPersistence": "none", + "dataEvictionPolicy": "allkeys-lru", + "alerts": [ + { + "name": "dataset-size", + "value": 85 + } ] } } @@ -2264,11 +2267,11 @@ }, "delete": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Delete Active-Active VPC peering", - "description": "(Active-Active subscriptions only) Deletes VPC peering for an Active-Active subscription.", - "operationId": "deleteActiveActiveVpcPeering", + "summary": "Delete Pro database", + "description": "Deletes a database from a Pro subscription.", + "operationId": "deleteDatabaseById", "parameters": [ { "name": "subscriptionId", @@ -2281,9 +2284,9 @@ } }, { - "name": "peeringId", + "name": "databaseId", "in": "path", - "description": "VPC Peering ID.", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2335,14 +2338,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}": { - "put": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/tags": { + "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Update a Private Service Connect endpoint", - "description": "Updates the specified Private Service Connect endpoint.", - "operationId": "updatePscServiceEndpoint", + "summary": "Get database tags", + "description": "Gets a list of all database tags.", + "operationId": "getTags", "parameters": [ { "name": "subscriptionId", @@ -2355,19 +2358,9 @@ } }, { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", + "name": "databaseId", "in": "path", - "description": "Private Service Connect endpoint ID.", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2375,16 +2368,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PscEndpointUpdateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -2392,12 +2375,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTags" } } } @@ -2411,12 +2394,6 @@ "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)" }, @@ -2428,13 +2405,13 @@ } } }, - "delete": { + "put": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Delete a Private Service Connect endpoint", - "description": "Deletes the specified Private Service Connect endpoint.", - "operationId": "deletePscServiceEndpoint", + "summary": "Overwrite database tags", + "description": "Overwrites all tags on the database.", + "operationId": "updateTags", "parameters": [ { "name": "subscriptionId", @@ -2447,19 +2424,9 @@ } }, { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", + "name": "databaseId", "in": "path", - "description": "Private Service Connect endpoint ID.", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2467,6 +2434,16 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DatabaseTagsUpdateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -2474,12 +2451,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTags" } } } @@ -2509,16 +2486,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/peerings/{peeringId}": { - "put": { + }, + "post": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Update VPC peering", - "description": "Updates VPC peering for the specified subscription.", - "operationId": "updateVpcPeering", + "summary": "Add a database tag", + "description": "Adds a single database tag to a database.", + "operationId": "createTag", "parameters": [ { "name": "subscriptionId", @@ -2531,9 +2506,9 @@ } }, { - "name": "peeringId", + "name": "databaseId", "in": "path", - "description": "VPC Peering ID.", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -2545,13 +2520,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VpcPeeringUpdateAwsRequest" - }, - "example": { - "vpcCidrs": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ] + "$ref": "#/components/schemas/DatabaseTagCreateRequest" } } }, @@ -2564,12 +2533,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTag" } } } @@ -2578,7 +2547,7 @@ "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)" + "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" @@ -2587,7 +2556,10 @@ "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)" + "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)" @@ -2599,14 +2571,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/tags/{tagKey}": { + "put": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Delete VPC peering", - "description": "Deletes the specified VPC peering.", - "operationId": "deleteVpcPeering", + "summary": "Update database tag value", + "description": "Updates the value of the specified database tag.", + "operationId": "updateTag", "parameters": [ { "name": "subscriptionId", @@ -2619,16 +2593,35 @@ } }, { - "name": "peeringId", + "name": "databaseId", "in": "path", - "description": "VPC Peering ID.", + "description": "Database ID.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "tagKey", + "in": "path", + "description": "Tag Key.", + "required": true, + "schema": { + "type": "string" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DatabaseTagUpdateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -2636,12 +2629,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTag" } } } @@ -2671,16 +2664,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/maintenance-windows": { - "get": { + }, + "delete": { "tags": [ - "Subscriptions - Pro" + "Databases - Pro" ], - "summary": "Get Pro subscription maintenance windows", - "description": "Gets maintenance windows for the specified Pro subscription.", - "operationId": "getSubscriptionMaintenanceWindows", + "summary": "Delete database tag", + "description": "Removes the specified tag from the database.", + "operationId": "deleteTag", "parameters": [ { "name": "subscriptionId", @@ -2691,6 +2682,26 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tagKey", + "in": "path", + "description": "Tag Key.", + "required": true, + "schema": { + "type": "string" + }, + "example": "environment" } ], "responses": { @@ -2705,7 +2716,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionMaintenanceWindows" + "type": "object" } } } @@ -2719,6 +2730,12 @@ "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)" }, @@ -2729,14 +2746,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, + } + }, + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/regions": { "put": { "tags": [ - "Subscriptions - Pro" + "Databases - Pro" ], - "summary": "Update Pro subscription maintenance windows", - "description": "Updates maintenance windows for the specified Pro subscription.", - "operationId": "updateSubscriptionMaintenanceWindows", + "summary": "Update Active-Active database", + "description": "(Active-Active databases only) Updates database properties for an Active-Active database.", + "operationId": "updateCrdbLocalProperties", "parameters": [ { "name": "subscriptionId", @@ -2747,13 +2766,43 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionMaintenanceWindowsSpec" + "$ref": "#/components/schemas/CrdbUpdatePropertiesRequest" + }, + "example": { + "datasetSizeInGb": 5, + "regions": [ + { + "region": "us-east-1", + "localThroughputMeasurement": { + "region": "us-east-1", + "writeOperationsPerSecond": 1000, + "readOperationsPerSecond": 2000 + }, + "alerts": [ + { + "name": "dataset-size", + "value": 80 + } + ] + } + ], + "dataEvictionPolicy": "allkeys-lru" } } }, @@ -2803,14 +2852,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}": { - "get": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/flush": { + "put": { "tags": [ "Databases - Pro" ], - "summary": "Get a single Pro database", - "description": "Gets details and settings of a single database in a Pro subscription.", - "operationId": "getSubscriptionDatabaseByID", + "summary": "Flush Pro database", + "description": "Deletes all data from the specified Pro database.", + "operationId": "flushCrdb", "parameters": [ { "name": "subscriptionId", @@ -2818,7 +2867,6 @@ "description": "Subscription ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } @@ -2829,12 +2877,21 @@ "description": "Database ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CrdbFlushRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -2847,7 +2904,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Database" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -2861,6 +2918,12 @@ "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)" }, @@ -2871,14 +2934,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "put": { + } + }, + "/v1/subscriptions/{subscriptionId}/cidr": { + "get": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro" ], - "summary": "Update Pro database", - "description": "Updates an existing Pro database.", - "operationId": "updateDatabase", + "summary": "Get Pro subscription CIDR whitelist", + "description": "(Bring your own Cloud only) Gets a Pro subscription's CIDR whitelist. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getCidrWhiteList", "parameters": [ { "name": "subscriptionId", @@ -2889,40 +2954,69 @@ "type": "integer", "format": "int32" } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseUpdateRequest" - }, - "example": { - "dryRun": false, - "name": "Redis-database-example", - "datasetSizeInGb": 5, - "throughputMeasurement": { - "by": "operations-per-second", - "value": 10000 - }, - "dataPersistence": "none", - "dataEvictionPolicy": "allkeys-lru", - "alerts": [ - { - "name": "dataset-size", - "value": 85 - } - ] + "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" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "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 " + } + } + }, + "put": { + "tags": [ + "Subscriptions - Pro" + ], + "summary": "Update Pro subscription CIDR whitelist", + "description": "(Bring your own Cloud only) Updates a Pro subscription's CIDR whitelist.", + "operationId": "updateSubscriptionCidrWhiteList", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CidrWhiteListUpdateRequest" } } }, @@ -2935,8 +3029,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -2970,14 +3064,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations/{tgwInvitationId}/reject": { + "put": { "tags": [ - "Databases - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Delete Pro database", - "description": "Deletes a database from a Pro subscription.", - "operationId": "deleteDatabaseById", + "summary": "Reject transit gateway resource share for a specific region", + "description": "(Active-Active subscriptions only) Rejects the specified AWS transit gateway resource share for one region in an Active-Active subscription.", + "operationId": "rejectActiveActiveTgwResourceShare", "parameters": [ { "name": "subscriptionId", @@ -2990,9 +3086,20 @@ } }, { - "name": "databaseId", + "name": "regionId", "in": "path", - "description": "Database ID.", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + }, + { + "name": "tgwInvitationId", + "in": "path", + "description": "AWS transit gateway invitation ID.", "required": true, "schema": { "type": "integer", @@ -3007,8 +3114,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -3044,14 +3151,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/tags": { + "/v1/fixed/subscriptions/{subscriptionId}": { "get": { "tags": [ - "Databases - Pro" + "Subscriptions - Essentials" ], - "summary": "Get database tags", - "description": "Gets a list of all database tags.", - "operationId": "getTags", + "summary": "Get a single Essentials subscription", + "description": "Gets information on the specified Essentials subscription.", + "operationId": "getSubscriptionById_1", "parameters": [ { "name": "subscriptionId", @@ -3062,16 +3169,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -3086,7 +3183,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudTags" + "$ref": "#/components/schemas/FixedSubscription" } } } @@ -3113,26 +3210,15 @@ }, "put": { "tags": [ - "Databases - Pro" + "Subscriptions - Essentials" ], - "summary": "Overwrite database tags", - "description": "Overwrites all tags on the database.", - "operationId": "updateTags", + "summary": "Update Essentials subscription", + "description": "Updates the specified Essentials subscription.", + "operationId": "updateSubscription_1", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -3144,7 +3230,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseTagsUpdateRequest" + "$ref": "#/components/schemas/FixedSubscriptionUpdateRequest" } } }, @@ -3157,12 +3243,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudTags" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -3193,13 +3279,13 @@ } } }, - "post": { + "delete": { "tags": [ - "Databases - Pro" + "Subscriptions - Essentials" ], - "summary": "Add a database tag", - "description": "Adds a single database tag to a database.", - "operationId": "createTag", + "summary": "Delete Essentials subscription", + "description": "Deletes the specified Essentials subscription. All databases in the subscription must be deleted before deleting it.", + "operationId": "deleteSubscriptionById_1", "parameters": [ { "name": "subscriptionId", @@ -3210,28 +3296,8 @@ "type": "integer", "format": "int32" } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseTagCreateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -3244,7 +3310,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudTag" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -3253,7 +3319,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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" @@ -3262,10 +3328,7 @@ "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" + "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)" @@ -3279,14 +3342,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/tags/{tagKey}": { - "put": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}": { + "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Update database tag value", - "description": "Updates the value of the specified database tag.", - "operationId": "updateTag", + "summary": "Get a single Essentials database", + "description": "Gets details and settings of a single database in an Essentials subscription.", + "operationId": "getSubscriptionDatabaseByID_1", "parameters": [ { "name": "subscriptionId", @@ -3294,6 +3357,7 @@ "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } @@ -3304,30 +3368,12 @@ "description": "Database ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } - }, - { - "name": "tagKey", - "in": "path", - "description": "Tag Key.", - "required": true, - "schema": { - "type": "string" - } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseTagUpdateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -3340,7 +3386,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudTag" + "$ref": "#/components/schemas/FixedDatabase" } } } @@ -3354,12 +3400,6 @@ "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)" }, @@ -3371,13 +3411,13 @@ } } }, - "delete": { + "put": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Delete database tag", - "description": "Removes the specified tag from the database.", - "operationId": "deleteTag", + "summary": "Update Essentials database", + "description": "Updates the specified Essentials database.", + "operationId": "deleteFixedDatabaseByID", "parameters": [ { "name": "subscriptionId", @@ -3398,18 +3438,31 @@ "type": "integer", "format": "int32" } - }, - { - "name": "tagKey", - "in": "path", - "description": "Tag Key.", - "required": true, - "schema": { - "type": "string" - }, - "example": "environment" } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FixedDatabaseUpdateRequest" + }, + "example": { + "name": "Redis-fixed-database-example", + "dataPersistence": "none", + "dataEvictionPolicy": "allkeys-lru", + "replication": true, + "enableDefaultUser": true, + "alerts": [ + { + "name": "datasets-size", + "value": 80 + } + ] + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -3422,7 +3475,7 @@ "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -3452,16 +3505,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/regions": { - "put": { + }, + "delete": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Update Active-Active database", - "description": "(Active-Active databases only) Updates database properties for an Active-Active database.", - "operationId": "updateCrdbLocalProperties", + "summary": "Delete Essentials database", + "description": "Deletes a database from an Essentials subscription.", + "operationId": "deleteFixedDatabaseByID_1", "parameters": [ { "name": "subscriptionId", @@ -3484,36 +3535,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CrdbUpdatePropertiesRequest" - }, - "example": { - "datasetSizeInGb": 5, - "regions": [ - { - "region": "us-east-1", - "localThroughputMeasurement": { - "region": "us-east-1", - "writeOperationsPerSecond": 1000, - "readOperationsPerSecond": 2000 - }, - "alerts": [ - { - "name": "dataset-size", - "value": 80 - } - ] - } - ], - "dataEvictionPolicy": "allkeys-lru" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -3558,14 +3579,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/flush": { - "put": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/tags": { + "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Flush Pro database", - "description": "Deletes all data from the specified Pro database.", - "operationId": "flushCrdb", + "summary": "Get database tags", + "description": "Gets a list of all database tags.", + "operationId": "getTags_1", "parameters": [ { "name": "subscriptionId", @@ -3588,16 +3609,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CrdbFlushRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -3610,7 +3621,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTags" } } } @@ -3624,12 +3635,6 @@ "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)" }, @@ -3640,16 +3645,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/cidr": { - "get": { + }, + "put": { "tags": [ - "Subscriptions - Pro" + "Databases - Essentials" ], - "summary": "Get Pro subscription CIDR whitelist", - "description": "(Bring your own Cloud only) Gets a Pro subscription's CIDR whitelist. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getCidrWhiteList", + "summary": "Overwrite database tags", + "description": "Overwrites all tags on the database.", + "operationId": "updateTags_1", "parameters": [ { "name": "subscriptionId", @@ -3660,8 +3663,28 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DatabaseTagsUpdateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -3669,12 +3692,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTags" } } } @@ -3688,6 +3711,12 @@ "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)" }, @@ -3699,13 +3728,13 @@ } } }, - "put": { + "post": { "tags": [ - "Subscriptions - Pro" + "Databases - Essentials" ], - "summary": "Update Pro subscription CIDR whitelist", - "description": "(Bring your own Cloud only) Updates a Pro subscription's CIDR whitelist.", - "operationId": "updateSubscriptionCidrWhiteList", + "summary": "Add a database tag", + "description": "Adds a single database tag to a database.", + "operationId": "createTag_1", "parameters": [ { "name": "subscriptionId", @@ -3716,13 +3745,23 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CidrWhiteListUpdateRequest" + "$ref": "#/components/schemas/DatabaseTagCreateRequest" } } }, @@ -3735,12 +3774,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTag" } } } @@ -3749,7 +3788,7 @@ "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)" + "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" @@ -3758,7 +3797,10 @@ "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)" + "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)" @@ -3772,14 +3814,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations/{tgwInvitationId}/reject": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/tags/{tagKey}": { "put": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Essentials" ], - "summary": "Reject transit gateway resource share for a specific region", - "description": "(Active-Active subscriptions only) Rejects the specified AWS transit gateway resource share for one region in an Active-Active subscription.", - "operationId": "rejectActiveActiveTgwResourceShare", + "summary": "Update database tag value", + "description": "Updates the value of the specified database tag.", + "operationId": "updateTag_1", "parameters": [ { "name": "subscriptionId", @@ -3792,27 +3834,35 @@ } }, { - "name": "regionId", + "name": "databaseId", "in": "path", - "description": "Region ID - required for Active-Active subscription", + "description": "Database ID.", "required": true, "schema": { "type": "integer", "format": "int32" - }, - "example": 1 + } }, { - "name": "tgwInvitationId", + "name": "tagKey", "in": "path", - "description": "AWS transit gateway invitation ID.", + "description": "Tag Key.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DatabaseTagUpdateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -3820,12 +3870,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/CloudTag" } } } @@ -3855,16 +3905,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/fixed/subscriptions/{subscriptionId}": { - "get": { + }, + "delete": { "tags": [ - "Subscriptions - Essentials" + "Databases - Essentials" ], - "summary": "Get a single Essentials subscription", - "description": "Gets information on the specified Essentials subscription.", - "operationId": "getSubscriptionById_1", + "summary": "Delete database tag", + "description": "Removes the specified tag from the database.", + "operationId": "deleteTag_1", "parameters": [ { "name": "subscriptionId", @@ -3875,21 +3923,106 @@ "type": "integer", "format": "int32" } - } - ], - "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/FixedSubscription" + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tagKey", + "in": "path", + "description": "Tag Key.", + "required": true, + "schema": { + "type": "string" + }, + "example": "environment" + } + ], + "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": { + "type": "object" + } + } + } + }, + "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/cloud-accounts/{cloudAccountId}": { + "get": { + "tags": [ + "Cloud Accounts" + ], + "summary": "Get a single cloud account", + "description": "Gets details on a single cloud account.", + "operationId": "getCloudAccountById", + "parameters": [ + { + "name": "cloudAccountId", + "in": "path", + "description": "Cloud Account Id", + "required": true, + "schema": { + "minimum": 0, + "type": "integer", + "format": "int32" + } + } + ], + "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/CloudAccount" } } } @@ -3916,17 +4049,19 @@ }, "put": { "tags": [ - "Subscriptions - Essentials" + "Cloud Accounts" ], - "summary": "Update Essentials subscription", - "description": "Updates the specified Essentials subscription.", - "operationId": "updateSubscription_1", + "summary": "Update cloud account", + "description": "Updates cloud account details.", + "operationId": "updateCloudAccount", "parameters": [ { - "name": "subscriptionId", + "name": "cloudAccountId", "in": "path", + "description": "Cloud Account Id", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } @@ -3936,7 +4071,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedSubscriptionUpdateRequest" + "$ref": "#/components/schemas/CloudAccountUpdateRequest" } } }, @@ -3987,18 +4122,19 @@ }, "delete": { "tags": [ - "Subscriptions - Essentials" + "Cloud Accounts" ], - "summary": "Delete Essentials subscription", - "description": "Deletes the specified Essentials subscription. All databases in the subscription must be deleted before deleting it.", - "operationId": "deleteSubscriptionById_1", + "summary": "Delete cloud account", + "description": "Deletes a cloud account.", + "operationId": "deleteCloudAccount", "parameters": [ { - "name": "subscriptionId", + "name": "cloudAccountId", "in": "path", - "description": "Subscription ID.", + "description": "Cloud Account Id", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } @@ -4048,30 +4184,19 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}": { + "/v1/acl/users/{aclUserId}": { "get": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Get a single Essentials database", - "description": "Gets details and settings of a single database in an Essentials subscription.", - "operationId": "getSubscriptionDatabaseByID_1", + "summary": "Get a single access control user", + "description": "Gets details and settings for single access control user.", + "operationId": "getUserByID", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", + "name": "aclUserId", "in": "path", - "description": "Database ID.", + "description": "Access control user ID.", "required": true, "schema": { "minimum": 0, @@ -4092,7 +4217,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabase" + "$ref": "#/components/schemas/ACLUser" } } } @@ -4119,26 +4244,16 @@ }, "put": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Update Essentials database", - "description": "Updates the specified Essentials database.", - "operationId": "deleteFixedDatabaseByID", + "summary": "Update access control user", + "description": "Updates a access control user with a different role or database password.", + "operationId": "updateUser_1", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", + "name": "aclUserId", "in": "path", - "description": "Database ID.", + "description": "Access control user ID.", "required": true, "schema": { "type": "integer", @@ -4150,20 +4265,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabaseUpdateRequest" - }, - "example": { - "name": "Redis-fixed-database-example", - "dataPersistence": "none", - "dataEvictionPolicy": "allkeys-lru", - "replication": true, - "enableDefaultUser": true, - "alerts": [ - { - "name": "datasets-size", - "value": 80 - } - ] + "$ref": "#/components/schemas/AclUserUpdateRequest" } } }, @@ -4214,26 +4316,16 @@ }, "delete": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Delete Essentials database", - "description": "Deletes a database from an Essentials subscription.", - "operationId": "deleteFixedDatabaseByID_1", + "summary": "Delete access control user", + "description": "Deletes a access control user.", + "operationId": "deleteUser", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", + "name": "aclUserId", "in": "path", - "description": "Database ID.", + "description": "Access control user ID.", "required": true, "schema": { "type": "integer", @@ -4285,29 +4377,19 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/tags": { - "get": { + "/v1/acl/roles/{aclRoleId}": { + "put": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Get database tags", - "description": "Gets a list of all database tags.", - "operationId": "getTags_1", + "summary": "Update database access role", + "description": "Updates a database access role with new assigned permissions or associated databases.", + "operationId": "updateRole", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", + "name": "aclRoleId", "in": "path", - "description": "Database ID.", + "description": "Database access role ID.", "required": true, "schema": { "type": "integer", @@ -4315,6 +4397,16 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AclRoleUpdateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -4322,88 +4414,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudTags" - } - } - } - }, - "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 " - } - } - }, - "put": { - "tags": [ - "Databases - Essentials" - ], - "summary": "Overwrite database tags", - "description": "Overwrites all tags on the database.", - "operationId": "updateTags_1", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseTagsUpdateRequest" - } - } - }, - "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/CloudTags" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -4434,28 +4450,18 @@ } } }, - "post": { + "delete": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Add a database tag", - "description": "Adds a single database tag to a database.", - "operationId": "createTag_1", + "summary": "Delete database access role", + "description": "Deletes a database access role.", + "operationId": "deleteAclRole", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", + "name": "aclRoleId", "in": "path", - "description": "Database ID.", + "description": "Database access role ID.", "required": true, "schema": { "type": "integer", @@ -4463,16 +4469,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseTagCreateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -4485,7 +4481,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudTag" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -4494,7 +4490,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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" @@ -4503,10 +4499,7 @@ "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" + "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)" @@ -4520,50 +4513,31 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/tags/{tagKey}": { + "/v1/acl/redisRules/{aclRedisRuleId}": { "put": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Update database tag value", - "description": "Updates the value of the specified database tag.", - "operationId": "updateTag_1", + "summary": "Update Redis ACL rule", + "description": "Updates a Redis ACL rule.", + "operationId": "updateRedisRule", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", + "name": "aclRedisRuleId", "in": "path", - "description": "Database ID.", + "description": "Redis ACL rule ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "tagKey", - "in": "path", - "description": "Tag Key.", - "required": true, - "schema": { - "type": "string" - } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseTagUpdateRequest" + "$ref": "#/components/schemas/AclRedisRuleUpdateRequest" } } }, @@ -4576,12 +4550,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudTag" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -4614,41 +4588,21 @@ }, "delete": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Delete database tag", - "description": "Removes the specified tag from the database.", - "operationId": "deleteTag_1", + "summary": "Delete Redis ACL rule", + "description": "Deletes a Redis ACL rule.", + "operationId": "deleteRedisRule", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", + "name": "aclRedisRuleId", "in": "path", - "description": "Database ID.", + "description": "Redis ACL rule ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "tagKey", - "in": "path", - "description": "Tag Key.", - "required": true, - "schema": { - "type": "string" - }, - "example": "environment" } ], "responses": { @@ -4658,12 +4612,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -4695,27 +4649,14 @@ } } }, - "/v1/cloud-accounts/{cloudAccountId}": { + "/v1/subscriptions": { "get": { "tags": [ - "Cloud Accounts" - ], - "summary": "Get a single cloud account", - "description": "Gets details on a single cloud account.", - "operationId": "getCloudAccountById", - "parameters": [ - { - "name": "cloudAccountId", - "in": "path", - "description": "Cloud Account Id", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - } + "Subscriptions - Pro" ], + "summary": "Get Pro subscriptions", + "description": "Gets a list of all Pro subscriptions in the current account.", + "operationId": "getAllSubscriptions", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -4728,7 +4669,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudAccount" + "$ref": "#/components/schemas/AccountSubscriptions" } } } @@ -4753,41 +4694,71 @@ } } }, - "put": { + "post": { "tags": [ - "Cloud Accounts" - ], - "summary": "Update cloud account", - "description": "Updates cloud account details.", - "operationId": "updateCloudAccount", - "parameters": [ - { - "name": "cloudAccountId", - "in": "path", - "description": "Cloud Account Id", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - } + "Subscriptions - Pro" ], + "summary": "Create Pro subscription", + "description": "Creates a new Redis Cloud Pro subscription.", + "operationId": "createSubscription", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudAccountUpdateRequest" - } - } - }, - "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": { + "$ref": "#/components/schemas/SubscriptionCreateRequest" + }, + "example": { + "name": "My new subscription", + "dryRun": false, + "deploymentType": "single-region", + "paymentMethod": "credit-card", + "paymentMethodId": 12345, + "publicEndpointAccess": true, + "memoryStorage": "ram", + "cloudProviders": [ + { + "provider": "AWS", + "regions": [ + { + "region": "us-east-1", + "multipleAvailabilityZones": true, + "preferredAvailabilityZones": [ + "use1-az1", + "use1-az4", + "use1-az5" + ], + "networking": { + "deploymentCIDR": "10.0.0.0/24" + } + } + ] + } + ], + "databases": [ + { + "name": "Redis-database-example", + "protocol": "redis", + "datasetSizeInGb": 2, + "supportOSSClusterApi": false, + "dataPersistence": "none", + "replication": true, + "throughputMeasurement": { + "by": "operations-per-second", + "value": 10000 + }, + "quantity": 1 + } + ] + } + } + }, + "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" }, "202": { @@ -4804,7 +4775,7 @@ "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)" + "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" @@ -4813,7 +4784,10 @@ "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)" + "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)" @@ -4825,22 +4799,23 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions": { + "get": { "tags": [ - "Cloud Accounts" + "Subscriptions - Pro" ], - "summary": "Delete cloud account", - "description": "Deletes a cloud account.", - "operationId": "deleteCloudAccount", + "summary": "Get regions in an Active-Active subscription", + "description": "(Active-Active subscriptions only) Gets a list of regions in the specified Active-Active subscription.", + "operationId": "getRegionsFromActiveActiveSubscription", "parameters": [ { - "name": "cloudAccountId", + "name": "subscriptionId", "in": "path", - "description": "Cloud Account Id", + "description": "Subscription ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } @@ -4858,7 +4833,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/ActiveActiveSubscriptionRegions" } } } @@ -4872,12 +4847,6 @@ "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)" }, @@ -4888,29 +4857,36 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/acl/users/{aclUserId}": { - "get": { + }, + "post": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro" ], - "summary": "Get a single access control user", - "description": "Gets details and settings for single access control user.", - "operationId": "getUserByID", + "summary": "Add region to Active-Active subscription", + "description": "Adds a new region to an Active-Active subscription.", + "operationId": "addNewRegionToActiveActiveSubscription", "parameters": [ { - "name": "aclUserId", + "name": "subscriptionId", "in": "path", - "description": "Access control user ID.", + "description": "Subscription ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActiveActiveRegionCreateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -4923,7 +4899,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ACLUser" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -4937,6 +4913,12 @@ "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)" }, @@ -4948,18 +4930,18 @@ } } }, - "put": { + "delete": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro" ], - "summary": "Update access control user", - "description": "Updates a access control user with a different role or database password.", - "operationId": "updateUser_1", + "summary": "Delete regions from an Active-Active subscription", + "description": "(Active-Active subscriptions only) Deletes one or more regions from the specified Active-Active subscription.", + "operationId": "deleteRegionsFromActiveActiveSubscription", "parameters": [ { - "name": "aclUserId", + "name": "subscriptionId", "in": "path", - "description": "Access control user ID.", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", @@ -4971,7 +4953,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AclUserUpdateRequest" + "$ref": "#/components/schemas/ActiveActiveRegionDeleteRequest" } } }, @@ -5019,19 +5001,31 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect": { + "get": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Delete access control user", - "description": "Deletes a access control user.", - "operationId": "deleteUser", + "summary": "Get Private Service Connect for a single region", + "description": "(Active-Active subscriptions only) Gets Private Service Connect details for a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivePscService", "parameters": [ { - "name": "aclUserId", + "name": "subscriptionId", "in": "path", - "description": "Access control user ID.", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5046,8 +5040,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -5065,12 +5059,6 @@ "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)" }, @@ -5081,21 +5069,29 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/acl/roles/{aclRoleId}": { - "put": { + }, + "post": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Update database access role", - "description": "Updates a database access role with new assigned permissions or associated databases.", - "operationId": "updateRole", + "summary": "Set up a single region Private Service Connect", + "description": "(Active-Active subscriptions only) Sets up Google Cloud Private Service Connect for a single region in an existing Active-Active subscription hosted on Google Cloud.", + "operationId": "createActiveActivePscService", "parameters": [ { - "name": "aclRoleId", + "name": "subscriptionId", "in": "path", - "description": "Database access role ID.", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5103,16 +5099,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AclRoleUpdateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5134,7 +5120,7 @@ "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)" + "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" @@ -5143,7 +5129,10 @@ "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)" + "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)" @@ -5158,16 +5147,26 @@ }, "delete": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Delete database access role", - "description": "Deletes a database access role.", - "operationId": "deleteAclRole", + "summary": "Remove Private Service Connect for a single region", + "description": "(Active-Active subscriptions only) Deletes a Private Service Connect for a single region in an existing Active-Active subscription hosted on Google Cloud.", + "operationId": "deleteActiveActivePscService", "parameters": [ { - "name": "aclRoleId", + "name": "subscriptionId", "in": "path", - "description": "Database access role ID.", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5182,8 +5181,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -5219,36 +5218,46 @@ } } }, - "/v1/acl/redisRules/{aclRedisRuleId}": { - "put": { + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}": { + "get": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Update Redis ACL rule", - "description": "Updates a Redis ACL rule.", - "operationId": "updateRedisRule", + "summary": "Get Private Service Connect endpoints for a single region", + "description": "(Active-Active subscriptions only) Gets endpoint details for the specified Private Service Connect in a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivePscServiceEndpoints", "parameters": [ { - "name": "aclRedisRuleId", + "name": "subscriptionId", "in": "path", - "description": "Redis ACL rule ID.", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AclRedisRuleUpdateRequest" - } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } }, - "required": true - }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5275,12 +5284,6 @@ "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)" }, @@ -5292,18 +5295,38 @@ } } }, - "delete": { + "post": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Delete Redis ACL rule", - "description": "Deletes a Redis ACL rule.", - "operationId": "deleteRedisRule", + "summary": "Create an Private Service Connect endpoint for a single region", + "description": "(Active-Active subscriptions only) Creates a new Private Service Connect endpoint for a single region in an Active-Active subscription.", + "operationId": "createActiveActivePscServiceEndpoint", "parameters": [ { - "name": "aclRedisRuleId", + "name": "subscriptionId", "in": "path", - "description": "Redis ACL rule ID.", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", "required": true, "schema": { "type": "integer", @@ -5311,6 +5334,16 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActiveActivePscEndpointCreateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5332,7 +5365,7 @@ "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)" + "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" @@ -5341,7 +5374,10 @@ "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)" + "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)" @@ -5355,14 +5391,37 @@ } } }, - "/v1/subscriptions": { + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link": { "get": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Link configuration for a specific region", + "description": "(Active-Active subscriptions only) Gets the Private Link configuration for a specific region. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivePrivateLink", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + } ], - "summary": "Get Pro subscriptions", - "description": "Gets a list of all Pro subscriptions in the current account.", - "operationId": "getAllSubscriptions", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5370,12 +5429,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountSubscriptions" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -5402,59 +5461,39 @@ }, "post": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Create a Private Link for a specific region", + "description": "(Active-Active subscriptions only) Creates a new Private Link for a specific region.", + "operationId": "createActiveActivePrivateLink", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + } ], - "summary": "Create Pro subscription", - "description": "Creates a new Redis Cloud Pro subscription.", - "operationId": "createSubscription", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionCreateRequest" - }, - "example": { - "name": "My new subscription", - "dryRun": false, - "deploymentType": "single-region", - "paymentMethod": "credit-card", - "paymentMethodId": 12345, - "publicEndpointAccess": true, - "memoryStorage": "ram", - "cloudProviders": [ - { - "provider": "AWS", - "regions": [ - { - "region": "us-east-1", - "multipleAvailabilityZones": true, - "preferredAvailabilityZones": [ - "use1-az1", - "use1-az4", - "use1-az5" - ], - "networking": { - "deploymentCIDR": "10.0.0.0/24" - } - } - ] - } - ], - "databases": [ - { - "name": "Redis-database-example", - "protocol": "redis", - "datasetSizeInGb": 2, - "supportOSSClusterApi": false, - "dataPersistence": "none", - "replication": true, - "throughputMeasurement": { - "by": "operations-per-second", - "value": 10000 - }, - "quantity": 1 - } - ] + "$ref": "#/components/schemas/PrivateLinkActiveActiveCreateRequest" } } }, @@ -5467,8 +5506,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -5505,16 +5544,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/regions": { - "get": { + }, + "delete": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get regions in an Active-Active subscription", - "description": "(Active-Active subscriptions only) Gets a list of regions in the specified Active-Active subscription.", - "operationId": "getRegionsFromActiveActiveSubscription", + "summary": "Delete Private Link for a specific region", + "description": "(Active-Active subscriptions only) Deletes the Private Link configuration for a specific region.", + "operationId": "deleteActiveActivePrivateLink", "parameters": [ { "name": "subscriptionId", @@ -5525,6 +5562,17 @@ "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], "responses": { @@ -5534,12 +5582,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActiveActiveSubscriptionRegions" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -5553,6 +5601,12 @@ "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)" }, @@ -5563,14 +5617,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { - "tags": [ - "Subscriptions - Pro" + } + }, + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link/principals": { + "post": { + "tags": [ + "Subscriptions - Pro - Connectivity" ], - "summary": "Add region to Active-Active subscription", - "description": "Adds a new region to an Active-Active subscription.", - "operationId": "addNewRegionToActiveActiveSubscription", + "summary": "Add principal to Private Link for a specific region", + "description": "(Active-Active subscriptions only) Adds a principal (AWS ARN) to the Private Link configuration for a specific region.", + "operationId": "createActiveActivePrivateLinkPrincipal", "parameters": [ { "name": "subscriptionId", @@ -5581,13 +5637,24 @@ "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActiveActiveRegionCreateRequest" + "$ref": "#/components/schemas/PrivateLinkActiveActivePrincipalsCreateRequest" } } }, @@ -5600,8 +5667,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -5614,7 +5681,7 @@ "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)" + "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" @@ -5623,7 +5690,10 @@ "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)" + "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)" @@ -5638,11 +5708,11 @@ }, "delete": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Pro - Connectivity" ], - "summary": "Delete regions from an Active-Active subscription", - "description": "(Active-Active subscriptions only) Deletes one or more regions from the specified Active-Active subscription.", - "operationId": "deleteRegionsFromActiveActiveSubscription", + "summary": "Remove a principal from Private Link for a specific region", + "description": "(Active-Active subscriptions only) Removes one principal (AWS ARNs) from the Private Link configuration for a specific region.", + "operationId": "deleteActiveActivePrivateLinkPrincipals", "parameters": [ { "name": "subscriptionId", @@ -5653,13 +5723,24 @@ "type": "integer", "format": "int32" } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActiveActiveRegionDeleteRequest" + "$ref": "#/components/schemas/PrivateLinkActiveActivePrincipalsDeleteRequest" } } }, @@ -5672,8 +5753,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -5709,14 +5790,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect": { - "get": { + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link/connections/disassociate": { + "post": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Private Service Connect for a single region", - "description": "(Active-Active subscriptions only) Gets Private Service Connect details for a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActivePscService", + "summary": "Disassociate connections from Private Link for a specific region", + "description": "(Active-Active subscriptions only) Disassociates one or more VPC endpoint connections from the Private Link configuration for a specific region.", + "operationId": "disassociateActiveActivePrivateLinkConnections", "parameters": [ { "name": "subscriptionId", @@ -5736,9 +5817,20 @@ "schema": { "type": "integer", "format": "int32" - } + }, + "example": 1 } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkActiveActiveConnectionsDisassociateRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5765,6 +5857,12 @@ "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)" }, @@ -5775,14 +5873,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions/peerings": { + "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Set up a single region Private Service Connect", - "description": "(Active-Active subscriptions only) Sets up Google Cloud Private Service Connect for a single region in an existing Active-Active subscription hosted on Google Cloud.", - "operationId": "createActiveActivePscService", + "summary": "Get Active-Active VPC peering details", + "description": "(Active-Active subscriptions only) Gets VPC peering details for an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActiveVpcPeerings", "parameters": [ { "name": "subscriptionId", @@ -5793,16 +5893,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -5812,8 +5902,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -5826,20 +5916,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" }, @@ -5851,13 +5932,13 @@ } } }, - "delete": { + "post": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Remove Private Service Connect for a single region", - "description": "(Active-Active subscriptions only) Deletes a Private Service Connect for a single region in an existing Active-Active subscription hosted on Google Cloud.", - "operationId": "deleteActiveActivePscService", + "summary": "Create Active-Active VPC peering", + "description": "(Active-Active subscriptions only) Sets up VPC peering for an Active-Active subscription. Ensure your cloud provider is also set up for VPC Peering with Redis Cloud. See [VPC Peering](https://docs.redis.com/latest/rc/security/vpc-peering) to learn how to set up VPC Peering with AWS and Google Cloud.", + "operationId": "createActiveActiveVpcPeering", "parameters": [ { "name": "subscriptionId", @@ -5868,18 +5949,28 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateBaseRequest" + }, + "example": { + "provider": "string", + "region": "us-east-1", + "awsAccountId": "", + "vpcId": "", + "vpcCidrs": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ] + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -5887,8 +5978,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -5901,7 +5992,7 @@ "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)" + "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" @@ -5910,7 +6001,10 @@ "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)" + "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)" @@ -5924,14 +6018,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}": { + "/v1/subscriptions/{subscriptionId}/private-service-connect": { "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Private Service Connect endpoints for a single region", - "description": "(Active-Active subscriptions only) Gets endpoint details for the specified Private Service Connect in a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActivePscServiceEndpoints", + "summary": "Get Private Service Connect", + "description": "Gets Private Service Connect details for a subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscService", "parameters": [ { "name": "subscriptionId", @@ -5942,26 +6036,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -6005,9 +6079,9 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create an Private Service Connect endpoint for a single region", - "description": "(Active-Active subscriptions only) Creates a new Private Service Connect endpoint for a single region in an Active-Active subscription.", - "operationId": "createActiveActivePscServiceEndpoint", + "summary": "Set up Private Service Connect for a subscription", + "description": "Sets up Google Cloud Private Service Connect for an existing subscription hosted on Google Cloud.", + "operationId": "createPscService", "parameters": [ { "name": "subscriptionId", @@ -6018,38 +6092,8 @@ "type": "integer", "format": "int32" } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ActiveActivePscEndpointCreateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6095,16 +6139,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link": { - "get": { + }, + "delete": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Private Link configuration for a specific region", - "description": "(Active-Active subscriptions only) Gets the Private Link configuration for a specific region. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActivePrivateLink", + "summary": "Remove Private Service Connect for a subscription", + "description": "Deletes Private Service Connect for a subscription.", + "operationId": "deletePscService", "parameters": [ { "name": "subscriptionId", @@ -6115,17 +6157,80 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", + } + ], + "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" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "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/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}": { + "get": { + "tags": [ + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Service Connect endpoints", + "description": "Gets endpoint details for the specified Private Service Connect. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscServiceEndpoints", + "parameters": [ + { + "name": "subscriptionId", "in": "path", - "description": "Region ID - required for Active-Active subscription", + "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" - }, - "example": 1 + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -6169,9 +6274,9 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create a Private Link for a specific region", - "description": "(Active-Active subscriptions only) Creates a new Private Link for a specific region.", - "operationId": "createActiveActivePrivateLink", + "summary": "Create a Private Service Connect endpoint", + "description": "Creates a new Private Service Connect endpoint.", + "operationId": "createPscServiceEndpoint", "parameters": [ { "name": "subscriptionId", @@ -6184,22 +6289,21 @@ } }, { - "name": "regionId", + "name": "pscServiceId", "in": "path", - "description": "Region ID - required for Active-Active subscription", + "description": "Private Service Connect service ID.", "required": true, "schema": { "type": "integer", "format": "int32" - }, - "example": 1 + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PrivateLinkActiveActiveCreateRequest" + "$ref": "#/components/schemas/PscEndpointCreateRequest" } } }, @@ -6212,8 +6316,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "204": { - "description": "No Content", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -6250,14 +6354,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/private-link": { + "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Delete Private Link for a specific region", - "description": "(Active-Active subscriptions only) Deletes the Private Link configuration for a specific region.", - "operationId": "deleteActiveActivePrivateLink", + "summary": "Get Private Link configuration", + "description": "Gets the Private Link configuration for a subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPrivateLink", "parameters": [ { "name": "subscriptionId", @@ -6268,17 +6374,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 } ], "responses": { @@ -6288,8 +6383,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "204": { - "description": "No Content", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -6307,12 +6402,6 @@ "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)" }, @@ -6323,16 +6412,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link/principals": { + }, "post": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Add principal to Private Link for a specific region", - "description": "(Active-Active subscriptions only) Adds a principal (AWS ARN) to the Private Link configuration for a specific region.", - "operationId": "createActiveActivePrivateLinkPrincipal", + "summary": "Create a Private Link", + "description": "Creates a new Private Link.", + "operationId": "createPrivateLink", "parameters": [ { "name": "subscriptionId", @@ -6343,24 +6430,13 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PrivateLinkActiveActivePrincipalsCreateRequest" + "$ref": "#/components/schemas/PrivateLinkCreateRequest" } } }, @@ -6416,9 +6492,9 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Remove a principal from Private Link for a specific region", - "description": "(Active-Active subscriptions only) Removes one principal (AWS ARNs) from the Private Link configuration for a specific region.", - "operationId": "deleteActiveActivePrivateLinkPrincipals", + "summary": "Delete Private Link", + "description": "Deletes the Private Link configuration for a subscription.", + "operationId": "deletePrivateLink", "parameters": [ { "name": "subscriptionId", @@ -6429,29 +6505,8 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkActiveActivePrincipalsDeleteRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6496,14 +6551,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link/connections/disassociate": { + "/v1/subscriptions/{subscriptionId}/private-link/principals": { "post": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Disassociate connections from Private Link for a specific region", - "description": "(Active-Active subscriptions only) Disassociates one or more VPC endpoint connections from the Private Link configuration for a specific region.", - "operationId": "disassociateActiveActivePrivateLinkConnections", + "summary": "Add principal to Private Link", + "description": "Adds a principal (AWS ARN) to the Private Link configuration.", + "operationId": "createPrivateLinkPrincipal", "parameters": [ { "name": "subscriptionId", @@ -6514,24 +6569,13 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1 } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PrivateLinkActiveActiveConnectionsDisassociateRequest" + "$ref": "#/components/schemas/PrivateLinkPrincipalsCreateRequest" } } }, @@ -6544,8 +6588,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -6558,7 +6602,7 @@ "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)" + "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" @@ -6567,7 +6611,10 @@ "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)" + "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)" @@ -6579,16 +6626,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/regions/peerings": { - "get": { + }, + "delete": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Active-Active VPC peering details", - "description": "(Active-Active subscriptions only) Gets VPC peering details for an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActiveVpcPeerings", + "summary": "Remove a principal from Private Link", + "description": "Removes a principal (AWS ARNs) from the Private Link configuration.", + "operationId": "deletePrivateLinkPrincipals", "parameters": [ { "name": "subscriptionId", @@ -6601,6 +6646,16 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkPrincipalsDeleteRequest" + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6608,8 +6663,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "204": { + "description": "No Content", "content": { "application/json": { "schema": { @@ -6627,6 +6682,12 @@ "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)" }, @@ -6637,14 +6698,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, + } + }, + "/v1/subscriptions/{subscriptionId}/private-link/connections/disassociate": { "post": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Create Active-Active VPC peering", - "description": "(Active-Active subscriptions only) Sets up VPC peering for an Active-Active subscription. Ensure your cloud provider is also set up for VPC Peering with Redis Cloud. See [VPC Peering](https://docs.redis.com/latest/rc/security/vpc-peering) to learn how to set up VPC Peering with AWS and Google Cloud.", - "operationId": "createActiveActiveVpcPeering", + "summary": "Disassociate connections from Private Link", + "description": "Disassociates one or more VPC endpoint connections from the Private Link configuration.", + "operationId": "disassociatePrivateLinkConnections", "parameters": [ { "name": "subscriptionId", @@ -6661,17 +6724,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateBaseRequest" - }, - "example": { - "provider": "string", - "region": "us-east-1", - "awsAccountId": "", - "vpcId": "", - "vpcCidrs": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ] + "$ref": "#/components/schemas/PrivateLinkConnectionsDisassociateRequest" } } }, @@ -6684,8 +6737,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -6698,7 +6751,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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" @@ -6707,10 +6760,7 @@ "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" + "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)" @@ -6724,14 +6774,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-service-connect": { + "/v1/subscriptions/{subscriptionId}/peerings": { "get": { "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Get Private Service Connect", - "description": "Gets Private Service Connect details for a subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getPscService", + "summary": "Get VPC peering details", + "description": "Gets VPC peering details for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getVpcPeering", "parameters": [ { "name": "subscriptionId", @@ -6785,9 +6835,9 @@ "tags": [ "Subscriptions - Pro - Connectivity" ], - "summary": "Set up Private Service Connect for a subscription", - "description": "Sets up Google Cloud Private Service Connect for an existing subscription hosted on Google Cloud.", - "operationId": "createPscService", + "summary": "Create VPC peering", + "description": "Sets up VPC peering for the specified subscription. Ensure your cloud provider is also set up for VPC Peering with Redis Cloud. See [VPC Peering](https://docs.redis.com/latest/rc/security/vpc-peering) to learn how to set up VPC Peering with AWS and Google Cloud.", + "operationId": "createVpcPeering", "parameters": [ { "name": "subscriptionId", @@ -6800,6 +6850,27 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VpcPeeringCreateBaseRequest" + }, + "example": { + "provider": "string", + "sourceRegion": "string", + "destinationRegion": "us-east-1", + "awsAccountId": "", + "vpcId": "", + "vpcCidrs": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ] + } + } + }, + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -6845,14 +6916,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/databases": { + "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Remove Private Service Connect for a subscription", - "description": "Deletes Private Service Connect for a subscription.", - "operationId": "deletePscService", + "summary": "Get all databases in a Pro subscription", + "description": "Gets a list of all databases in the specified Pro subscription.", + "operationId": "getSubscriptionDatabases", "parameters": [ { "name": "subscriptionId", @@ -6860,83 +6933,32 @@ "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } - } - ], - "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" - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" - } - } - } - }, - "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/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}": { - "get": { - "tags": [ - "Subscriptions - Pro - Connectivity" - ], - "summary": "Get Private Service Connect endpoints", - "description": "Gets endpoint details for the specified Private Service Connect. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getPscServiceEndpoints", - "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, + "name": "offset", + "in": "query", + "description": "Number of items to skip.", + "required": false, "schema": { "type": "integer", "format": "int32" - } + }, + "example": 0 }, { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, + "name": "limit", + "in": "query", + "description": "Maximum number of items to return.", + "required": false, "schema": { "type": "integer", "format": "int32" - } + }, + "example": 100 } ], "responses": { @@ -6946,12 +6968,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/AccountSubscriptionDatabases" } } } @@ -6978,11 +7000,11 @@ }, "post": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Create a Private Service Connect endpoint", - "description": "Creates a new Private Service Connect endpoint.", - "operationId": "createPscServiceEndpoint", + "summary": "Create Pro database in existing subscription", + "description": "Creates a new database in an existing Pro subscription.", + "operationId": "createDatabase", "parameters": [ { "name": "subscriptionId", @@ -6993,23 +7015,31 @@ "type": "integer", "format": "int32" } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PscEndpointCreateRequest" + "$ref": "#/components/schemas/DatabaseCreateRequest" + }, + "example": { + "dryRun": false, + "name": "Redis-database-example", + "port": 10000, + "datasetSizeInGb": 1, + "dataEvictionPolicy": "allkeys-lru", + "replication": true, + "throughputMeasurement": { + "by": "operations-per-second", + "value": 10000 + }, + "alerts": [ + { + "name": "dataset-size", + "value": 80 + } + ] } } }, @@ -7062,14 +7092,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-link": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/upgrade": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get Private Link configuration", - "description": "Gets the Private Link configuration for a subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getPrivateLink", + "summary": "Get Pro database version upgrade status", + "description": "Gets information on the latest upgrade attempt for this Pro database.", + "operationId": "getDatabaseRedisVersionUpgradeStatus", "parameters": [ { "name": "subscriptionId", @@ -7080,6 +7110,16 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -7089,12 +7129,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/DatabaseVersionUpgradeStatus" } } } @@ -7121,11 +7161,11 @@ }, "post": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Create a Private Link", - "description": "Creates a new Private Link.", - "operationId": "createPrivateLink", + "summary": "Upgrade Pro database version", + "description": "Upgrade Pro database version", + "operationId": "upgradeDatabaseRedisVersion", "parameters": [ { "name": "subscriptionId", @@ -7136,13 +7176,23 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PrivateLinkCreateRequest" + "$ref": "#/components/schemas/DatabaseUpgradeRedisVersionRequest" } } }, @@ -7155,8 +7205,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "204": { - "description": "No Content", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7169,7 +7219,7 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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" @@ -7178,10 +7228,7 @@ "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" + "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)" @@ -7193,14 +7240,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "delete": { + } + }, + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/traffic/resume": { + "post": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Delete Private Link", - "description": "Deletes the Private Link configuration for a subscription.", - "operationId": "deletePrivateLink", + "summary": "Resume Pro database traffic", + "description": "Resumes traffic for the specified Pro database.", + "operationId": "resumeBdbTraffic", "parameters": [ { "name": "subscriptionId", @@ -7208,6 +7257,18 @@ "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "minimum": 0, "type": "integer", "format": "int32" } @@ -7221,14 +7282,7 @@ "description": "Precondition Failed - Feature flag for this flow is off" }, "204": { - "description": "No Content", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" - } - } - } + "description": "Traffic resumed" }, "401": { "description": "Unauthorized - Authentication failed for requested resource" @@ -7257,14 +7311,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-link/principals": { - "post": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/import": { + "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Add principal to Private Link", - "description": "Adds a principal (AWS ARN) to the Private Link configuration.", - "operationId": "createPrivateLinkPrincipal", + "summary": "Get Pro database import status", + "description": "Gets information on the latest import attempt for this Pro database.", + "operationId": "getDatabaseImportStatus", "parameters": [ { "name": "subscriptionId", @@ -7275,18 +7329,18 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkPrincipalsCreateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7294,8 +7348,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "204": { - "description": "No Content", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7308,20 +7362,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" }, @@ -7333,13 +7378,13 @@ } } }, - "delete": { + "post": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Remove a principal from Private Link", - "description": "Removes a principal (AWS ARNs) from the Private Link configuration.", - "operationId": "deletePrivateLinkPrincipals", + "summary": "Import data to a Pro database", + "description": "Imports data from an RDB file or from a different Redis database into this Pro database. WARNING: Importing data into a database removes all existing data from the database.", + "operationId": "importDatabase", "parameters": [ { "name": "subscriptionId", @@ -7350,13 +7395,23 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PrivateLinkPrincipalsDeleteRequest" + "$ref": "#/components/schemas/DatabaseImportRequest" } } }, @@ -7369,8 +7424,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "204": { - "description": "No Content", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7406,14 +7461,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-link/connections/disassociate": { - "post": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { + "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Disassociate connections from Private Link", - "description": "Disassociates one or more VPC endpoint connections from the Private Link configuration.", - "operationId": "disassociatePrivateLinkConnections", + "summary": "Get Pro database backup status", + "description": "Gets information on the latest backup attempt for this Pro database.", + "operationId": "getDatabaseBackupStatus", "parameters": [ { "name": "subscriptionId", @@ -7424,18 +7479,27 @@ "type": "integer", "format": "int32" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkConnectionsDisassociateRequest" - } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } }, - "required": true - }, + { + "name": "regionName", + "in": "query", + "description": "Region name - required for Active-Active subscription", + "required": false, + "schema": { + "type": "string" + } + } + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7443,8 +7507,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7462,12 +7526,6 @@ "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)" }, @@ -7478,16 +7536,14 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/peerings": { - "get": { + }, + "post": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get VPC peering details", - "description": "Gets VPC peering details for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getVpcPeering", + "summary": "Back up Pro database", + "description": "Manually back up the specified Pro database to a backup path. By default, backups will be stored in the 'remoteBackup' location for this database.", + "operationId": "backupDatabase", "parameters": [ { "name": "subscriptionId", @@ -7498,8 +7554,27 @@ "type": "integer", "format": "int32" } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DatabaseBackupRequest" + } + } + } + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7507,8 +7582,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7526,6 +7601,12 @@ "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)" }, @@ -7536,47 +7617,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/fixed/subscriptions": { + "get": { "tags": [ - "Subscriptions - Pro - Connectivity" - ], - "summary": "Create VPC peering", - "description": "Sets up VPC peering for the specified subscription. Ensure your cloud provider is also set up for VPC Peering with Redis Cloud. See [VPC Peering](https://docs.redis.com/latest/rc/security/vpc-peering) to learn how to set up VPC Peering with AWS and Google Cloud.", - "operationId": "createVpcPeering", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Subscriptions - Essentials" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VpcPeeringCreateBaseRequest" - }, - "example": { - "provider": "string", - "sourceRegion": "string", - "destinationRegion": "us-east-1", - "awsAccountId": "", - "vpcId": "", - "vpcCidrs": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ] - } - } - }, - "required": true - }, + "summary": "Get Essentials subscriptions", + "description": "Gets a list of all Essentials subscriptions in the current account.", + "operationId": "getAllSubscriptions_1", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -7584,12 +7634,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/FixedSubscriptions" } } } @@ -7598,20 +7648,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" }, @@ -7622,16 +7663,79 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/subscriptions/{subscriptionId}/databases": { - "get": { + }, + "post": { "tags": [ - "Databases - Pro" + "Subscriptions - Essentials" ], - "summary": "Get all databases in a Pro subscription", - "description": "Gets a list of all databases in the specified Pro subscription.", - "operationId": "getSubscriptionDatabases", + "summary": "Create Essentials subscription", + "description": "Creates a new Essentials subscription.", + "operationId": "createSubscription_1", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FixedSubscriptionCreateRequest" + } + } + }, + "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" + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskStateUpdate" + } + } + } + }, + "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/fixed/subscriptions/{subscriptionId}/databases": { + "get": { + "tags": [ + "Databases - Essentials" + ], + "summary": "Get all databases in an Essentials subscription", + "description": "Gets a list of all databases in the specified Essentials subscription.", + "operationId": "getFixedSubscriptionDatabases", "parameters": [ { "name": "subscriptionId", @@ -7679,7 +7783,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountSubscriptionDatabases" + "$ref": "#/components/schemas/AccountFixedSubscriptionDatabases" } } } @@ -7706,11 +7810,11 @@ }, "post": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Create Pro database in existing subscription", - "description": "Creates a new database in an existing Pro subscription.", - "operationId": "createDatabase", + "summary": "Create Essentials database", + "description": "Creates a new database in the specified Essentials subscription.", + "operationId": "createFixedDatabase", "parameters": [ { "name": "subscriptionId", @@ -7727,22 +7831,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseCreateRequest" + "$ref": "#/components/schemas/FixedDatabaseCreateRequest" }, "example": { - "dryRun": false, - "name": "Redis-database-example", - "port": 10000, - "datasetSizeInGb": 1, + "name": "Redis-fixed-database-example", + "protocol": "stack", + "dataPersistence": "none", "dataEvictionPolicy": "allkeys-lru", "replication": true, - "throughputMeasurement": { - "by": "operations-per-second", - "value": 10000 - }, "alerts": [ { - "name": "dataset-size", + "name": "datasets-size", "value": 80 } ] @@ -7758,8 +7857,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -7798,14 +7897,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/upgrade": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/upgrade": { "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Get Pro database version upgrade status", - "description": "Gets information on the latest upgrade attempt for this Pro database.", - "operationId": "getDatabaseRedisVersionUpgradeStatus", + "summary": "Get Essentials database version upgrade status", + "description": "Gets information on the latest upgrade attempt for this Essentials database.", + "operationId": "getEssentialsDatabaseRedisVersionUpgradeStatus", "parameters": [ { "name": "subscriptionId", @@ -7867,11 +7966,11 @@ }, "post": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Upgrade Pro database version", - "description": "Upgrade Pro database version", - "operationId": "upgradeDatabaseRedisVersion", + "summary": "Upgrade Essentials database version", + "description": "Upgrades the specified Essentials database to a later Redis version.", + "operationId": "upgradeEssentialsDatabaseRedisVersion", "parameters": [ { "name": "subscriptionId", @@ -7898,7 +7997,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseUpgradeRedisVersionRequest" + "$ref": "#/components/schemas/FixedDatabaseUpgradeRedisVersionRequest" } } }, @@ -7948,14 +8047,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/traffic/resume": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/traffic/resume": { "post": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Resume Pro database traffic", - "description": "Resumes traffic for the specified Pro database.", - "operationId": "resumeBdbTraffic", + "summary": "Resume Essentials database traffic", + "description": "Resumes traffic for the specified Essentials database.", + "operationId": "resumeBdbTraffic_1", "parameters": [ { "name": "subscriptionId", @@ -8017,14 +8116,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/import": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/import": { "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Get Pro database import status", - "description": "Gets information on the latest import attempt for this Pro database.", - "operationId": "getDatabaseImportStatus", + "summary": "Get Essentials database import status", + "description": "Gets information on the latest import attempt for this Essentials database.", + "operationId": "getDatabaseImportStatus_1", "parameters": [ { "name": "subscriptionId", @@ -8086,11 +8185,11 @@ }, "post": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Import data to a Pro database", - "description": "Imports data from an RDB file or from a different Redis database into this Pro database. WARNING: Importing data into a database removes all existing data from the database.", - "operationId": "importDatabase", + "summary": "Import data to an Essentials database", + "description": "Imports data from an RDB file or from a different Redis database into this Essentials database. WARNING: Importing data into a database removes all existing data from the database.", + "operationId": "importDatabase_1", "parameters": [ { "name": "subscriptionId", @@ -8117,7 +8216,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseImportRequest" + "$ref": "#/components/schemas/FixedDatabaseImportRequest" } } }, @@ -8167,14 +8266,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Get Pro database backup status", - "description": "Gets information on the latest backup attempt for this Pro database.", - "operationId": "getDatabaseBackupStatus", + "summary": "Backup Essentials database status", + "description": "Information on the latest database backup status identified by Essentials subscription Id and Essentials database Id", + "operationId": "getDatabaseBackupStatus_1", "parameters": [ { "name": "subscriptionId", @@ -8195,15 +8294,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionName", - "in": "query", - "description": "Region name - required for Active-Active subscription", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { @@ -8245,11 +8335,11 @@ }, "post": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Back up Pro database", - "description": "Manually back up the specified Pro database to a backup path. By default, backups will be stored in the 'remoteBackup' location for this database.", - "operationId": "backupDatabase", + "summary": "Back up Essentials database", + "description": "Manually back up the specified Essentials database to a backup path. By default, backups will be stored in the 'periodicBackupPath' location for this database.", + "operationId": "backupDatabase_1", "parameters": [ { "name": "subscriptionId", @@ -8276,7 +8366,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseBackupRequest" + "$ref": "#/components/schemas/FixedDatabaseBackupRequest" } } } @@ -8325,63 +8415,19 @@ } } }, - "/v1/fixed/subscriptions": { - "get": { - "tags": [ - "Subscriptions - Essentials" - ], - "summary": "Get Essentials subscriptions", - "description": "Gets a list of all Essentials subscriptions in the current account.", - "operationId": "getAllSubscriptions_1", - "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/FixedSubscriptions" - } - } - } - }, - "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/cost-report": { "post": { "tags": [ - "Subscriptions - Essentials" + "Account" ], - "summary": "Create Essentials subscription", - "description": "Creates a new Essentials subscription.", - "operationId": "createSubscription_1", + "summary": "Generate cost report", + "description": "Generates a cost report in FOCUS format for the specified time period (max 40 days range) and filters. [Read more about focus here](https://focus.finops.org/).\n", + "operationId": "createCostReport", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedSubscriptionCreateRequest" + "$ref": "#/components/schemas/CostReportCreateRequest" } } }, @@ -8434,49 +8480,14 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases": { + "/v1/cloud-accounts": { "get": { "tags": [ - "Databases - Essentials" - ], - "summary": "Get all databases in an Essentials subscription", - "description": "Gets a list of all databases in the specified Essentials subscription.", - "operationId": "getFixedSubscriptionDatabases", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - }, - { - "name": "offset", - "in": "query", - "description": "Number of items to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 0 - }, - { - "name": "limit", - "in": "query", - "description": "Maximum number of items to return.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 100 - } + "Cloud Accounts" ], + "summary": "Get cloud accounts", + "description": "Gets a list of all configured cloud accounts.", + "operationId": "getCloudAccounts", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8489,7 +8500,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountFixedSubscriptionDatabases" + "$ref": "#/components/schemas/CloudAccounts" } } } @@ -8516,41 +8527,16 @@ }, "post": { "tags": [ - "Databases - Essentials" - ], - "summary": "Create Essentials database", - "description": "Creates a new database in the specified Essentials subscription.", - "operationId": "createFixedDatabase", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Cloud Accounts" ], + "summary": "Create cloud account", + "description": "Creates a cloud account.", + "operationId": "createCloudAccount", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabaseCreateRequest" - }, - "example": { - "name": "Redis-fixed-database-example", - "protocol": "stack", - "dataPersistence": "none", - "dataEvictionPolicy": "allkeys-lru", - "replication": true, - "alerts": [ - { - "name": "datasets-size", - "value": 80 - } - ] + "$ref": "#/components/schemas/CloudAccountCreateRequest" } } }, @@ -8563,8 +8549,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -8603,36 +8589,14 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/upgrade": { + "/v1/acl/users": { "get": { "tags": [ - "Databases - Essentials" - ], - "summary": "Get Essentials database version upgrade status", - "description": "Gets information on the latest upgrade attempt for this Essentials database.", - "operationId": "getEssentialsDatabaseRedisVersionUpgradeStatus", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Role-based Access Control (RBAC)" ], + "summary": "Get access control users", + "description": "Gets a list of all access control users for this account.", + "operationId": "getAllUsers_1", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8645,7 +8609,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseVersionUpgradeStatus" + "$ref": "#/components/schemas/AccountACLUsers" } } } @@ -8672,38 +8636,16 @@ }, "post": { "tags": [ - "Databases - Essentials" - ], - "summary": "Upgrade Essentials database version", - "description": "Upgrades the specified Essentials database to a later Redis version.", - "operationId": "upgradeEssentialsDatabaseRedisVersion", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Role-based Access Control (RBAC)" ], + "summary": "Create access control user", + "description": "Creates a new access control user with the assigned database access role.", + "operationId": "createUser", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabaseUpgradeRedisVersionRequest" + "$ref": "#/components/schemas/AclUserCreateRequest" } } }, @@ -8716,8 +8658,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -8730,7 +8672,7 @@ "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)" + "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" @@ -8739,7 +8681,10 @@ "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)" + "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)" @@ -8753,38 +8698,14 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/traffic/resume": { - "post": { + "/v1/acl/roles": { + "get": { "tags": [ - "Databases - Essentials" - ], - "summary": "Resume Essentials database traffic", - "description": "Resumes traffic for the specified Essentials database.", - "operationId": "resumeBdbTraffic_1", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - } + "Role-based Access Control (RBAC)" ], + "summary": "Get database access roles", + "description": "Gets a list of all database access roles for this account.", + "operationId": "getRoles", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8792,8 +8713,15 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "204": { - "description": "Traffic resumed" + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountACLRoles" + } + } + } }, "401": { "description": "Unauthorized - Authentication failed for requested resource" @@ -8804,12 +8732,6 @@ "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)" }, @@ -8820,38 +8742,24 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - } - }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/import": { - "get": { + }, + "post": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Get Essentials database import status", - "description": "Gets information on the latest import attempt for this Essentials database.", - "operationId": "getDatabaseImportStatus_1", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" + "summary": "Create database access role", + "description": "Creates a new database access role with the assigned permissions and associates it with the provided databases.", + "operationId": "createRole", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AclRoleCreateRequest" + } } }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], + "required": true + }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -8859,8 +8767,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -8873,11 +8781,20 @@ "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)" + "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)" }, @@ -8888,41 +8805,65 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/acl/redisRules": { + "get": { "tags": [ - "Databases - Essentials" + "Role-based Access Control (RBAC)" ], - "summary": "Import data to an Essentials database", - "description": "Imports data from an RDB file or from a different Redis database into this Essentials database. WARNING: Importing data into a database removes all existing data from the database.", - "operationId": "importDatabase_1", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "summary": "Get Redis ACL rules", + "description": "Gets a list of all Redis ACL rules for this account.", + "operationId": "getAllRedisRules", + "responses": { + "400": { + "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" + "412": { + "description": "Precondition Failed - Feature flag for this flow is off" + }, + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountACLRedisRules" + } + } } + }, + "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 " } + } + }, + "post": { + "tags": [ + "Role-based Access Control (RBAC)" ], + "summary": "Create Redis ACL rule", + "description": "Creates a new Redis ACL rule.", + "operationId": "createRedisRule", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedDatabaseImportRequest" + "$ref": "#/components/schemas/AclRedisRuleCreateRequest" } } }, @@ -8935,8 +8876,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -8949,7 +8890,7 @@ "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)" + "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" @@ -8958,7 +8899,10 @@ "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)" + "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)" @@ -8972,36 +8916,14 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/backup": { + "/v1/users": { "get": { "tags": [ - "Databases - Essentials" - ], - "summary": "Backup Essentials database status", - "description": "Information on the latest database backup status identified by Essentials subscription Id and Essentials database Id", - "operationId": "getDatabaseBackupStatus_1", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Users" ], + "summary": "Get users", + "description": "Gets a list of all account users.", + "operationId": "getAllUsers", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9014,7 +8936,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/AccountUsers" } } } @@ -9038,45 +8960,16 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/tasks": { + "get": { "tags": [ - "Databases - Essentials" - ], - "summary": "Back up Essentials database", - "description": "Manually back up the specified Essentials database to a backup path. By default, backups will be stored in the 'periodicBackupPath' location for this database.", - "operationId": "backupDatabase_1", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Tasks" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FixedDatabaseBackupRequest" - } - } - } - }, + "summary": "Get tasks", + "description": "Gets a list of all currently running tasks for this account.", + "operationId": "getAllTasks", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9087,9 +8980,9 @@ "200": { "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/TasksStateUpdate" } } } @@ -9103,12 +8996,6 @@ "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)" }, @@ -9121,24 +9008,25 @@ } } }, - "/v1/cost-report": { - "post": { + "/v1/tasks/{taskId}": { + "get": { "tags": [ - "Account" + "Tasks" ], - "summary": "Generate cost report", - "description": "Generates a cost report in FOCUS format for the specified time period (max 40 days range) and filters. [Read more about focus here](https://focus.finops.org/).\n", - "operationId": "createCostReport", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CostReportCreateRequest" - } + "summary": "Get a single task", + "description": "Gets details and status of a single task by the Task ID.", + "operationId": "getTaskById", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Task ID.", + "required": true, + "schema": { + "type": "string" } - }, - "required": true - }, + } + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9146,8 +9034,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -9160,20 +9048,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" }, @@ -9186,14 +9065,26 @@ } } }, - "/v1/cloud-accounts": { + "/v1/subscriptions/{subscriptionId}/transitGateways": { "get": { "tags": [ - "Cloud Accounts" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get transit gateways for a subscription", + "description": "Gets all AWS transit gateway details for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getTgws", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get cloud accounts", - "description": "Gets a list of all configured cloud accounts.", - "operationId": "getCloudAccounts", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9206,7 +9097,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CloudAccounts" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -9230,24 +9121,28 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/subscriptions/{subscriptionId}/transitGateways/invitations": { + "get": { "tags": [ - "Cloud Accounts" + "Subscriptions - Pro - Connectivity" ], - "summary": "Create cloud account", - "description": "Creates a cloud account.", - "operationId": "createCloudAccount", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CloudAccountCreateRequest" - } + "summary": "Get transit gateway invitations for a subscription", + "description": "Gets all AWS transit gateway invitations for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getTgwSharedInvitations", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } - }, - "required": true - }, + } + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9255,8 +9150,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -9269,20 +9164,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" }, @@ -9295,14 +9181,37 @@ } } }, - "/v1/acl/users": { + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways": { "get": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get transit gateways for a single region", + "description": "(Active-Active subscriptions only) Gets all AWS transit gateway details for the specified region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActiveTgws", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + } ], - "summary": "Get access control users", - "description": "Gets a list of all access control users for this account.", - "operationId": "getAllUsers_1", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9315,7 +9224,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountACLUsers" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -9339,24 +9248,39 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations": { + "get": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Create access control user", - "description": "Creates a new access control user with the assigned database access role.", - "operationId": "createUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AclUserCreateRequest" - } + "summary": "Get transit gateway invitations for a single region", + "description": "(Active-Active subscriptions only) Gets AWS transit gateway invitations for the specified region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActiveTgwSharedInvitations", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } }, - "required": true - }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1 + } + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9364,8 +9288,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { @@ -9378,20 +9302,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" }, @@ -9404,14 +9319,56 @@ } } }, - "/v1/acl/roles": { + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { "get": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Service Connect endpoint deletion script for a single region", + "description": "(Active-Active subscriptions only) Gets the gcloud script to delete the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivPscServiceEndpointDeletionScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get database access roles", - "description": "Gets a list of all database access roles for this account.", - "operationId": "getRoles", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9419,12 +9376,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountACLRoles" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -9448,24 +9405,58 @@ "description": "Service Unavailable - Server is temporarily unable to handle the request, please try again later. If this error persists, please contact customer support " } } - }, - "post": { + } + }, + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { + "get": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Create database access role", - "description": "Creates a new database access role with the assigned permissions and associates it with the provided databases.", - "operationId": "createRole", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AclRoleCreateRequest" - } + "summary": "Get Private Service Connect endpoint creation script for a single region", + "description": "(Active-Active subscriptions only) Gets the gcloud script to create the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivPscServiceEndpointCreationScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } }, - "required": true - }, + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9487,22 +9478,13 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" + "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" @@ -9513,68 +9495,36 @@ } } }, - "/v1/acl/redisRules": { + "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link/endpoint-script": { "get": { "tags": [ - "Role-based Access Control (RBAC)" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get Redis ACL rules", - "description": "Gets a list of all Redis ACL rules for this account.", - "operationId": "getAllRedisRules", - "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/AccountACLRedisRules" - } - } + "summary": "Get Private Link endpoint script for a single region", + "description": "(Active-Active subscriptions only) Gets the Private Link endpoint script for a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getActiveActivePrivateLinkEndpointScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } }, - "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 " + { + "name": "regionId", + "in": "path", + "description": "Region ID - required for Active-Active subscription", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } - } - }, - "post": { - "tags": [ - "Role-based Access Control (RBAC)" ], - "summary": "Create Redis ACL rule", - "description": "Creates a new Redis ACL rule.", - "operationId": "createRedisRule", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AclRedisRuleCreateRequest" - } - } - }, - "required": true - }, "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9596,20 +9546,11 @@ "description": "Unauthorized - Authentication failed for requested resource" }, "403": { - "description": "Forbidden - Not allowed to create requested resource (primarily due to not active resource)" + "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 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)" }, @@ -9622,14 +9563,46 @@ } } }, - "/v1/users": { + "/v1/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { "get": { "tags": [ - "Users" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Service Connect endpoint deletion script", + "description": "Gets the gcloud script to delete the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscServiceEndpointDeletionScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get users", - "description": "Gets a list of all account users.", - "operationId": "getAllUsers", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9637,12 +9610,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountUsers" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -9668,14 +9641,46 @@ } } }, - "/v1/tasks": { + "/v1/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { "get": { "tags": [ - "Tasks" + "Subscriptions - Pro - Connectivity" + ], + "summary": "Get Private Service Connect endpoint creation script", + "description": "Gets the gcloud script to create the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPscServiceEndpointCreationScript", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pscServiceId", + "in": "path", + "description": "Private Service Connect service ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpointId", + "in": "path", + "description": "Private Service Connect endpoint ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } ], - "summary": "Get tasks", - "description": "Gets a list of all currently running tasks for this account.", - "operationId": "getAllTasks", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -9683,12 +9688,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/TasksStateUpdate" + "$ref": "#/components/schemas/TaskStateUpdate" } } } @@ -9714,22 +9719,23 @@ } } }, - "/v1/tasks/{taskId}": { + "/v1/subscriptions/{subscriptionId}/private-link/endpoint-script": { "get": { "tags": [ - "Tasks" + "Subscriptions - Pro - Connectivity" ], - "summary": "Get a single task", - "description": "Gets details and status of a single task by the Task ID.", - "operationId": "getTaskById", + "summary": "Get Private Link endpoint script", + "description": "Gets the Python discovery script for Private Link. Internal users can optionally request a Terraform snippet. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", + "operationId": "getPrivateLinkEndpointScript", "parameters": [ { - "name": "taskId", + "name": "subscriptionId", "in": "path", - "description": "Task ID.", + "description": "Subscription ID.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } } ], @@ -9740,8 +9746,8 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "200": { - "description": "OK", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { @@ -9771,14 +9777,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/transitGateways": { + "/v1/subscriptions/{subscriptionId}/pricing": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Subscriptions - Pro" ], - "summary": "Get transit gateways for a subscription", - "description": "Gets all AWS transit gateway details for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getTgws", + "summary": "Get Pro subscription pricing", + "description": "Gets pricing details for the specified Pro subscription.", + "operationId": "getSubscriptionPricing", "parameters": [ { "name": "subscriptionId", @@ -9803,7 +9809,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/SubscriptionPricings" } } } @@ -9829,14 +9835,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/transitGateways/invitations": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/traffic": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get transit gateway invitations for a subscription", - "description": "Gets all AWS transit gateway invitations for the specified subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getTgwSharedInvitations", + "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.", + "operationId": "getDatabaseTraffic", "parameters": [ { "name": "subscriptionId", @@ -9844,6 +9850,18 @@ "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, + "type": "integer", + "format": "int32" + } + }, + { + "name": "databaseId", + "in": "path", + "description": "Database ID.", + "required": true, + "schema": { + "minimum": 0, "type": "integer", "format": "int32" } @@ -9861,7 +9879,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/DatabaseTrafficStateResponse" } } } @@ -9887,14 +9905,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/slow-log": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get transit gateways for a single region", - "description": "(Active-Active subscriptions only) Gets all AWS transit gateway details for the specified region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActiveTgws", + "summary": "Get database slowlog", + "description": "Gets the slowlog for a specific database.", + "operationId": "getSlowLog", "parameters": [ { "name": "subscriptionId", @@ -9907,15 +9925,23 @@ } }, { - "name": "regionId", + "name": "databaseId", "in": "path", - "description": "Region ID - required for Active-Active subscription", + "description": "Database ID.", "required": true, "schema": { "type": "integer", "format": "int32" - }, - "example": 1 + } + }, + { + "name": "regionName", + "in": "query", + "description": "Region name - required for Active-Active subscription", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { @@ -9930,7 +9956,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/DatabaseSlowLogEntries" } } } @@ -9956,14 +9982,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/transitGateways/invitations": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/certificate": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get transit gateway invitations for a single region", - "description": "(Active-Active subscriptions only) Gets AWS transit gateway invitations for the specified region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActiveTgwSharedInvitations", + "summary": "Get Pro database TLS certificate", + "description": "Gets the X.509 PEM (base64) encoded server certificate for TLS connection to the database. Requires 'enableTLS' to be 'true' for the database.", + "operationId": "getSubscriptionDatabaseCertificate", "parameters": [ { "name": "subscriptionId", @@ -9971,20 +9997,21 @@ "description": "Subscription ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" } }, { - "name": "regionId", + "name": "databaseId", "in": "path", - "description": "Region ID - required for Active-Active subscription", + "description": "Database ID.", "required": true, "schema": { + "minimum": 0, "type": "integer", "format": "int32" - }, - "example": 1 + } } ], "responses": { @@ -9999,7 +10026,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/DatabaseCertificate" } } } @@ -10025,14 +10052,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { + "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/available-target-versions": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Databases - Pro" ], - "summary": "Get Private Service Connect endpoint deletion script for a single region", - "description": "(Active-Active subscriptions only) Gets the gcloud script to delete the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActivPscServiceEndpointDeletionScript", + "summary": "Get available upgrade versions for Pro database", + "description": "Gets a list of available Redis versions that the specified Pro database can be upgraded to.", + "operationId": "getDatabaseAvailableVersions", "parameters": [ { "name": "subscriptionId", @@ -10045,29 +10072,9 @@ } }, { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", + "name": "databaseId", "in": "path", - "description": "Private Service Connect endpoint ID.", + "description": "Database ID.", "required": true, "schema": { "type": "integer", @@ -10082,12 +10089,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/DatabaseAvailableVersionsResponse" } } } @@ -10113,50 +10120,20 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { + "/v1/subscriptions/redis-versions": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Subscriptions - Pro" ], - "summary": "Get Private Service Connect endpoint creation script for a single region", - "description": "(Active-Active subscriptions only) Gets the gcloud script to create the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActivPscServiceEndpointCreationScript", + "summary": "Get available Redis database versions", + "description": "Gets a list of all available Redis database versions for Pro subscriptions.", + "operationId": "getRedisVersions", "parameters": [ { "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", - "in": "path", - "description": "Private Service Connect endpoint ID.", - "required": true, + "in": "query", + "description": "Subscription ID (required for an existing subscription)", + "required": false, "schema": { "type": "integer", "format": "int32" @@ -10170,12 +10147,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/RedisVersions" } } } @@ -10201,34 +10178,58 @@ } } }, - "/v1/subscriptions/{subscriptionId}/regions/{regionId}/private-link/endpoint-script": { + "/v1/session-logs": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Account" ], - "summary": "Get Private Link endpoint script for a single region", - "description": "(Active-Active subscriptions only) Gets the Private Link endpoint script for a single region in an Active-Active subscription. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getActiveActivePrivateLinkEndpointScript", + "summary": "Get session logs", + "description": "Gets session logs for this account.", + "operationId": "getAccountSessionLogs", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, + "name": "offset", + "in": "query", + "description": "Number of items to skip.", + "required": false, "schema": { "type": "integer", "format": "int32" - } + }, + "example": 0 }, { - "name": "regionId", - "in": "path", - "description": "Region ID - required for Active-Active subscription", - "required": true, + "name": "limit", + "in": "query", + "description": "Maximum number of logs to return. Limit: 100", + "required": false, "schema": { + "maximum": 100, + "minimum": 1, "type": "integer", "format": "int32" - } + }, + "example": 100 + }, + { + "name": "startTime", + "in": "query", + "description": "Filter session logs with time >= startTime (UTC)", + "required": false, + "schema": { + "type": "string" + }, + "example": "2025-01-01T00:00:00Z" + }, + { + "name": "endTime", + "in": "query", + "description": "Filter session logs with time <= endTime (UTC)", + "required": false, + "schema": { + "type": "string" + }, + "example": "2025-01-31T23:59:59Z" } ], "responses": { @@ -10238,12 +10239,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/AccountSessionLogEntries" } } } @@ -10269,43 +10270,26 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/deletionScripts": { + "/v1/regions": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" + "Account" ], - "summary": "Get Private Service Connect endpoint deletion script", - "description": "Gets the gcloud script to delete the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getPscServiceEndpointDeletionScript", + "summary": "Get available Pro plan regions", + "description": "Gets a list of available regions for Pro subscriptions. For Essentials subscriptions, use [GET /fixed/plans](#tag/Subscriptions-Essentials/operation/getAllFixedSubscriptionsPlans).", + "operationId": "getSupportedRegions", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", - "in": "path", - "description": "Private Service Connect endpoint ID.", - "required": true, + "name": "provider", + "in": "query", + "description": "Filters results to the specified cloud provider.", + "required": false, "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "enum": [ + "AWS", + "GCP" + ] } } ], @@ -10316,12 +10300,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/Regions" } } } @@ -10347,46 +10331,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-service-connect/{pscServiceId}/endpoints/{endpointId}/creationScripts": { + "/v1/query-performance-factors": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" - ], - "summary": "Get Private Service Connect endpoint creation script", - "description": "Gets the gcloud script to create the specified Private Service Connect endpoint on Google Cloud. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getPscServiceEndpointCreationScript", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "pscServiceId", - "in": "path", - "description": "Private Service Connect service ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpointId", - "in": "path", - "description": "Private Service Connect endpoint ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Account" ], + "summary": "Get query performance factors", + "description": "Gets a list of available [query performance factors](https://redis.io/docs/latest/operate/rc/databases/configuration/advanced-capabilities/#query-performance-factor).", + "operationId": "getSupportedSearchScalingFactors", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -10394,12 +10346,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/SearchScalingFactorsData" } } } @@ -10425,26 +10377,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/private-link/endpoint-script": { + "/v1/payment-methods": { "get": { "tags": [ - "Subscriptions - Pro - Connectivity" - ], - "summary": "Get Private Link endpoint script", - "description": "Gets the Python discovery script for Private Link. Internal users can optionally request a Terraform snippet. [Asynchronous operation](https://redis.io/docs/latest/operate/rc/api/get-started/process-lifecycle/) - Query [GET /tasks/{taskId}](#tag/Tasks/operation/getTaskById) with the returned taskId.", - "operationId": "getPrivateLinkEndpointScript", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Account" ], + "summary": "Get payment methods", + "description": "Gets a list of all payment methods for this account.", + "operationId": "getAccountPaymentMethods", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -10452,12 +10392,12 @@ "412": { "description": "Precondition Failed - Feature flag for this flow is off" }, - "202": { - "description": "Accepted", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TaskStateUpdate" + "$ref": "#/components/schemas/PaymentMethods" } } } @@ -10483,24 +10423,69 @@ } } }, - "/v1/subscriptions/{subscriptionId}/pricing": { + "/v1/logs": { "get": { "tags": [ - "Subscriptions - Pro" + "Account" ], - "summary": "Get Pro subscription pricing", - "description": "Gets pricing details for the specified Pro subscription.", - "operationId": "getSubscriptionPricing", + "summary": "Get system logs", + "description": "Gets [system logs](https://redis.io/docs/latest/operate/rc/api/examples/audit-system-logs/) for this account.", + "operationId": "getAccountSystemLogs", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, + "name": "offset", + "in": "query", + "description": "Number of items to skip.", + "required": false, "schema": { "type": "integer", "format": "int32" - } + }, + "example": 0 + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of logs to return. Limit: 1000", + "required": false, + "schema": { + "maximum": 1000, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "example": 100 + }, + { + "name": "startTime", + "in": "query", + "description": "Filter logs with time >= startTime (UTC)", + "required": false, + "schema": { + "type": "string" + }, + "example": "2025-01-01T00:00:00Z" + }, + { + "name": "endTime", + "in": "query", + "description": "Filter logs with time <= endTime (UTC)", + "required": false, + "schema": { + "type": "string" + }, + "example": "2025-01-31T23:59:59Z" + }, + { + "name": "resourceId", + "in": "query", + "description": "Filter logs by resourceId", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "example": 1234 } ], "responses": { @@ -10515,7 +10500,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriptionPricings" + "$ref": "#/components/schemas/AccountSystemLogEntries" } } } @@ -10541,14 +10526,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/traffic": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/traffic": { "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "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.", - "operationId": "getDatabaseTraffic", + "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.", + "operationId": "getDatabaseTraffic_1", "parameters": [ { "name": "subscriptionId", @@ -10611,14 +10596,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/slow-log": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/slow-log": { "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Get database slowlog", - "description": "Gets the slowlog for a specific database.", - "operationId": "getSlowLog", + "summary": "Get Essentials database slow-log by database id", + "description": "Get slow-log for a specific database identified by Essentials subscription Id and database Id", + "operationId": "getSlowLog_1", "parameters": [ { "name": "subscriptionId", @@ -10639,15 +10624,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "regionName", - "in": "query", - "description": "Region name - required for Active-Active subscription", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { @@ -10688,14 +10664,14 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/certificate": { + "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/available-target-versions": { "get": { "tags": [ - "Databases - Pro" + "Databases - Essentials" ], - "summary": "Get Pro database TLS certificate", - "description": "Gets the X.509 PEM (base64) encoded server certificate for TLS connection to the database. Requires 'enableTLS' to be 'true' for the database.", - "operationId": "getSubscriptionDatabaseCertificate", + "summary": "Get available upgrade versions for Essentials database", + "description": "Gets a list of available Redis versions that the specified Essentials database can be upgraded to.", + "operationId": "getEssentialsDatabaseAvailableVersions", "parameters": [ { "name": "subscriptionId", @@ -10703,7 +10679,6 @@ "description": "Subscription ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } @@ -10714,7 +10689,6 @@ "description": "Database ID.", "required": true, "schema": { - "minimum": 0, "type": "integer", "format": "int32" } @@ -10732,7 +10706,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseCertificate" + "$ref": "#/components/schemas/DatabaseAvailableVersionsResponse" } } } @@ -10758,34 +10732,24 @@ } } }, - "/v1/subscriptions/{subscriptionId}/databases/{databaseId}/available-target-versions": { + "/v1/fixed/redis-versions": { "get": { "tags": [ - "Databases - Pro" + "Subscriptions - Essentials" ], - "summary": "Get available upgrade versions for Pro database", - "description": "Gets a list of available Redis versions that the specified Pro database can be upgraded to.", - "operationId": "getDatabaseAvailableVersions", + "summary": "Get available Redis database versions for specific Essentials subscription", + "description": "Gets a list of all available Redis database versions for a specific Essentials subscription.", + "operationId": "getRedisVersions_1", "parameters": [ { "name": "subscriptionId", - "in": "path", + "in": "query", "description": "Subscription ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -10800,7 +10764,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseAvailableVersionsResponse" + "$ref": "#/components/schemas/RedisVersions" } } } @@ -10826,23 +10790,36 @@ } } }, - "/v1/subscriptions/redis-versions": { + "/v1/fixed/plans": { "get": { "tags": [ - "Subscriptions - Pro" + "Subscriptions - Essentials" ], - "summary": "Get available Redis database versions", - "description": "Gets a list of all available Redis database versions for Pro subscriptions.", - "operationId": "getRedisVersions", + "summary": "Get Essentials plans", + "description": "Gets a list of Essentials plans. The plan describes the dataset size, cloud provider and region, and available database configuration options for an Essentials database.", + "operationId": "getAllFixedSubscriptionsPlans", "parameters": [ { - "name": "subscriptionId", + "name": "provider", "in": "query", - "description": "Subscription ID (required for an existing subscription)", + "description": "Returns plans supported by the specified Cloud Provider.", "required": false, "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "enum": [ + "AWS", + "GCP", + "AZURE" + ] + } + }, + { + "name": "redisFlex", + "in": "query", + "description": "Returns Redis Flex plans.", + "required": false, + "schema": { + "type": "boolean" } } ], @@ -10858,7 +10835,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RedisVersions" + "$ref": "#/components/schemas/FixedSubscriptionsPlans" } } } @@ -10884,58 +10861,24 @@ } } }, - "/v1/session-logs": { + "/v1/fixed/plans/{planId}": { "get": { "tags": [ - "Account" + "Subscriptions - Essentials" ], - "summary": "Get session logs", - "description": "Gets session logs for this account.", - "operationId": "getAccountSessionLogs", + "summary": "Get a single Essentials plan", + "description": "Gets information on the specified Essentials plan.", + "operationId": "getFixedSubscriptionsPlanById", "parameters": [ { - "name": "offset", - "in": "query", - "description": "Number of items to skip.", - "required": false, + "name": "planId", + "in": "path", + "description": "Essentials plan ID.", + "required": true, "schema": { "type": "integer", "format": "int32" - }, - "example": 0 - }, - { - "name": "limit", - "in": "query", - "description": "Maximum number of logs to return. Limit: 100", - "required": false, - "schema": { - "maximum": 100, - "minimum": 1, - "type": "integer", - "format": "int32" - }, - "example": 100 - }, - { - "name": "startTime", - "in": "query", - "description": "Filter session logs with time >= startTime (UTC)", - "required": false, - "schema": { - "type": "string" - }, - "example": "2025-01-01T00:00:00Z" - }, - { - "name": "endTime", - "in": "query", - "description": "Filter session logs with time <= endTime (UTC)", - "required": false, - "schema": { - "type": "string" - }, - "example": "2025-01-31T23:59:59Z" + } } ], "responses": { @@ -10950,7 +10893,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AccountSessionLogEntries" + "$ref": "#/components/schemas/FixedSubscriptionsPlan" } } } @@ -10976,26 +10919,23 @@ } } }, - "/v1/regions": { + "/v1/fixed/plans/subscriptions/{subscriptionId}": { "get": { "tags": [ - "Account" + "Subscriptions - Essentials" ], - "summary": "Get available Pro plan regions", - "description": "Gets a list of available regions for Pro subscriptions. For Essentials subscriptions, use [GET /fixed/plans](#tag/Subscriptions-Essentials/operation/getAllFixedSubscriptionsPlans).", - "operationId": "getSupportedRegions", + "summary": "Get Essentials plans for a subscription", + "description": "Gets a list of compatible Essentials plans for the specified Essentials subscription.", + "operationId": "getFixedSubscriptionsPlansBySubscriptionId", "parameters": [ { - "name": "provider", - "in": "query", - "description": "Filters results to the specified cloud provider.", - "required": false, + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, "schema": { - "type": "string", - "enum": [ - "AWS", - "GCP" - ] + "type": "integer", + "format": "int32" } } ], @@ -11011,7 +10951,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Regions" + "$ref": "#/components/schemas/FixedSubscriptionsPlans" } } } @@ -11037,14 +10977,14 @@ } } }, - "/v1/query-performance-factors": { + "/v1/database-modules": { "get": { "tags": [ "Account" ], - "summary": "Get query performance factors", - "description": "Gets a list of available [query performance factors](https://redis.io/docs/latest/operate/rc/databases/configuration/advanced-capabilities/#query-performance-factor).", - "operationId": "getSupportedSearchScalingFactors", + "summary": "Get advanced capabilities", + "description": "Gets a list of Redis [advanced capabilities](https://redis.io/docs/latest/operate/rc/databases/configuration/advanced-capabilities/) (also known as modules) available for databases prior to Redis 8. Advanced capability support may differ based on subscription and database settings.", + "operationId": "getSupportedDatabaseModules", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -11057,7 +10997,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchScalingFactorsData" + "$ref": "#/components/schemas/ModulesData" } } } @@ -11083,14 +11023,14 @@ } } }, - "/v1/payment-methods": { + "/v1/data-persistence": { "get": { "tags": [ "Account" ], - "summary": "Get payment methods", - "description": "Gets a list of all payment methods for this account.", - "operationId": "getAccountPaymentMethods", + "summary": "Get data persistence options", + "description": "Gets a list of all [data persistence](https://redis.io/docs/latest/operate/rc/databases/configuration/data-persistence/) options for this account.", + "operationId": "getDataPersistenceOptions", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -11103,7 +11043,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PaymentMethods" + "$ref": "#/components/schemas/DataPersistenceOptions" } } } @@ -11129,69 +11069,24 @@ } } }, - "/v1/logs": { + "/v1/cost-report/{costReportId}": { "get": { "tags": [ "Account" ], - "summary": "Get system logs", - "description": "Gets [system logs](https://redis.io/docs/latest/operate/rc/api/examples/audit-system-logs/) for this account.", - "operationId": "getAccountSystemLogs", + "summary": "Get cost report", + "description": "Returns the generated cost report file in FOCUS format using the costReportId returned from the cost report generation task. The file is downloaded as an attachment with the filename set to the costReportId.", + "operationId": "getCostReport", "parameters": [ { - "name": "offset", - "in": "query", - "description": "Number of items to skip.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 0 - }, - { - "name": "limit", - "in": "query", - "description": "Maximum number of logs to return. Limit: 1000", - "required": false, - "schema": { - "maximum": 1000, - "minimum": 1, - "type": "integer", - "format": "int32" - }, - "example": 100 - }, - { - "name": "startTime", - "in": "query", - "description": "Filter logs with time >= startTime (UTC)", - "required": false, - "schema": { - "type": "string" - }, - "example": "2025-01-01T00:00:00Z" - }, - { - "name": "endTime", - "in": "query", - "description": "Filter logs with time <= endTime (UTC)", - "required": false, + "name": "costReportId", + "in": "path", + "description": "Cost Report ID. Returned from a Cost Report generation task.", + "required": true, "schema": { "type": "string" }, - "example": "2025-01-31T23:59:59Z" - }, - { - "name": "resourceId", - "in": "query", - "description": "Filter logs by resourceId", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 1234 + "example": "cost-report-12345-abcdef" } ], "responses": { @@ -11202,13 +11097,9 @@ "description": "Precondition Failed - Feature flag for this flow is off" }, "200": { - "description": "OK", + "description": "Returns the cost report file", "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AccountSystemLogEntries" - } - } + "application/octet-stream": {} } }, "401": { @@ -11232,38 +11123,14 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/traffic": { + "/v1/": { "get": { "tags": [ - "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.", - "operationId": "getDatabaseTraffic_1", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "minimum": 0, - "type": "integer", - "format": "int32" - } - } + "Account" ], + "summary": "Get current account", + "description": "Gets information on this account.", + "operationId": "getCurrentAccount", "responses": { "400": { "description": "Bad Request - The server cannot process the request due to something that is perceived to be a client error" @@ -11276,7 +11143,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatabaseTrafficStateResponse" + "$ref": "#/components/schemas/RootAccount" } } } @@ -11302,2335 +11169,2053 @@ } } }, - "/v1/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/slow-log": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace": { "get": { "tags": [ - "Databases - Essentials" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get Essentials database slow-log by database id", - "description": "Get slow-log for a specific database identified by Essentials subscription Id and database Id", - "operationId": "getSlowLog_1", + "operationId": "getWorkspace", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", "required": true, "schema": { "type": "integer", - "format": "int32" + "format": "int64" } } ], "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/DatabaseSlowLogEntries" + "$ref": "#/components/schemas/WorkspaceResponse" } } } - }, - "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/fixed/subscriptions/{subscriptionId}/databases/{databaseId}/available-target-versions": { - "get": { + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + }, + "post": { "tags": [ - "Databases - Essentials" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get available upgrade versions for Essentials database", - "description": "Gets a list of available Redis versions that the specified Essentials database can be upgraded to.", - "operationId": "getEssentialsDatabaseAvailableVersions", + "operationId": "createWorkspace", "parameters": [ { "name": "subscriptionId", "in": "path", - "description": "Subscription ID.", "required": true, "schema": { "type": "integer", - "format": "int32" - } - }, - { - "name": "databaseId", - "in": "path", - "description": "Database ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" + "format": "int64" } } ], - "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" + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceCreateRequest" + } + } }, - "200": { - "description": "OK", + "required": true + }, + "responses": { + "202": { + "description": "Accepted", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/DatabaseAvailableVersionsResponse" + "$ref": "#/components/schemas/WorkspaceTaskResponse" } } } - }, - "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/fixed/redis-versions": { - "get": { + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + }, + "delete": { "tags": [ - "Subscriptions - Essentials" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get available Redis database versions for specific Essentials subscription", - "description": "Gets a list of all available Redis database versions for a specific Essentials subscription.", - "operationId": "getRedisVersions_1", + "operationId": "deleteWorkspace", "parameters": [ { "name": "subscriptionId", - "in": "query", - "description": "Subscription ID.", + "in": "path", "required": true, "schema": { "type": "integer", - "format": "int32" + "format": "int64" } } ], "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" - }, + "202": { + "description": "Accepted", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/data-integration-workspaces": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "listWorkspaces", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspacesResponse" + } + } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get RDI API information", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2Info", + "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RedisVersions" + "type": "object", + "additionalProperties": true } } } - }, - "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 " + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } } - } + ] }, - "/v1/fixed/plans": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { "get": { "tags": [ - "Subscriptions - Essentials" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get Essentials plans", - "description": "Gets a list of Essentials plans. The plan describes the dataset size, cloud provider and region, and available database configuration options for an Essentials database.", - "operationId": "getAllFixedSubscriptionsPlans", + "summary": "List RDI pipelines", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2Pipelines", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Create an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "createRdiV2Pipeline", "parameters": [ { - "name": "provider", + "name": "dry_run", "in": "query", - "description": "Returns plans supported by the specified Cloud Provider.", + "description": "Validate the pipeline without deploying it.", "required": false, "schema": { - "type": "string", - "enum": [ - "AWS", - "GCP", - "AZURE" - ] + "type": "boolean" } }, { - "name": "redisFlex", + "name": "validate_cdc", "in": "query", - "description": "Returns Redis Flex plans.", + "description": "Validate change data capture configuration.", "required": false, "schema": { "type": "boolean" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": 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/FixedSubscriptionsPlans" + "type": "object", + "additionalProperties": true } } } - }, - "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 " + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } } - } + ] }, - "/v1/fixed/plans/{planId}": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { "get": { "tags": [ - "Subscriptions - Essentials" - ], - "summary": "Get a single Essentials plan", - "description": "Gets information on the specified Essentials plan.", - "operationId": "getFixedSubscriptionsPlanById", - "parameters": [ - { - "name": "planId", - "in": "path", - "description": "Essentials plan ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "Subscriptions - Pro - Data Integration" ], + "summary": "Get an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2Pipeline", "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/FixedSubscriptionsPlan" + "type": "object", + "additionalProperties": true } } } - }, - "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/fixed/plans/subscriptions/{subscriptionId}": { - "get": { + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "put": { "tags": [ - "Subscriptions - Essentials" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get Essentials plans for a subscription", - "description": "Gets a list of compatible Essentials plans for the specified Essentials subscription.", - "operationId": "getFixedSubscriptionsPlansBySubscriptionId", + "summary": "Replace an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "replaceRdiV2Pipeline", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, "schema": { - "type": "integer", - "format": "int32" + "type": "boolean" } - } - ], - "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" }, + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FixedSubscriptionsPlans" + "type": "object", + "additionalProperties": true } } } - }, - "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": { + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "delete": { "tags": [ - "Account" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get advanced capabilities", - "description": "Gets a list of Redis [advanced capabilities](https://redis.io/docs/latest/operate/rc/databases/configuration/advanced-capabilities/) (also known as modules) available for databases prior to Redis 8. Advanced capability support may differ based on subscription and database settings.", - "operationId": "getSupportedDatabaseModules", + "summary": "Delete an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "deleteRdiV2Pipeline", "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/ModulesData" + "type": "object", + "additionalProperties": true } } } - }, - "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/data-persistence": { - "get": { + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "patch": { "tags": [ - "Account" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get data persistence options", - "description": "Gets a list of all [data persistence](https://redis.io/docs/latest/operate/rc/databases/configuration/data-persistence/) options for this account.", - "operationId": "getDataPersistenceOptions", - "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" + "summary": "Update an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "updateRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, + "schema": { + "type": "boolean" + } }, + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DataPersistenceOptions" + "type": "object", + "additionalProperties": true } } } - }, - "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 " + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" } } - } + ] }, - "/v1/data-integration-workspaces": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { "get": { "tags": [ - "Data Integration" + "Subscriptions - Pro - Data Integration" ], - "summary": "List Data Integration workspaces", - "description": "Lists all Data Integration workspaces in the current account. Proxied to the Cloud RDI service.", - "operationId": "getDataIntegrationWorkspaces", + "summary": "Get RDI pipeline status", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2PipelineStatus", "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/JsonNode" + "type": "object", + "additionalProperties": true } } } - }, - "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 " + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" } } - } + ] }, - "/v1/cost-report/{costReportId}": { - "get": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { + "post": { "tags": [ - "Account" - ], - "summary": "Get cost report", - "description": "Returns the generated cost report file in FOCUS format using the costReportId returned from the cost report generation task. The file is downloaded as an attachment with the filename set to the costReportId.", - "operationId": "getCostReport", - "parameters": [ - { - "name": "costReportId", - "in": "path", - "description": "Cost Report ID. Returned from a Cost Report generation task.", - "required": true, - "schema": { - "type": "string" - }, - "example": "cost-report-12345-abcdef" - } + "Subscriptions - Pro - Data Integration" ], + "summary": "Start an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "startRdiV2Pipeline", "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": "Returns the cost report file", + "description": "OK", "content": { - "application/octet-stream": {} + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } } - }, - "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 " + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" } } - } + ] }, - "/v1/": { - "get": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { + "post": { "tags": [ - "Account" + "Subscriptions - Pro - Data Integration" ], - "summary": "Get current account", - "description": "Gets information on this account.", - "operationId": "getCurrentAccount", + "summary": "Stop an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "stopRdiV2Pipeline", "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/RootAccount" + "type": "object", + "additionalProperties": true } } } - }, - "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 " } - } - } - } - }, - "components": { - "schemas": { - "TargetVersion": { - "type": "object", - "properties": { - "redisVersion": { + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { "type": "string" } } - }, - "AclUserCreateRequest": { - "required": [ - "name", - "password", - "role" + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Access control user name.", - "example": "ACL-user-example" - }, - "role": { - "type": "string", - "description": "Name of the database access role to assign to this user. Use GET '/acl/roles' to get a list of database access roles.", - "example": "ACL-role-example" - }, - "password": { - "type": "string", - "description": "The database password for this user.", - "example": "ab123AB$%^" - }, - "commandType": { - "type": "string", - "readOnly": true + "summary": "Reset an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "resetRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } } }, - "description": "ACL user create request" + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "AccountUserUpdateRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "userId": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The account user's name.", - "example": "My new user name" - }, - "role": { - "type": "string", - "description": "Changes the account user's role. See [Team management roles](https://redis.io/docs/latest/operate/rc/security/access-control/access-management/#team-management-roles) to learn about available account roles.", - "enum": [ - "Owner", - "Member", - "Viewer", - "Logs Viewer (API use only)", - "Manager", - "Billing Admin" - ] - }, - "commandType": { - "type": "string", - "readOnly": true + "format": "int64" } }, - "description": "User update request" - }, - "JsonNode": { - "type": "object" + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "List RDI pipeline metric collections", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2MetricCollections", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "PaymentMethods": { - "type": "object", - "properties": { - "accountId": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get an RDI pipeline metric collection", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2MetricCollection", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } } } } }, - "description": "RedisLabs Account payment methods", - "example": { - "accountId": 1001, - "paymentMethods": [ - { - "id": 2, - "type": "Visa", - "creditCardEndsWith": "9349", - "nameOnCard": "CAPI User", - "expirationMonth": 2, - "expirationYear": 2026, - "links": [] - } - ] - } + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "AclRoleDatabaseSpec": { - "required": [ - "databaseId", - "subscriptionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "description": "Subscription ID for the database's subscription. Use 'GET /subscriptions' or 'GET /fixed/subscriptions' to get a list of available subscriptions and their IDs.", - "format": "int32" - }, - "databaseId": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "description": "The database's ID. Use 'GET /subscriptions/{subscriptionId}/databases' or 'GET /fixed/subscriptions/{subscriptionId}/databases' to get a list of databases in a subscription and their IDs.", - "format": "int32" - }, - "regions": { - "type": "array", - "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", - "example": [], - "items": { - "type": "string", - "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", - "example": "[]" + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "collection_name", + "in": "path", + "description": "Metric collection name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "List RDI pipeline secrets", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2PipelineSecrets", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } } } }, - "description": "A list of databases where the specified rule applies for this role." + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "ActiveActiveTgwUpdateCidrsRequest": { - "type": "object", - "properties": { - "cidrs": { - "type": "array", - "description": "Optional. List of transit gateway attachment CIDRs.", - "example": [ - "10.10.10.0/24", - "10.10.20.0/24" - ], - "items": { - "$ref": "#/components/schemas/Cidr" + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Create an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "createRdiV2PipelineSecret", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } } - }, - "commandType": { - "type": "string", - "readOnly": true } }, - "description": "Active active Transit Gateway update attachment cidr/s request message" - }, - "RootAccount": { - "type": "object", - "properties": { - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } } } } }, - "example": { - "account": { - "id": 1001, - "name": "Redis", - "createdTimestamp": "2018-12-23T15:15:31Z", - "updatedTimestamp": "2022-10-12T10:54:10Z", - "pocStatus": "inactive", - "marketplaceStatus": "active", - "key": { - "name": "capi-api-key-name", - "accountId": 1001, - "accountName": "Redis", - "allowedSourceIps": [ - "0.0.0.0/0" - ], - "createdTimestamp": "2022-05-11T12:05:47Z", - "owner": { - "name": "CAPI user", - "email": "capi.user@redis.com" - }, - "userAccountId": 1, - "httpSourceIp": "79.0.0.173" - } + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" } } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2PipelineSecret", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "PrivateLinkActiveActiveCreateRequest": { - "required": [ - "principal", - "regionId", - "shareName", - "type" + "put": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true - }, - "shareName": { - "maxLength": 64, - "minLength": 0, - "type": "string", - "description": "Name for the resource share", - "example": "my-private-link-share" - }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" - }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] - }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" - }, - "commandType": { - "type": "string", - "readOnly": true + "summary": "Replace an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "replaceRdiV2PipelineSecret", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } } }, - "description": "Request to create a private link for Active-Active subscription" + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "ActiveActiveVpcPeeringCreateAwsRequest": { - "required": [ - "awsAccountId", - "destinationRegion", - "sourceRegion", - "vpcId" + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." - }, - "destinationRegion": { - "type": "string", - "description": "Name of region to create a VPC peering to.", - "example": "us-east-1" - }, - "awsAccountId": { - "type": "string", - "description": "AWS Account ID.", - "example": "" - }, - "vpcId": { - "type": "string", - "description": "VPC ID.", - "example": "" - }, - "vpcCidr": { - "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" - }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" + "summary": "Delete an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "deleteRdiV2PipelineSecret", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } } - }, - "commandType": { - "type": "string", - "readOnly": true } }, - "description": "VPC peering creation request message" + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "SubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated subscription name.", - "example": "My new subscription name" - }, - "paymentMethodId": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", - "format": "int32" - }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", - "enum": [ - "credit-card", - "marketplace" - ] + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "key", + "in": "path", + "description": "Secret key.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get RDI pipeline source schema", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2SourceSchema", + "parameters": [ + { + "name": "schemas", + "in": "query", + "description": "Comma-separated source schemas to include.", + "required": false, + "schema": { + "type": "string" + } }, - "publicEndpointAccess": { - "type": "boolean", - "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint." + { + "name": "tables", + "in": "query", + "description": "Comma-separated source tables to include.", + "required": false, + "schema": { + "type": "string" + } }, - "commandType": { - "type": "string", - "readOnly": true + { + "name": "details", + "in": "query", + "description": "Include detailed source schema metadata.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } } }, - "description": "Subscription update request message" + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "DatabaseTagUpdateRequest": { - "required": [ - "value" - ], - "type": "object", - "properties": { - "subscriptionId": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "key": { - "type": "string", - "readOnly": true - }, - "value": { - "type": "string", - "description": "Database tag value" - }, - "commandType": { - "type": "string", - "readOnly": true + "format": "int64" } }, - "description": "Database tag update request message" - }, - "ActiveActivePscEndpointCreateRequest": { - "required": [ - "endpointConnectionName", - "gcpProjectId", - "gcpVpcName", - "gcpVpcSubnetName", - "pscServiceId", - "regionId", - "subscriptionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "pscServiceId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true, - "example": 27 - }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" - }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" - }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" - }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" - }, - "commandType": { - "type": "string", - "readOnly": true + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" } }, - "description": "Private Service Connect endpoint create request" - }, - "TaskStateUpdate": { - "type": "object", - "properties": { - "taskId": { - "type": "string", - "format": "uuid" - }, - "commandType": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "initialized", - "received", - "processing-in-progress", - "processing-completed", - "processing-error" - ] - }, - "description": { + { + "name": "source_name", + "in": "path", + "description": "Source name.", + "required": true, + "schema": { "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "response": { - "$ref": "#/components/schemas/ProcessorResponse" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Flush an RDI pipeline target", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "flushRdiV2Target", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true } } } - } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" }, - "Database": { - "type": "object", - "properties": { - "databaseId": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "target_name", + "in": "path", + "description": "Target name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "listTasks", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTasksResponse" + } } } } }, - "example": { - "databaseId": 1, - "name": "DB-RCP-2-81-7", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "respVersion": "resp3", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 - }, - "activatedOn": "2021-08-29T13:03:08Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] + "x-speakeasy-group": "tasks", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getTask", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" + { + "name": "taskId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "password": "redis123456redis", - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases/51170941", - "type": "GET" } - ] - } - }, - "SubscriptionDatabaseSpec": { - "required": [ - "name", - "protocol" + } + }, + "x-speakeasy-group": "tasks", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-database-example" - }, - "protocol": { - "type": "string", - "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", - "enum": [ - "redis", - "memcached" - ] - }, - "port": { - "type": "integer", - "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", - "format": "int32", - "example": 10000 - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", - "example": false - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Databases replication. Default: 'true'" - }, - "throughputMeasurement": { - "$ref": "#/components/schemas/DatabaseThroughputSpec" - }, - "localThroughputMeasurement": { - "type": "array", - "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", - "items": { - "$ref": "#/components/schemas/LocalThroughput" + "operationId": "listEndpoints", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } - }, - "modules": { - "type": "array", - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", - "items": { - "$ref": "#/components/schemas/DatabaseModuleSpec" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" + } + } } - }, - "quantity": { - "type": "integer", - "description": "Optional. Number of databases that will be created with these settings. Default: 1", - "format": "int32", - "example": 1 - }, - "averageItemSizeInBytes": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", - "format": "int64", - "deprecated": true - }, - "ramPercentage": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", - "format": "int32", - "example": 20 - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "redisVersion": { - "type": "string", - "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", - "example": "7.2" - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." - }, - "shardingType": { - "type": "string", - "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", - "enum": [ - "default-regex-rules", - "custom-regex-rules", - "redis-oss-hashing" - ] - }, - "queryPerformanceFactor": { - "type": "string", - "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", - "example": "2x" } }, - "description": "One or more database specification(s) to create in this subscription." + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" }, - "Subscription": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "paymentMethodId": { - "type": "integer", - "format": "int32" - }, - "status": { - "type": "string" - }, - "publicEndpointAccess": { - "type": "boolean" - }, - "memoryStorage": { - "type": "string", - "enum": [ - "ram", - "ram-and-flash" - ] - }, - "numberOfDatabases": { - "type": "integer", - "format": "int32" - }, - "paymentMethodType": { - "type": "string", - "enum": [ - "credit-card", - "marketplace" - ] - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "createEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePrivateLinkEndpointRequest" } } }, - "persistentStorageEncryptionType": { - "type": "string" - }, - "deletionGracePeriod": { - "type": "string" - }, - "customerManagedKeyAccessDetails": { - "$ref": "#/components/schemas/CustomerManagedKeyAccessDetails" + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } + } } }, - "description": "RedisLabs Subscription information", - "example": { - "id": 1206, - "name": "updated new name", - "status": "active", - "deploymentType": "single-region", - "paymentMethodId": 2, - "publicEndpointAccess": true, - "memoryStorage": "ram", - "numberOfDatabases": 6, - "paymentMethodType": "credit-card", - "storageEncryption": false, - "subscriptionPricing": [ - { - "type": "Shards", - "typeDetails": "high-throughput", - "quantity": 7, - "quantityMeasurement": "shards", - "pricePerUnit": 0.124, - "priceCurrency": "USD", - "pricePeriod": "hour" + "x-speakeasy-group": "privatelink", + "x-speakeasy-name-override": "create-endpoint", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } - ], - "cloudDetails": [ - { - "provider": "AWS", - "cloudAccountId": 2, - "totalSizeInGb": 0.0272, - "regions": [ - { - "region": "us-east-1", - "networking": [ - { - "deploymentCIDR": "10.0.0.0/24", - "subnetId": "subnet-009ce004ed90da8a6" - } - ], - "preferredAvailabilityZones": [ - "us-east-1a" - ], - "multipleAvailabilityZones": false - } - ], - "links": [] + }, + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "string" } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416", - "type": "GET" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + } + } } - ] - } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" }, - "CidrWhiteListUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "cidrIps": { - "type": "array", - "description": "List of CIDR values. Example: ['10.1.1.0/32']", - "items": { - "type": "string", - "description": "List of CIDR values. Example: ['10.1.1.0/32']" + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "deleteEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "securityGroupIds": { - "type": "array", - "description": "List of AWS Security group IDs.", - "items": { - "type": "string", - "description": "List of AWS Security group IDs." + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } + } } - }, - "commandType": { - "type": "string", - "readOnly": true } }, - "description": "Update Pro subscription" - }, - "FixedDatabaseCreateRequest": { - "required": [ - "name" + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-Essentials-database-example" - }, - "protocol": { - "type": "string", - "description": "Optional. Database protocol. Use 'stack' to get all of Redis' advanced capabilities. Only use 'redis' for Pay-as-you-go or Redis Flex subscriptions. Default: 'stack' for most subscriptions, 'redis' for Redis Flex subscriptions.", - "enum": [ - "redis", - "memcached", - "stack" - ] - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true + "operationId": "validateEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "validatePrivateLink", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationRequest" + } + } }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", - "example": true + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationResponse" + } + } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getSuggestedCidrs", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, - "redisVersion": { - "type": "string", - "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version. (available in 'GET /fixed/redis-versions')", - "example": "7.4" - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", - "example": true - }, - "enableDatabaseClustering": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances. Default: 'false'", - "example": false - }, - "numberOfShards": { - "type": "integer", - "description": "(Pay-as-you-go subscriptions only) Optional. Specifies the number of master shards.", - "format": "int32", - "example": 2 - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." - }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups.", - "example": "s3://" - }, - "sourceIps": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + { + "name": "cidr-mask", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 22 } - }, - "regexRules": { - "type": "array", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and .", - "items": { - "type": "string", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and ." + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/CidrsInfoResponse" + } + } } - }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "listDrafts", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } - }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftListResponse" + } + } } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" - }, - "password": { - "type": "string", - "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated." - }, - "alerts": { - "type": "array", - "description": "Optional. Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "createDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } - }, - "modules": { - "type": "array", - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Can only be set if 'protocol' is 'redis'. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", - "items": { - "$ref": "#/components/schemas/DatabaseModuleSpec" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + } } - }, - "commandType": { - "type": "string", - "readOnly": true } }, - "description": "Essentials database definition" - }, - "DatabaseUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftCreatedResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "mountSecretsFromPayload", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + } + } }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "translate", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateRequest" + } + } }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", - "example": false - }, - "name": { - "type": "string", - "description": "Optional. Updated database name.", - "example": "Redis-database-example-updated" - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "throughputMeasurement": { - "$ref": "#/components/schemas/DatabaseThroughputSpec" - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Turns database replication on or off." - }, - "regexRules": { - "type": "array", - "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", - "items": { - "type": "string", - "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateResponse" + } + } } - }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", - "example": false - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", - "example": false - }, - "password": { - "type": "string", - "description": "Optional. Changes the password used to access the database with the 'default' user. Can only be set if 'protocol' is 'redis'.", - "example": "P@ssw0rd" - }, - "saslUsername": { - "type": "string", - "description": "Optional. Changes the Memcached (SASL) username to access the database. Can only be set if 'protocol' is 'memcached'.", - "example": "mc-HR7gb" - }, - "saslPassword": { - "type": "string", - "description": "Optional. Changes the Memcached (SASL) password to access the database. Can only be set if 'protocol' is 'memcached'.", - "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT" - }, - "sourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + } + } } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." - }, - "enableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. Can only be set if 'protocol' is 'redis'." - }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. If set to an empty string, the backup path will be removed.", - "example": "s3://", - "deprecated": true - }, - "remoteBackup": { - "$ref": "#/components/schemas/DatabaseBackupConfig" - }, - "alerts": { - "type": "array", - "description": "Optional. Changes Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "put": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "updateDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "ramPercentage": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50).", - "format": "int32", - "example": 20 - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." - }, - "commandType": { - "type": "string", - "readOnly": true + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + } + } }, - "queryPerformanceFactor": { - "type": "string", - "description": "Optional. Changes the query performance factor. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", - "example": "2x" + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + } + } + } } }, - "description": "Database update request" + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" }, - "LocalRegionProperties": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Required. Name of the region to update." - }, - "remoteBackup": { - "$ref": "#/components/schemas/DatabaseBackupConfig" - }, - "localThroughputMeasurement": { - "$ref": "#/components/schemas/LocalThroughput" - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence for this region. If set, 'globalDataPersistence' will not apply to this region.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "password": { - "type": "string", - "description": "Optional. Changes the password used to access the database in this region. If set, 'globalPassword' will not apply to this region.", - "example": "P@ssw0rd" - }, - "sourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']" + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "deleteDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "alerts": { - "type": "array", - "description": "Optional. Redis database alert settings for this region. If set, 'glboalAlerts' will not apply to this region.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version for this region. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "enableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. If set, 'globalEnableDefaultUser' will not apply to this region." } - }, - "description": "Optional. A list of regions and local settings to update." - }, - "PscEndpointCreateRequest": { - "required": [ - "endpointConnectionName", - "gcpProjectId", - "gcpVpcName", - "gcpVpcSubnetName", - "pscServiceId", - "subscriptionId" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "pscServiceId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" - }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" - }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" - }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" - }, - "commandType": { - "type": "string", - "readOnly": true + "responses": { + "200": { + "description": "OK" } }, - "description": "Private Service Connect endpoint create request" - }, - "ActiveActiveVpcPeeringCreateBaseRequest": { - "required": [ - "sourceRegion" + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Active-Active VPC peering creation request message", - "oneOf": [ + "operationId": "getComposed", + "parameters": [ { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateAwsRequest" + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateGcpRequest" + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - ] - }, - "BaseSubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "commandType": { - "type": "string", - "readOnly": true + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RdiPatchRequest" + } + } + } } }, - "description": "Subscription update request message", - "oneOf": [ + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "validateDraft", + "parameters": [ { - "$ref": "#/components/schemas/SubscriptionUpdateRequest" + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, { - "$ref": "#/components/schemas/SubscriptionUpdateCMKRequest" + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - ] - }, - "Regions": { - "type": "object", - "properties": { - "regions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Region" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RdiPipelineResponse" + } + } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "mountSecrets", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" } } + ], + "responses": { + "204": { + "description": "No Content" + } }, - "example": { - "regions": [ - { - "id": 1, - "name": "us-east-1", - "provider": "AWS" - }, - { - "id": 2, - "name": "us-west-1", - "provider": "AWS" - }, - { - "id": 3, - "name": "us-west-2", - "provider": "AWS" - }, - { - "id": 4, - "name": "eu-west-1", - "provider": "AWS" - }, - { - "id": 29, - "name": "eu-central-1", - "provider": "AWS" - }, - { - "id": 7, - "name": "sa-east-1", - "provider": "AWS" - }, - { - "id": 63, - "name": "ca-central-1", - "provider": "AWS" - }, - { - "id": 62, - "name": "eu-north-1", - "provider": "AWS" - }, - { - "id": 61, - "name": "eu-west-3", - "provider": "AWS" - }, - { - "id": 60, - "name": "eu-west-2", - "provider": "AWS" - }, - { - "id": 59, - "name": "us-east-2", - "provider": "AWS" - }, - { - "id": 64, - "name": "ap-east-1", - "provider": "AWS" - }, - { - "id": 146, - "name": "ap-southeast-5", - "provider": "AWS" - }, - { - "id": 30, - "name": "ap-south-1", - "provider": "AWS" - }, - { - "id": 117, - "name": "ap-northeast-3", - "provider": "AWS" - }, - { - "id": 116, - "name": "ap-northeast-2", - "provider": "AWS" - }, - { - "id": 145, - "name": "ap-southeast-7", - "provider": "AWS" - }, - { - "id": 6, - "name": "ap-northeast-1", - "provider": "AWS" - }, - { - "id": 5, - "name": "ap-southeast-1", - "provider": "AWS" - }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "validateSecret", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecretValidationRequestDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecretValidationResponseDto" + } + } + } + } + }, + "x-speakeasy-group": "secrets", + "x-speakeasy-name-override": "validate", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "validateSingleSecret", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationRequestDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationResponseDto" + } + } + } + } + }, + "x-speakeasy-group": "secrets", + "x-api-lifecycle": "preview" + } + } + }, + "components": { + "schemas": { + "TargetVersion": { + "type": "object", + "properties": { + "redisVersion": { + "type": "string" + } + } + }, + "AclUserCreateRequest": { + "required": [ + "name", + "password", + "role" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Access control user name.", + "example": "ACL-user-example" + }, + "role": { + "type": "string", + "description": "Name of the database access role to assign to this user. Use GET '/acl/roles' to get a list of database access roles.", + "example": "ACL-role-example" + }, + "password": { + "type": "string", + "description": "The database password for this user.", + "example": "ab123AB$%^" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL user create request" + }, + "AccountUserUpdateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The account user's name.", + "example": "My new user name" + }, + "role": { + "type": "string", + "description": "Changes the account user's role. See [Team management roles](https://redis.io/docs/latest/operate/rc/security/access-control/access-management/#team-management-roles) to learn about available account roles.", + "enum": [ + "Owner", + "Member", + "Viewer", + "Logs Viewer (API use only)", + "Manager", + "Billing Admin" + ] + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "User update request" + }, + "PaymentMethods": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs Account payment methods", + "example": { + "accountId": 1001, + "paymentMethods": [ { - "id": 15, - "name": "ap-southeast-2", - "provider": "AWS" - }, - { - "id": 132, - "name": "il-central-1", - "provider": "AWS" - }, - { - "id": 144, - "name": "mx-central-1", - "provider": "AWS" - }, - { - "id": 32, - "name": "asia-east1", - "provider": "GCP" - }, - { - "id": 67, - "name": "asia-east2", - "provider": "GCP" - }, - { - "id": 33, - "name": "asia-northeast1", - "provider": "GCP" - }, - { - "id": 104, - "name": "asia-northeast2", - "provider": "GCP" - }, - { - "id": 69, - "name": "asia-south1", - "provider": "GCP" - }, - { - "id": 34, - "name": "asia-southeast1", - "provider": "GCP" - }, - { - "id": 71, - "name": "australia-southeast1", - "provider": "GCP" - }, - { - "id": 72, - "name": "europe-north1", - "provider": "GCP" - }, - { - "id": 35, - "name": "europe-west1", - "provider": "GCP" - }, - { - "id": 74, - "name": "europe-west2", - "provider": "GCP" - }, - { - "id": 128, - "name": "asia-southeast2", - "provider": "GCP" - }, - { - "id": 75, - "name": "europe-west3", - "provider": "GCP" - }, - { - "id": 36, - "name": "europe-west4", - "provider": "GCP" - }, - { - "id": 133, - "name": "europe-west10", - "provider": "GCP" - }, - { - "id": 130, - "name": "europe-southwest1", - "provider": "GCP" - }, - { - "id": 134, - "name": "europe-west8", - "provider": "GCP" - }, - { - "id": 113, - "name": "europe-west6", - "provider": "GCP" - }, - { - "id": 129, - "name": "me-west1", - "provider": "GCP" - }, - { - "id": 135, - "name": "europe-west9", - "provider": "GCP" - }, - { - "id": 77, - "name": "northamerica-northeast1", - "provider": "GCP" - }, - { - "id": 136, - "name": "europe-west12", - "provider": "GCP" - }, - { - "id": 137, - "name": "europe-central2", - "provider": "GCP" - }, - { - "id": 131, - "name": "northamerica-northeast2", - "provider": "GCP" - }, - { - "id": 138, - "name": "me-central2", - "provider": "GCP" - }, - { - "id": 139, - "name": "me-central1", - "provider": "GCP" - }, - { - "id": 140, - "name": "us-east5", - "provider": "GCP" - }, - { - "id": 141, - "name": "us-south1", - "provider": "GCP" - }, - { - "id": 27, - "name": "us-central1", - "provider": "GCP" - }, - { - "id": 38, - "name": "us-east1", - "provider": "GCP" - }, - { - "id": 39, - "name": "us-east4", - "provider": "GCP" - }, - { - "id": 40, - "name": "us-west1", - "provider": "GCP" - }, - { - "id": 82, - "name": "us-west2", - "provider": "GCP" - }, - { - "id": 142, - "name": "southamerica-west1", - "provider": "GCP" - }, - { - "id": 95, - "name": "southamerica-east1", - "provider": "GCP" - }, - { - "id": 143, - "name": "africa-south1", - "provider": "GCP" + "id": 2, + "type": "Visa", + "creditCardEndsWith": "9349", + "nameOnCard": "CAPI User", + "expirationMonth": 2, + "expirationYear": 2026, + "links": [] } ] } }, - "FixedSubscriptionsPlans": { + "AclRoleDatabaseSpec": { + "required": [ + "databaseId", + "subscriptionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "description": "Subscription ID for the database's subscription. Use 'GET /subscriptions' or 'GET /fixed/subscriptions' to get a list of available subscriptions and their IDs.", + "format": "int32" + }, + "databaseId": { + "type": "integer", + "description": "The database's ID. Use 'GET /subscriptions/{subscriptionId}/databases' or 'GET /fixed/subscriptions/{subscriptionId}/databases' to get a list of databases in a subscription and their IDs.", + "format": "int32" + }, + "regions": { + "type": "array", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", + "example": [], + "items": { + "type": "string", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", + "example": "[]" + } + } + }, + "description": "A list of databases where the specified rule applies for this role." + }, + "ActiveActiveTgwUpdateCidrsRequest": { + "type": "object", + "properties": { + "cidrs": { + "type": "array", + "description": "Optional. List of transit gateway attachment CIDRs.", + "example": [ + "10.10.10.0/24", + "10.10.20.0/24" + ], + "items": { + "$ref": "#/components/schemas/Cidr" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active active Transit Gateway update attachment cidr/s request message" + }, + "RootAccount": { "type": "object", "properties": { "links": { @@ -13643,212 +13228,38 @@ } } }, - "description": "Redis list of Essentials subscriptions plans", "example": { - "plans": [ - { - "id": 98183, - "name": "Multi-AZ 5GB", - "size": 5, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-east-1", - "regionId": 1, - "price": 100, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "Multi-zone", - "connections": "unlimited", - "cidrAllowRules": 16, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "supportSsl": true, - "supportedAlerts": [ - "datasets-size", - "latency", - "throughput-lower-than", - "throughput-higher-than" - ], - "customerSupport": "Standard", - "links": [] - }, - { - "id": 98181, - "name": "Multi-AZ 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-east-1", - "regionId": 1, - "price": 22, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "Multi-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "supportSsl": true, - "supportedAlerts": [ - "datasets-size", - "throughput-higher-than", - "throughput-lower-than", - "latency", - "connections-limit" + "account": { + "id": 1001, + "name": "Redis", + "createdTimestamp": "2018-12-23T15:15:31Z", + "updatedTimestamp": "2022-10-12T10:54:10Z", + "pocStatus": "inactive", + "marketplaceStatus": "active", + "key": { + "name": "capi-api-key-name", + "accountId": 1001, + "accountName": "Redis", + "allowedSourceIps": [ + "0.0.0.0/0" ], - "customerSupport": "Standard", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/plans?cloud_provider=AWS", - "type": "GET" - } - ] - } - }, - "ActiveActiveVpcPeeringUpdateAwsRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "vpcPeeringId": { - "type": "integer", - "description": "VPC Peering id to update.", - "format": "int32", - "readOnly": true - }, - "vpcCidr": { - "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" - }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.22.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Active-Active VPC peering update request message" - }, - "DatabaseTrafficStateResponse": { - "type": "object", - "properties": { - "bdbId": { - "type": "integer", - "format": "int32" - }, - "trafficStatus": { - "type": "string" - }, - "canResume": { - "type": "boolean" - }, - "resumeInProgress": { - "type": "boolean" - }, - "stopReason": { - "type": "string" - }, - "resumeEligibleAt": { - "type": "string", - "format": "date-time" - } - } - }, - "DataPersistenceEntry": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "description": "RedisLabs data persistence information" - }, - "CloudAccounts": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "createdTimestamp": "2022-05-11T12:05:47Z", + "owner": { + "name": "CAPI user", + "email": "capi.user@redis.com" + }, + "userAccountId": 1, + "httpSourceIp": "79.0.0.173" } } - }, - "description": "RedisLabs Cloud Accounts information", - "example": { - "accountId": 40131, - "cloudAccounts": [ - { - "id": 1, - "name": "Redis Internal Resources", - "provider": "AWS", - "status": "active", - "links": [] - }, - { - "id": 2, - "name": "CAPI User ", - "provider": "AWS", - "status": "active", - "accessKeyId": "A***A", - "links": [] - }, - { - "id": 3, - "name": "API Cloud account", - "provider": "AWS", - "status": "active", - "accessKeyId": "A***4", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts", - "type": "GET" - } - ] } }, - "PrivateLinkActiveActivePrincipalsCreateRequest": { + "PrivateLinkActiveActiveCreateRequest": { "required": [ "principal", - "regionId" + "regionId", + "shareName", + "type" ], "type": "object", "properties": { @@ -13863,6 +13274,13 @@ "format": "int32", "readOnly": true }, + "shareName": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "Name for the resource share", + "example": "my-private-link-share" + }, "principal": { "type": "string", "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", @@ -13891,52 +13309,43 @@ "readOnly": true } }, - "description": "Request to add a principal to private link for Active-Active subscription" + "description": "Request to create a private link for Active-Active subscription" }, - "PrivateLinkActiveActiveConnectionsDisassociateRequest": { + "ActiveActiveVpcPeeringCreateAwsRequest": { "required": [ - "connections" + "awsAccountId", + "destinationRegion", + "sourceRegion", + "vpcId" ], "type": "object", "properties": { + "provider": { + "type": "string" + }, "subscriptionId": { "type": "integer", "format": "int32", "readOnly": true }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true + "sourceRegion": { + "type": "string", + "description": "Name of region to create a VPC peering from." }, - "connections": { - "type": "array", - "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", - "items": { - "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" - } + "destinationRegion": { + "type": "string", + "description": "Name of region to create a VPC peering to.", + "example": "us-east-1" }, - "commandType": { + "awsAccountId": { "type": "string", - "readOnly": true - } - }, - "description": "Request to disassociate connections from private link for Active-Active subscription" - }, - "VpcPeeringUpdateAwsRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "description": "AWS Account ID.", + "example": "" }, - "vpcPeeringId": { - "type": "integer", - "description": "VPC Peering ID to update.", - "format": "int32", - "readOnly": true + "vpcId": { + "type": "string", + "description": "VPC ID.", + "example": "" }, "vpcCidr": { "type": "string", @@ -13961,236 +13370,180 @@ "readOnly": true } }, - "description": "VPC peering update request message" + "description": "VPC peering creation request message" }, - "FixedSubscriptions": { + "SubscriptionUpdateRequest": { "type": "object", "properties": { - "accountId": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Updated subscription name.", + "example": "My new subscription name" + }, + "paymentMethodId": { "type": "integer", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", "format": "int32" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis list of Essentials subscriptions in current account", - "example": { - "accountId": 40131, - "subscriptions": [ - { - "id": 151367, - "name": "fixed-1", - "status": "active", - "paymentMethodId": 8241, - "paymentMethodType": "credit-card", - "planId": 98276, - "planName": "Standard 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-west-1", - "price": 22, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "Single-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "customerSupport": "Standard", - "creationDate": "2022-11-21T20:02:21+02:00", - "links": [] - }, - { - "id": 120416, - "name": "subscription-name", - "status": "active", - "paymentMethodId": 123, - "paymentMethodType": "credit-card", - "planId": 123, - "planName": "Standard 30MB", - "planType": "pay-as-you-go", - "size": 30, - "sizeMeasurementUnit": "MB", - "provider": "AWS", - "region": "us-east-1", - "price": 0, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "no-replication", - "connections": 30, - "cidrAllowRules": 1, - "supportDataPersistence": false, - "supportInstantAndDailyBackups": false, - "supportReplication": false, - "supportClustering": false, - "customerSupport": "basic", - "creationDate": "20-Nov-2022", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions", - "type": "GET" - } - ] - } - }, - "DatabaseSyncSourceSpec": { - "required": [ - "endpoint" - ], - "type": "object", - "properties": { - "endpoint": { + "paymentMethod": { "type": "string", - "description": "Redis URI of a source database. Example format: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: 'redis://endpoint1:6379'." + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", + "enum": [ + "credit-card", + "marketplace" + ] }, - "encryption": { + "publicEndpointAccess": { "type": "boolean", - "description": "Defines if encryption should be used to connect to the sync source. If not set the source is a Redis Cloud database, it will automatically detect if the source uses encryption." + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint." }, - "serverCert": { + "commandType": { "type": "string", - "description": "TLS/SSL certificate chain of the sync source. If not set and the source is a Redis Cloud database, it will automatically detect the certificate to use." + "readOnly": true } }, - "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details." + "description": "Subscription update request message" }, - "MaintenanceWindow": { + "DatabaseTagUpdateRequest": { + "required": [ + "value" + ], "type": "object", "properties": { - "days": { - "type": "array", - "items": { - "type": "string" - } - }, - "startHour": { + "subscriptionId": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, - "durationInHours": { + "databaseId": { "type": "integer", - "format": "int32" - } - } - }, - "Module": { - "type": "object", - "properties": { - "name": { - "type": "string" + "format": "int32", + "readOnly": true }, - "capabilityName": { - "type": "string" + "key": { + "type": "string", + "readOnly": true }, - "description": { - "type": "string" + "value": { + "type": "string", + "description": "Database tag value" + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "RedisLabs database module information" + "description": "Database tag update request message" }, - "AclRedisRuleUpdateRequest": { + "ActiveActivePscEndpointCreateRequest": { "required": [ - "name", - "redisRule" + "endpointConnectionName", + "gcpProjectId", + "gcpVpcName", + "gcpVpcSubnetName", + "pscServiceId", + "regionId", + "subscriptionId" ], "type": "object", "properties": { - "redisRuleId": { + "subscriptionId": { "type": "integer", "format": "int32", "readOnly": true }, - "name": { + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 + }, + "gcpProjectId": { "type": "string", - "description": "Optional. Changes the Redis ACL rule name.", - "example": "ACL-rule-example" + "description": "Google Cloud project ID.", + "example": "my-gcp-project" }, - "redisRule": { + "gcpVpcName": { "type": "string", - "description": "Optional. Changes the Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", - "example": "+set allkeys allchannels" + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" + }, + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" + }, + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "ACL redis rule update request" + "description": "Private Service Connect endpoint create request" }, - "ActiveActiveRegionToDelete": { + "TaskStateUpdate": { "type": "object", "properties": { - "region": { + "taskId": { "type": "string", - "description": "Name of the cloud provider region to delete." - } - }, - "description": "The names of the regions to delete." - }, - "MaintenanceWindowSkipStatus": { - "type": "object", - "properties": { - "remainingSkips": { - "type": "integer", - "format": "int32" + "format": "uuid" }, - "currentSkipEnd": { + "commandType": { "type": "string" - } - } - }, - "DatabaseAvailableVersionsResponse": { - "type": "object", - "properties": { - "targets": { + }, + "status": { + "type": "string", + "enum": [ + "initialized", + "received", + "processing-in-progress", + "processing-completed", + "processing-error" + ] + }, + "description": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "response": { + "$ref": "#/components/schemas/ProcessorResponse" + }, + "links": { "type": "array", "items": { - "$ref": "#/components/schemas/TargetVersion" + "type": "object", + "additionalProperties": { + "type": "string" + } } } } }, - "CloudAccount": { + "Database": { "type": "object", "properties": { - "id": { + "databaseId": { "type": "integer", "format": "int32" }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "accessKeyId": { - "type": "string" - }, - "signInLoginUrl": { - "type": "string" - }, - "awsUserArn": { - "type": "string" - }, - "awsConsoleRoleArn": { - "type": "string" - }, "links": { "type": "array", "items": { @@ -14199,252 +13552,354 @@ "type": "string" } } - }, - "provider": { - "type": "string", - "enum": [ - "AWS", - "GCP" - ] } }, - "description": "RedisLabs Cloud Account information", "example": { - "id": 1, - "name": "Redis Internal Resources", + "databaseId": 1, + "name": "DB-RCP-2-81-7", + "protocol": "redis", "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "respVersion": "resp3", "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 + }, + "activatedOn": "2021-08-29T13:03:08Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "password": "redis123456redis", + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], "links": [ { "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts/1", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases/51170941", "type": "GET" } ] } }, - "PrivateLinkPrincipalsCreateRequest": { + "SubscriptionDatabaseSpec": { "required": [ - "principal" + "name", + "protocol" ], "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "principal": { + "name": { "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-database-example" }, - "type": { + "protocol": { "type": "string", - "description": "Type of the principal", - "example": "aws_account", + "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" + "redis", + "memcached" ] }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Private Link principals create request" - }, - "FixedSubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { + "port": { "type": "integer", + "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", "format": "int32", - "readOnly": true + "example": 10000 }, - "name": { - "type": "string", - "description": "Optional. Updated subscription name.", - "example": "My new subscription" + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true }, - "planId": { - "type": "integer", - "description": "Optional. An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans/subscriptions/{subscriptionId} to get a list of compatible options for the specified subscription.", - "format": "int32" + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 }, - "paymentMethod": { + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", + "example": false + }, + "dataPersistence": { "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", + "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", "enum": [ - "credit-card", - "marketplace" + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" ] }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get a list of payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", - "format": "int32" + "replication": { + "type": "boolean", + "description": "Optional. Databases replication. Default: 'true'" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials subscription update request" - }, - "SearchScalingFactorsData": { - "type": "object", - "properties": { - "queryPerformanceFactors": { + "throughputMeasurement": { + "$ref": "#/components/schemas/DatabaseThroughputSpec" + }, + "localThroughputMeasurement": { "type": "array", + "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", "items": { - "type": "string" + "$ref": "#/components/schemas/LocalThroughput" } }, - "links": { + "modules": { "type": "array", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "$ref": "#/components/schemas/DatabaseModuleSpec" } - } - } - }, - "SubscriptionUpdateCMKRequest": { - "required": [ - "customerManagedKeys" - ], - "type": "object", - "properties": { - "subscriptionId": { + }, + "quantity": { "type": "integer", + "description": "Optional. Number of databases that will be created with these settings. Default: 1", "format": "int32", - "readOnly": true + "example": 1 }, - "commandType": { + "averageItemSizeInBytes": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", + "format": "int64", + "deprecated": true + }, + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", + "format": "int32", + "example": 20 + }, + "respVersion": { "type": "string", - "readOnly": true + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] }, - "deletionGracePeriod": { + "redisVersion": { "type": "string", - "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", - "example": "alerts-only", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", + "example": "7.2" + }, + "autoMinorVersionUpgrade": { + "type": "boolean", + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." + }, + "shardingType": { + "type": "string", + "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", "enum": [ - "alerts-only", - "immediate", - "15-minutes", - "30-minutes", - "1-hour", - "4-hours", - "8-hours", - "12-hours", - "24-hours" + "default-regex-rules", + "custom-regex-rules", + "redis-oss-hashing" ] }, - "customerManagedKeys": { - "type": "array", - "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", - "items": { - "$ref": "#/components/schemas/CustomerManagedKey" - } + "queryPerformanceFactor": { + "type": "string", + "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", + "example": "2x" } }, - "description": "Subscription update request message" + "description": "One or more database specification(s) to create in this subscription." }, - "CostReportCreateRequest": { - "required": [ - "endDate", - "startDate" - ], + "Subscription": { "type": "object", "properties": { - "startDate": { - "type": "string", - "description": "Filter for usage starting on or after this date. Must be in format YYYY-MM-DD", - "format": "YYYY-MM-DD", - "example": "2025-10-01" + "id": { + "type": "integer", + "format": "int32" }, - "endDate": { + "name": { + "type": "string" + }, + "paymentMethodId": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "string" + }, + "publicEndpointAccess": { + "type": "boolean" + }, + "memoryStorage": { "type": "string", - "description": "Filter for usage ending on or before this date. Must be in format YYYY-MM-DD and must be after start date", - "format": "YYYY-MM-DD", - "example": "2025-11-06" + "enum": [ + "ram", + "ram-and-flash" + ] }, - "format": { + "numberOfDatabases": { + "type": "integer", + "format": "int32" + }, + "paymentMethodType": { "type": "string", - "description": "Output format for the cost report", - "example": "csv", - "default": "csv", "enum": [ - "json", - "csv" + "credit-card", + "marketplace" ] }, - "subscriptionIds": { + "links": { "type": "array", - "description": "Array of subscriptionIDs to filter by", - "example": [ - 123, - 456 - ], "items": { - "type": "integer", - "description": "Array of subscriptionIDs to filter by", - "format": "int32" + "type": "object", + "additionalProperties": { + "type": "string" + } } }, - "databaseIds": { - "type": "array", - "description": "Array of database IDs to filter by", - "example": [ - 789, - 101112 - ], - "items": { - "type": "integer", - "description": "Array of database IDs to filter by", - "format": "int32" - } + "persistentStorageEncryptionType": { + "type": "string" }, - "subscriptionType": { - "type": "string", - "description": "Filter by plan type", - "example": "pro", - "enum": [ - "pro", - "essentials" - ] + "deletionGracePeriod": { + "type": "string" }, - "regions": { + "customerManagedKeyAccessDetails": { + "$ref": "#/components/schemas/CustomerManagedKeyAccessDetails" + } + }, + "description": "RedisLabs Subscription information", + "example": { + "id": 1206, + "name": "updated new name", + "status": "active", + "deploymentType": "single-region", + "paymentMethodId": 2, + "publicEndpointAccess": true, + "memoryStorage": "ram", + "numberOfDatabases": 6, + "paymentMethodType": "credit-card", + "storageEncryption": false, + "subscriptionPricing": [ + { + "type": "Shards", + "typeDetails": "high-throughput", + "quantity": 7, + "quantityMeasurement": "shards", + "pricePerUnit": 0.124, + "priceCurrency": "USD", + "pricePeriod": "hour" + } + ], + "cloudDetails": [ + { + "provider": "AWS", + "cloudAccountId": 2, + "totalSizeInGb": 0.0272, + "regions": [ + { + "region": "us-east-1", + "networking": [ + { + "deploymentCIDR": "10.0.0.0/24", + "subnetId": "subnet-009ce004ed90da8a6" + } + ], + "preferredAvailabilityZones": [ + "us-east-1a" + ], + "multipleAvailabilityZones": false + } + ], + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416", + "type": "GET" + } + ] + } + }, + "CidrWhiteListUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "cidrIps": { "type": "array", - "description": "Array of regions to filter by", - "example": [ - "us-east-1", - "eu-west-1" - ], + "description": "List of CIDR values. Example: ['10.1.1.0/32']", "items": { "type": "string", - "description": "Array of regions to filter by", - "example": "[\"us-east-1\",\"eu-west-1\"]" + "description": "List of CIDR values. Example: ['10.1.1.0/32']" } }, - "tags": { + "securityGroupIds": { "type": "array", - "description": "Array of key-value pairs for tag filtering", + "description": "List of AWS Security group IDs.", "items": { - "$ref": "#/components/schemas/Tag" + "type": "string", + "description": "List of AWS Security group IDs." } }, "commandType": { @@ -14452,110 +13907,1786 @@ "readOnly": true } }, - "description": "Cost report generation request" + "description": "Update Pro subscription" }, - "AccountSubscriptionDatabases": { + "FixedDatabaseCreateRequest": { + "required": [ + "name" + ], "type": "object", "properties": { - "accountId": { + "subscriptionId": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "name": { + "type": "string", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-Essentials-database-example" + }, + "protocol": { + "type": "string", + "description": "Optional. Database protocol. Use 'stack' to get all of Redis' advanced capabilities. Only use 'redis' for Pay-as-you-go or Redis Flex subscriptions. Default: 'stack' for most subscriptions, 'redis' for Redis Flex subscriptions.", + "enum": [ + "redis", + "memcached", + "stack" + ] + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", + "example": true + }, + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version. (available in 'GET /fixed/redis-versions')", + "example": "7.4" + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", + "example": true + }, + "enableDatabaseClustering": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances. Default: 'false'", + "example": false + }, + "numberOfShards": { + "type": "integer", + "description": "(Pay-as-you-go subscriptions only) Optional. Specifies the number of master shards.", + "format": "int32", + "example": 2 + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "replication": { + "type": "boolean", + "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." + }, + "periodicBackupPath": { + "type": "string", + "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups.", + "example": "s3://" + }, + "sourceIps": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + } + }, + "regexRules": { + "type": "array", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and .", + "items": { + "type": "string", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and ." + } + }, + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } + }, + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" + }, + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", + "deprecated": true + }, + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" + }, + "password": { + "type": "string", + "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated." + }, + "alerts": { + "type": "array", + "description": "Optional. Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" } + }, + "modules": { + "type": "array", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Can only be set if 'protocol' is 'redis'. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", + "items": { + "$ref": "#/components/schemas/DatabaseModuleSpec" + } + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "RedisLabs Account Subscription Databases information", - "example": { - "accountId": 1001, - "subscription": [ - { - "subscriptionId": 1206, - "numberOfDatabases": 6, - "databases": [ - { - "databaseId": 1, - "name": "DB-RCP-2-81-7", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "respVersion": "resp2", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 - }, - "activatedOn": "2021-08-29T13:03:08Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, - { - "databaseId": 2, - "name": "DB-RCP-2-81-5", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", + "description": "Essentials database definition" + }, + "DatabaseUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", + "example": false + }, + "name": { + "type": "string", + "description": "Optional. Updated database name.", + "example": "Redis-database-example-updated" + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "throughputMeasurement": { + "$ref": "#/components/schemas/DatabaseThroughputSpec" + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "replication": { + "type": "boolean", + "description": "Optional. Turns database replication on or off." + }, + "regexRules": { + "type": "array", + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", + "items": { + "type": "string", + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." + } + }, + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } + }, + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", + "example": false + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", + "example": false + }, + "password": { + "type": "string", + "description": "Optional. Changes the password used to access the database with the 'default' user. Can only be set if 'protocol' is 'redis'.", + "example": "P@ssw0rd" + }, + "saslUsername": { + "type": "string", + "description": "Optional. Changes the Memcached (SASL) username to access the database. Can only be set if 'protocol' is 'memcached'.", + "example": "mc-HR7gb" + }, + "saslPassword": { + "type": "string", + "description": "Optional. Changes the Memcached (SASL) password to access the database. Can only be set if 'protocol' is 'memcached'.", + "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT" + }, + "sourceIp": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + } + }, + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "deprecated": true + }, + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." + }, + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. Can only be set if 'protocol' is 'redis'." + }, + "periodicBackupPath": { + "type": "string", + "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. If set to an empty string, the backup path will be removed.", + "example": "s3://", + "deprecated": true + }, + "remoteBackup": { + "$ref": "#/components/schemas/DatabaseBackupConfig" + }, + "alerts": { + "type": "array", + "description": "Optional. Changes Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50).", + "format": "int32", + "example": 20 + }, + "autoMinorVersionUpgrade": { + "type": "boolean", + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." + }, + "commandType": { + "type": "string", + "readOnly": true + }, + "queryPerformanceFactor": { + "type": "string", + "description": "Optional. Changes the query performance factor. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", + "example": "2x" + } + }, + "description": "Database update request" + }, + "LocalRegionProperties": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "Required. Name of the region to update." + }, + "remoteBackup": { + "$ref": "#/components/schemas/DatabaseBackupConfig" + }, + "localThroughputMeasurement": { + "$ref": "#/components/schemas/LocalThroughput" + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence for this region. If set, 'globalDataPersistence' will not apply to this region.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "password": { + "type": "string", + "description": "Optional. Changes the password used to access the database in this region. If set, 'globalPassword' will not apply to this region.", + "example": "P@ssw0rd" + }, + "sourceIp": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']" + } + }, + "alerts": { + "type": "array", + "description": "Optional. Redis database alert settings for this region. If set, 'glboalAlerts' will not apply to this region.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version for this region. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. If set, 'globalEnableDefaultUser' will not apply to this region." + } + }, + "description": "Optional. A list of regions and local settings to update." + }, + "PscEndpointCreateRequest": { + "required": [ + "endpointConnectionName", + "gcpProjectId", + "gcpVpcName", + "gcpVpcSubnetName", + "pscServiceId", + "subscriptionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "gcpProjectId": { + "type": "string", + "description": "Google Cloud project ID.", + "example": "my-gcp-project" + }, + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" + }, + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" + }, + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Service Connect endpoint create request" + }, + "ActiveActiveVpcPeeringCreateBaseRequest": { + "required": [ + "sourceRegion" + ], + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceRegion": { + "type": "string", + "description": "Name of region to create a VPC peering from." + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active-Active VPC peering creation request message", + "oneOf": [ + { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateAwsRequest" + }, + { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateGcpRequest" + } + ] + }, + "BaseSubscriptionUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Subscription update request message", + "oneOf": [ + { + "$ref": "#/components/schemas/SubscriptionUpdateRequest" + }, + { + "$ref": "#/components/schemas/SubscriptionUpdateCMKRequest" + } + ] + }, + "Regions": { + "type": "object", + "properties": { + "regions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Region" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "regions": [ + { + "id": 1, + "name": "us-east-1", + "provider": "AWS" + }, + { + "id": 2, + "name": "us-west-1", + "provider": "AWS" + }, + { + "id": 3, + "name": "us-west-2", + "provider": "AWS" + }, + { + "id": 4, + "name": "eu-west-1", + "provider": "AWS" + }, + { + "id": 29, + "name": "eu-central-1", + "provider": "AWS" + }, + { + "id": 7, + "name": "sa-east-1", + "provider": "AWS" + }, + { + "id": 63, + "name": "ca-central-1", + "provider": "AWS" + }, + { + "id": 62, + "name": "eu-north-1", + "provider": "AWS" + }, + { + "id": 61, + "name": "eu-west-3", + "provider": "AWS" + }, + { + "id": 60, + "name": "eu-west-2", + "provider": "AWS" + }, + { + "id": 59, + "name": "us-east-2", + "provider": "AWS" + }, + { + "id": 64, + "name": "ap-east-1", + "provider": "AWS" + }, + { + "id": 146, + "name": "ap-southeast-5", + "provider": "AWS" + }, + { + "id": 30, + "name": "ap-south-1", + "provider": "AWS" + }, + { + "id": 117, + "name": "ap-northeast-3", + "provider": "AWS" + }, + { + "id": 116, + "name": "ap-northeast-2", + "provider": "AWS" + }, + { + "id": 145, + "name": "ap-southeast-7", + "provider": "AWS" + }, + { + "id": 6, + "name": "ap-northeast-1", + "provider": "AWS" + }, + { + "id": 5, + "name": "ap-southeast-1", + "provider": "AWS" + }, + { + "id": 15, + "name": "ap-southeast-2", + "provider": "AWS" + }, + { + "id": 132, + "name": "il-central-1", + "provider": "AWS" + }, + { + "id": 144, + "name": "mx-central-1", + "provider": "AWS" + }, + { + "id": 32, + "name": "asia-east1", + "provider": "GCP" + }, + { + "id": 67, + "name": "asia-east2", + "provider": "GCP" + }, + { + "id": 33, + "name": "asia-northeast1", + "provider": "GCP" + }, + { + "id": 104, + "name": "asia-northeast2", + "provider": "GCP" + }, + { + "id": 69, + "name": "asia-south1", + "provider": "GCP" + }, + { + "id": 34, + "name": "asia-southeast1", + "provider": "GCP" + }, + { + "id": 71, + "name": "australia-southeast1", + "provider": "GCP" + }, + { + "id": 72, + "name": "europe-north1", + "provider": "GCP" + }, + { + "id": 35, + "name": "europe-west1", + "provider": "GCP" + }, + { + "id": 74, + "name": "europe-west2", + "provider": "GCP" + }, + { + "id": 128, + "name": "asia-southeast2", + "provider": "GCP" + }, + { + "id": 75, + "name": "europe-west3", + "provider": "GCP" + }, + { + "id": 36, + "name": "europe-west4", + "provider": "GCP" + }, + { + "id": 133, + "name": "europe-west10", + "provider": "GCP" + }, + { + "id": 130, + "name": "europe-southwest1", + "provider": "GCP" + }, + { + "id": 134, + "name": "europe-west8", + "provider": "GCP" + }, + { + "id": 113, + "name": "europe-west6", + "provider": "GCP" + }, + { + "id": 129, + "name": "me-west1", + "provider": "GCP" + }, + { + "id": 135, + "name": "europe-west9", + "provider": "GCP" + }, + { + "id": 77, + "name": "northamerica-northeast1", + "provider": "GCP" + }, + { + "id": 136, + "name": "europe-west12", + "provider": "GCP" + }, + { + "id": 137, + "name": "europe-central2", + "provider": "GCP" + }, + { + "id": 131, + "name": "northamerica-northeast2", + "provider": "GCP" + }, + { + "id": 138, + "name": "me-central2", + "provider": "GCP" + }, + { + "id": 139, + "name": "me-central1", + "provider": "GCP" + }, + { + "id": 140, + "name": "us-east5", + "provider": "GCP" + }, + { + "id": 141, + "name": "us-south1", + "provider": "GCP" + }, + { + "id": 27, + "name": "us-central1", + "provider": "GCP" + }, + { + "id": 38, + "name": "us-east1", + "provider": "GCP" + }, + { + "id": 39, + "name": "us-east4", + "provider": "GCP" + }, + { + "id": 40, + "name": "us-west1", + "provider": "GCP" + }, + { + "id": 82, + "name": "us-west2", + "provider": "GCP" + }, + { + "id": 142, + "name": "southamerica-west1", + "provider": "GCP" + }, + { + "id": 95, + "name": "southamerica-east1", + "provider": "GCP" + }, + { + "id": 143, + "name": "africa-south1", + "provider": "GCP" + } + ] + } + }, + "FixedSubscriptionsPlans": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of Essentials subscriptions plans", + "example": { + "plans": [ + { + "id": 98183, + "name": "Multi-AZ 5GB", + "size": 5, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-east-1", + "regionId": 1, + "price": 100, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "Multi-zone", + "connections": "unlimited", + "cidrAllowRules": 16, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "supportSsl": true, + "supportedAlerts": [ + "datasets-size", + "latency", + "throughput-lower-than", + "throughput-higher-than" + ], + "customerSupport": "Standard", + "links": [] + }, + { + "id": 98181, + "name": "Multi-AZ 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-east-1", + "regionId": 1, + "price": 22, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "Multi-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "supportSsl": true, + "supportedAlerts": [ + "datasets-size", + "throughput-higher-than", + "throughput-lower-than", + "latency", + "connections-limit" + ], + "customerSupport": "Standard", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/plans?cloud_provider=AWS", + "type": "GET" + } + ] + } + }, + "ActiveActiveVpcPeeringUpdateAwsRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "vpcPeeringId": { + "type": "integer", + "description": "VPC Peering id to update.", + "format": "int32", + "readOnly": true + }, + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" + }, + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.22.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active-Active VPC peering update request message" + }, + "DatabaseTrafficStateResponse": { + "type": "object", + "properties": { + "bdbId": { + "type": "integer", + "format": "int32" + }, + "trafficStatus": { + "type": "string" + }, + "canResume": { + "type": "boolean" + }, + "resumeInProgress": { + "type": "boolean" + }, + "stopReason": { + "type": "string" + }, + "resumeEligibleAt": { + "type": "string", + "format": "date-time" + } + } + }, + "DataPersistenceEntry": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "description": "RedisLabs data persistence information" + }, + "CloudAccounts": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs Cloud Accounts information", + "example": { + "accountId": 40131, + "cloudAccounts": [ + { + "id": 1, + "name": "Redis Internal Resources", + "provider": "AWS", + "status": "active", + "links": [] + }, + { + "id": 2, + "name": "CAPI User ", + "provider": "AWS", + "status": "active", + "accessKeyId": "A***A", + "links": [] + }, + { + "id": 3, + "name": "API Cloud account", + "provider": "AWS", + "status": "active", + "accessKeyId": "A***4", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts", + "type": "GET" + } + ] + } + }, + "PrivateLinkActiveActivePrincipalsCreateRequest": { + "required": [ + "principal", + "regionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to add a principal to private link for Active-Active subscription" + }, + "PrivateLinkActiveActiveConnectionsDisassociateRequest": { + "required": [ + "connections" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, + "connections": { + "type": "array", + "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", + "items": { + "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to disassociate connections from private link for Active-Active subscription" + }, + "VpcPeeringUpdateAwsRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "vpcPeeringId": { + "type": "integer", + "description": "VPC Peering ID to update.", + "format": "int32", + "readOnly": true + }, + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" + }, + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "VPC peering update request message" + }, + "FixedSubscriptions": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of Essentials subscriptions in current account", + "example": { + "accountId": 40131, + "subscriptions": [ + { + "id": 151367, + "name": "fixed-1", + "status": "active", + "paymentMethodId": 8241, + "paymentMethodType": "credit-card", + "planId": 98276, + "planName": "Standard 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-west-1", + "price": 22, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "Single-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "customerSupport": "Standard", + "creationDate": "2022-11-21T20:02:21+02:00", + "links": [] + }, + { + "id": 120416, + "name": "subscription-name", + "status": "active", + "paymentMethodId": 123, + "paymentMethodType": "credit-card", + "planId": 123, + "planName": "Standard 30MB", + "planType": "pay-as-you-go", + "size": 30, + "sizeMeasurementUnit": "MB", + "provider": "AWS", + "region": "us-east-1", + "price": 0, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "no-replication", + "connections": 30, + "cidrAllowRules": 1, + "supportDataPersistence": false, + "supportInstantAndDailyBackups": false, + "supportReplication": false, + "supportClustering": false, + "customerSupport": "basic", + "creationDate": "20-Nov-2022", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions", + "type": "GET" + } + ] + } + }, + "DatabaseSyncSourceSpec": { + "required": [ + "endpoint" + ], + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "description": "Redis URI of a source database. Example format: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: 'redis://endpoint1:6379'." + }, + "encryption": { + "type": "boolean", + "description": "Defines if encryption should be used to connect to the sync source. If not set the source is a Redis Cloud database, it will automatically detect if the source uses encryption." + }, + "serverCert": { + "type": "string", + "description": "TLS/SSL certificate chain of the sync source. If not set and the source is a Redis Cloud database, it will automatically detect the certificate to use." + } + }, + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details." + }, + "MaintenanceWindow": { + "type": "object", + "properties": { + "days": { + "type": "array", + "items": { + "type": "string" + } + }, + "startHour": { + "type": "integer", + "format": "int32" + }, + "durationInHours": { + "type": "integer", + "format": "int32" + } + } + }, + "Module": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "capabilityName": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "description": "RedisLabs database module information" + }, + "AclRedisRuleUpdateRequest": { + "required": [ + "name", + "redisRule" + ], + "type": "object", + "properties": { + "redisRuleId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Changes the Redis ACL rule name.", + "example": "ACL-rule-example" + }, + "redisRule": { + "type": "string", + "description": "Optional. Changes the Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", + "example": "+set allkeys allchannels" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL redis rule update request" + }, + "ActiveActiveRegionToDelete": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "Name of the cloud provider region to delete." + } + }, + "description": "The names of the regions to delete." + }, + "MaintenanceWindowSkipStatus": { + "type": "object", + "properties": { + "remainingSkips": { + "type": "integer", + "format": "int32" + }, + "currentSkipEnd": { + "type": "string" + } + } + }, + "DatabaseAvailableVersionsResponse": { + "type": "object", + "properties": { + "targets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TargetVersion" + } + } + } + }, + "CloudAccount": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "accessKeyId": { + "type": "string" + }, + "signInLoginUrl": { + "type": "string" + }, + "awsUserArn": { + "type": "string" + }, + "awsConsoleRoleArn": { + "type": "string" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "provider": { + "type": "string", + "enum": [ + "AWS", + "GCP" + ] + } + }, + "description": "RedisLabs Cloud Account information", + "example": { + "id": 1, + "name": "Redis Internal Resources", + "provider": "AWS", + "status": "active", + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts/1", + "type": "GET" + } + ] + } + }, + "PrivateLinkPrincipalsCreateRequest": { + "required": [ + "principal" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link principals create request" + }, + "FixedSubscriptionUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Updated subscription name.", + "example": "My new subscription" + }, + "planId": { + "type": "integer", + "description": "Optional. An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans/subscriptions/{subscriptionId} to get a list of compatible options for the specified subscription.", + "format": "int32" + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get a list of payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", + "format": "int32" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials subscription update request" + }, + "SearchScalingFactorsData": { + "type": "object", + "properties": { + "queryPerformanceFactors": { + "type": "array", + "items": { + "type": "string" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "SubscriptionUpdateCMKRequest": { + "required": [ + "customerManagedKeys" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + }, + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] + }, + "customerManagedKeys": { + "type": "array", + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", + "items": { + "$ref": "#/components/schemas/CustomerManagedKey" + } + } + }, + "description": "Subscription update request message" + }, + "CostReportCreateRequest": { + "required": [ + "endDate", + "startDate" + ], + "type": "object", + "properties": { + "startDate": { + "type": "string", + "description": "Filter for usage starting on or after this date. Must be in format YYYY-MM-DD", + "format": "YYYY-MM-DD", + "example": "2025-10-01" + }, + "endDate": { + "type": "string", + "description": "Filter for usage ending on or before this date. Must be in format YYYY-MM-DD and must be after start date", + "format": "YYYY-MM-DD", + "example": "2025-11-06" + }, + "format": { + "type": "string", + "description": "Output format for the cost report", + "example": "csv", + "default": "csv", + "enum": [ + "json", + "csv" + ] + }, + "subscriptionIds": { + "type": "array", + "description": "Array of subscriptionIDs to filter by", + "example": [ + 123, + 456 + ], + "items": { + "type": "integer", + "description": "Array of subscriptionIDs to filter by", + "format": "int32" + } + }, + "databaseIds": { + "type": "array", + "description": "Array of database IDs to filter by", + "example": [ + 789, + 101112 + ], + "items": { + "type": "integer", + "description": "Array of database IDs to filter by", + "format": "int32" + } + }, + "subscriptionType": { + "type": "string", + "description": "Filter by plan type", + "example": "pro", + "enum": [ + "pro", + "essentials" + ] + }, + "regions": { + "type": "array", + "description": "Array of regions to filter by", + "example": [ + "us-east-1", + "eu-west-1" + ], + "items": { + "type": "string", + "description": "Array of regions to filter by", + "example": "[\"us-east-1\",\"eu-west-1\"]" + } + }, + "tags": { + "type": "array", + "description": "Array of key-value pairs for tag filtering", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cost report generation request" + }, + "AccountSubscriptionDatabases": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs Account Subscription Databases information", + "example": { + "accountId": 1001, + "subscription": [ + { + "subscriptionId": 1206, + "numberOfDatabases": 6, + "databases": [ + { + "databaseId": 1, + "name": "DB-RCP-2-81-7", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "respVersion": "resp2", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 + }, + "activatedOn": "2021-08-29T13:03:08Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 2, + "name": "DB-RCP-2-81-5", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", "status": "active", "datasetSizeInGb": 2, "memoryUsedInMb": 2, @@ -18170,1240 +19301,3184 @@ "COST_REPORT_FUTURE_DATES_NOT_ALLOWED" ] }, - "additionalInfo": { + "additionalInfo": { + "type": "string" + } + } + }, + "CloudTags": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "accountId": { + "type": "integer", + "format": "int32" + } + }, + "description": "Redis list of database tags", + "example": { + "accountId": 40131, + "tags": [ + { + "key": "environment", + "value": "production", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [] + }, + { + "key": "owner", + "value": "Clifford O'neill", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags", + "type": "GET" + } + ] + } + }, + "RedisVersion": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "eolDate": { + "type": "string", + "format": "date" + }, + "isPreview": { + "type": "boolean" + }, + "isDefault": { + "type": "boolean" + } + } + }, + "AclRoleCreateRequest": { + "required": [ + "name", + "redisRules" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database access role name.", + "example": "ACL-role-example" + }, + "redisRules": { + "type": "array", + "description": "A list of Redis ACL rules to assign to this database access role.", + "items": { + "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL role create request" + }, + "DatabaseBackupRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionName": { + "type": "string", + "description": "Required for Active-Active databases. Name of the cloud provider region to back up. When backing up an Active-Active database, you must back up each region separately." + }, + "adhocBackupPath": { + "type": "string", + "description": "Optional. Manually backs up data to this location, instead of the set 'remoteBackup' location.", + "example": "s3://" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database backup request message" + }, + "ReplicaAsSourceEndpoints": { + "type": "object", + "properties": { + "public": { + "type": "string", + "description": "Public cluster endpoint that can be used as source for replication" + }, + "private": { + "type": "string", + "description": "Private cluster endpoint that can be used as source for replication" + } + }, + "description": "Endpoints to use when configuring another database to replicate from this database (Make sure to use this instead of the dynamic endpoints)." + }, + "DataPersistenceOptions": { + "type": "object", + "properties": { + "dataPersistence": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataPersistenceEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "dataPersistence": [ + { + "name": "none", + "description": "None" + }, + { + "name": "aof-every-1-second", + "description": "Append only file (AOF) - fsync every 1 second" + }, + { + "name": "aof-every-write", + "description": "Append only file (AOF) - fsync every write" + }, + { + "name": "snapshot-every-1-hour", + "description": "Snapshot every 1 hour" + }, + { + "name": "snapshot-every-6-hours", + "description": "Snapshot every 6 hour" + }, + { + "name": "snapshot-every-12-hours", + "description": "Snapshot every 12 hour" + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/data-persistence", + "type": "GET" + } + ] + } + }, + "DatabaseTagCreateRequest": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Database tag key.", + "example": "environment" + }, + "value": { + "type": "string", + "description": "Database tag value.", + "example": "production" + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database tag" + }, + "DatabaseBackupConfig": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Optional. Determine if backup should be active. Default: null" + }, + "interval": { + "type": "string", + "description": "Required when active is 'true'. Defines the interval between backups. Format: 'every-x-hours', where x is one of 24, 12, 6, 4, 2, or 1. Example: \"every-4-hours\"" + }, + "backupInterval": { + "type": "string", + "readOnly": true, + "enum": [ + "EVERY_24_HOURS", + "EVERY_12_HOURS", + "EVERY_6_HOURS", + "EVERY_4_HOURS", + "EVERY_2_HOURS", + "EVERY_1_HOURS" + ] + }, + "timeUTC": { + "type": "string", + "description": "Optional. Hour when the backup starts. Available only for \"every-12-hours\" and \"every-24-hours\" backup intervals. Specified as an hour in 24-hour UTC time. Example: \"14:00\" is 2 PM UTC." + }, + "databaseBackupTimeUTC": { + "type": "string", + "readOnly": true, + "enum": [ + "HOUR_ONE", + "HOUR_TWO", + "HOUR_THREE", + "HOUR_FOUR", + "HOUR_FIVE", + "HOUR_SIX", + "HOUR_SEVEN", + "HOUR_EIGHT", + "HOUR_NINE", + "HOUR_TEN", + "HOUR_ELEVEN", + "HOUR_TWELVE" + ] + }, + "storageType": { + "type": "string", + "description": "Required when active is 'true'. Type of storage to host backup files. Can be \"aws-s3\", \"google-blob-storage\", \"azure-blob-storage\", or \"ftp\". See [Set up backup storage locations](https://redis.io/docs/latest/operate/rc/databases/back-up-data/#set-up-backup-storage-locations) to learn how to set up backup storage locations." + }, + "backupStorageType": { + "type": "string", + "readOnly": true, + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] + }, + "storagePath": { + "type": "string", + "description": "Required when active is 'true'. Path to the backup storage location." + } + }, + "description": "Optional. Changes Remote backup configuration details." + }, + "DynamicEndpoints": { + "type": "object", + "properties": { + "public": { + "type": "string" + }, + "private": { + "type": "string" + } + } + }, + "CrdbFlushRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active-Active database flush request message" + }, + "MaintenanceWindowSpec": { + "required": [ + "days", + "durationInHours", + "startHour" + ], + "type": "object", + "properties": { + "startHour": { + "type": "integer", + "description": "Starting hour of the maintenance window. Can be between '0' (12 AM in the deployment region's local time) and '23' (11 PM in the deployment region's local time).", + "format": "int32", + "example": 12 + }, + "durationInHours": { + "type": "integer", + "description": "The duration of the maintenance window in hours. Can be between 4-24 hours (or 8-24 hours if using 'ram-and-flash').", + "format": "int32", + "example": 8 + }, + "days": { + "type": "array", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", + "example": [ + "Monday", + "Wednesday" + ], + "items": { + "type": "string", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", + "example": "[\"Monday\",\"Wednesday\"]" + } + } + }, + "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided." + }, + "ActiveActiveVpcPeeringCreateGcpRequest": { + "required": [ + "sourceRegion", + "vpcNetworkName", + "vpcProjectUid" + ], + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceRegion": { + "type": "string", + "description": "Name of region to create a VPC peering from." + }, + "vpcProjectUid": { + "type": "string", + "description": "VPC project ID.", + "example": "" + }, + "vpcNetworkName": { + "type": "string", + "description": "VPC network name.", + "example": "" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "VPC peering creation request message" + }, + "SubscriptionCreateRequest": { + "required": [ + "cloudProviders", + "databases" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Optional. New subscription name.", + "example": "My new subscription" + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", + "example": false + }, + "deploymentType": { + "type": "string", + "description": "Optional. When 'single-region' or not set: Creates a single region subscription. When 'active-active': creates an Active-Active (multi-region) subscription.", + "example": "single-region", + "enum": [ + "single-region", + "active-active" + ] + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", + "format": "int32" + }, + "memoryStorage": { + "type": "string", + "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash' (also known as Auto Tiering). Default: 'ram'", + "example": "ram", + "enum": [ + "ram", + "ram-and-flash" + ] + }, + "persistentStorageEncryptionType": { + "type": "string", + "description": "Optional. Persistent storage encryption secures data at rest for database persistence. By default, disk storage is encrypted by keys managed by the cloud provider. Use 'customer-managed-key' if you want to use self-managed persistent storage encryption keys. Default: 'cloud-provider-managed-key'", + "example": "cloud-provider-managed-key", + "enum": [ + "cloud-provider-managed-key", + "customer-managed-key" + ] + }, + "persistentStorageEncryptionKeys": { + "$ref": "#/components/schemas/CustomerManagedKeyProperties" + }, + "cloudProviders": { + "type": "array", + "description": "Cloud provider, region, and networking details.", + "items": { + "$ref": "#/components/schemas/SubscriptionSpec" + } + }, + "databases": { + "type": "array", + "description": "One or more database specification(s) to create in this subscription.", + "items": { + "$ref": "#/components/schemas/SubscriptionDatabaseSpec" + } + }, + "redisVersion": { + "type": "string", + "description": "Optional. Defines the Redis version of the databases created in this specific request. It doesn't determine future databases associated with this subscription. If not set, databases will use the default Redis version. This field is deprecated and will be removed in a future API version - use the database-level redisVersion property instead.", + "example": "7.2", + "deprecated": true + }, + "publicEndpointAccess": { + "type": "boolean", + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint. Default: 'true'." + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Subscription create request" + }, + "RedisVersions": { + "type": "object", + "properties": { + "redisVersions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RedisVersion" + } + } + } + }, + "CloudAccountUpdateRequest": { + "required": [ + "accessKeyId", + "accessSecretKey", + "consolePassword", + "consoleUsername" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name", + "example": "My new Cloud Account" + }, + "cloudAccountId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "accessKeyId": { + "type": "string", + "description": "Cloud provider access key.", + "example": "****" + }, + "accessSecretKey": { + "type": "string", + "description": "Cloud provider secret key.", + "example": "****" + }, + "consoleUsername": { + "type": "string", + "description": "Cloud provider management console username.", + "example": "me@mycompany.com" + }, + "consolePassword": { + "type": "string", + "description": "Cloud provider management console password.", + "example": "****" + }, + "signInLoginUrl": { + "type": "string", + "description": "Optional. Cloud provider management console login URL.", + "example": "https://.signin.aws.amazon.com/console" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cloud Account definition" + }, + "PrivateLinkCreateRequest": { + "required": [ + "principal", + "shareName", + "type" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "shareName": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "Name of the resource share", + "example": "my-redis-share" + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link create request" + }, + "SubscriptionPricings": { + "type": "object", + "properties": { + "pricing": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubscriptionPricing" + } + } + } + }, + "SubscriptionPricing": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "typeDetails": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int32" + }, + "quantityMeasurement": { + "type": "string" + }, + "pricePerUnit": { + "type": "number", + "format": "double" + }, + "priceCurrency": { + "type": "string" + }, + "pricePeriod": { + "type": "string" + }, + "region": { + "type": "string" + } + } + }, + "ReplicaOfSpec": { + "required": [ + "syncSources" + ], + "type": "object", + "properties": { + "syncSources": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details.", + "items": { + "$ref": "#/components/schemas/DatabaseSyncSourceSpec" + } + } + }, + "description": "Optional. Changes Replica Of (also known as Active-Passive) configuration details." + }, + "PrivateLinkActiveActivePrincipalsDeleteRequest": { + "required": [ + "principal", + "regionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "An AWS account ID or ARN to remove from the private link", + "example": "123456789012" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to remove principals from private link for Active-Active subscription" + }, + "DatabaseThroughputSpec": { + "required": [ + "by", + "value" + ], + "type": "object", + "properties": { + "by": { + "type": "string", + "description": "Throughput measurement method. Use 'operations-per-second' for all new databases.", + "enum": [ + "operations-per-second", + "number-of-shards" + ] + }, + "value": { + "type": "integer", + "description": "Throughput value in the selected measurement method.", + "format": "int64", + "example": 10000 + } + }, + "description": "Optional. Throughput measurement method." + }, + "FixedDatabase": { + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "protocol": { + "type": "string", + "enum": [ + "redis", + "memcached", + "stack" + ] + }, + "provider": { + "type": "string" + }, + "region": { + "type": "string" + }, + "redisVersion": { + "type": "string" + }, + "redisVersionCompliance": { + "type": "string", + "deprecated": true + }, + "respVersion": { + "type": "string", + "enum": [ + "resp2", + "resp3" + ] + }, + "status": { + "type": "string" + }, + "planMemoryLimit": { + "type": "number", + "format": "double" + }, + "planDatasetSize": { + "type": "number", + "format": "double" + }, + "memoryLimitMeasurementUnit": { + "type": "string" + }, + "memoryLimitInGb": { + "type": "number", + "format": "double" + }, + "datasetSizeInGb": { + "type": "number", + "format": "double" + }, + "memoryUsedInMb": { + "type": "number", + "format": "double" + }, + "networkMonthlyUsageInByte": { + "type": "number", + "format": "double" + }, + "memoryStorage": { + "type": "string", + "enum": [ + "ram", + "ram-and-flash" + ] + }, + "redisFlex": { + "type": "boolean" + }, + "supportOSSClusterApi": { + "type": "boolean" + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean" + }, + "dataPersistence": { + "type": "string", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "replication": { + "type": "boolean" + }, + "dataEvictionPolicy": { + "type": "string", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "activatedOn": { + "type": "string", + "format": "date-time" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "publicEndpoint": { + "type": "string" + }, + "privateEndpoint": { + "type": "string" + }, + "dynamicEndpoints": { + "$ref": "#/components/schemas/DynamicEndpoints" + }, + "replicaAsSourceEndpoints": { + "$ref": "#/components/schemas/ReplicaAsSourceEndpoints" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "databaseId": 51324587, + "name": "bdb", + "protocol": "stack", + "provider": "AWS", + "region": "us-east-1", + "status": "draft", + "planMemoryLimit": 250, + "respVersion": "resp2", + "memoryLimitMeasurementUnit": "MB", + "memoryUsedInMb": 7, + "memoryStorage": "ram", + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "noeviction", + "clustering": { + "enabled": false, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "defaultUserEnabled": true, + "password": "myCustomPassword", + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18534, + "name": "RediSearch", + "capabilityName": "Search and query", + "version": "2.2.6", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + }, + { + "id": 18535, + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "version": "2.2.12", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "id": 18537, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.6.8", + "description": "Time-Series data structure for Redis", + "parameters": [] + } + ], + "alerts": [ + { + "name": "connections-limit", + "value": 80, + "defaultValue": 80 + } + ], + "backup": { + "remoteBackupEnabled": false + }, + "links": [] + } + }, + "DatabaseImportRequest": { + "required": [ + "importFromUri", + "sourceType" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceType": { + "type": "string", + "description": "Type of storage from which to import the database RDB file or Redis data.", + "example": "http", + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] + }, + "importFromUri": { + "type": "array", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "items": { + "type": "string", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database import request" + }, + "DatabaseUpgradeRedisVersionRequest": { + "required": [ + "targetRedisVersion" + ], + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "targetRedisVersion": { + "type": "string", + "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", + "example": "7.4" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Upgrades the specified Pro database to a later Redis version." + }, + "CustomerManagedKey": { + "required": [ + "resourceName" + ], + "type": "object", + "properties": { + "resourceName": { + "type": "string", + "description": "The resource name of the customer managed key.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, + "region": { + "type": "string", + "description": "(Required for Active-Active subscriptions only) Region for the customer managed key as defined by the cloud provider." + } + }, + "description": "Object representing a customer managed key (CMK), along with the region it is associated to." + }, + "ActiveActiveRegionCreateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "region": { + "type": "string", + "description": "Name of region to add as defined by the cloud provider." + }, + "vpcId": { + "type": "string", + "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format and must exist within the hosting account.", + "example": "vpc-0125be68a4625884ad" + }, + "deploymentCIDR": { + "type": "string", + "description": "Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses.", + "example": "10.0.0.0/24" + }, + "subnetIds": { + "type": "array", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']", + "items": { + "type": "string", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']" + } + }, + "securityGroupId": { + "type": "string", + "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account.", + "example": "sg-0125be68a4625884ad" + }, + "multipleAvailabilityZones": { + "type": "boolean", + "description": "Optional. Support deployment on multiple availability zones within the selected region. When omitted, defaults to true unless the region is explicitly marked as not supporting multi-AZ.", + "example": false + }, + "preferredAvailabilityZones": { + "type": "array", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region.", + "items": { + "type": "string", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region." + } + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan, and does not create any resources. Default: 'false'", + "example": false + }, + "databases": { + "type": "array", + "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database", + "items": { + "$ref": "#/components/schemas/CrdbRegionSpec" + } + }, + "respVersion": { + "type": "string", + "description": "Optional. RESP version must be compatible with Redis version.", + "example": "resp3", + "deprecated": true, + "enum": [ + "resp2", + "resp3" + ] + }, + "customerManagedKeyResourceName": { + "type": "string", + "description": "Required for subscriptions where 'persistentStorageEncryptionType' is 'customer-managed-key'. The resource name of the customer-managed encryption key for the region.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active active region creation request message" + }, + "FixedDatabaseImportRequest": { + "required": [ + "importFromUri", + "sourceType" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceType": { + "type": "string", + "description": "Type of storage from which to import the database RDB file or Redis data.", + "example": "http", + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] + }, + "importFromUri": { + "type": "array", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "items": { + "type": "string", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database import request" + }, + "PrivateLinkPrincipalsDeleteRequest": { + "required": [ + "principal" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "An AWS account ID or ARN to remove from the private link", + "example": "123456789012" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link principals delete request" + }, + "CustomerManagedKeyProperties": { + "required": [ + "customerManagedKeys" + ], + "type": "object", + "properties": { + "customerManagedKeys": { + "type": "array", + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", + "items": { + "$ref": "#/components/schemas/CustomerManagedKey" + } + }, + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] + } + }, + "description": "Optional. Contains information about the keys used for each region. Can be used only with external cloud account" + }, + "VpcPeeringCreateBaseRequest": { + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Vpc peering creation request message", + "oneOf": [ + { + "$ref": "#/components/schemas/VpcPeeringCreateAwsRequest" + }, + { + "$ref": "#/components/schemas/VpcPeeringCreateGcpRequest" + } + ] + }, + "ComposeDraftAdvanced": { + "type": "object", + "properties": { + "processor": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "ComposeDraftSource": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/PostgresqlSource" + }, + { + "$ref": "#/components/schemas/MySqlSource" + }, + { + "$ref": "#/components/schemas/MariaDbSource" + }, + { + "$ref": "#/components/schemas/OracleSource" + }, + { + "$ref": "#/components/schemas/SqlServerSource" + }, + { + "$ref": "#/components/schemas/MongodbSource" + }, + { + "$ref": "#/components/schemas/SnowflakeSource" + } + ] + }, + "ComposeDraftSourceBase": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "ComposeDraftTarget": { + "type": "object", + "properties": { + "targetBdbId": { + "type": "integer", + "format": "int64" + } + } + }, + "ComposeDraftUpsertRequest": { + "type": "object", + "properties": { + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" + }, + "sourceName": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "pipelineDescription": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + } + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } + }, + "clientData": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "Job": { + "required": [ + "file", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "file": { + "type": "string" + }, + "error": { + "$ref": "#/components/schemas/WebError" + }, + "rdiJob": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "MariaDbSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "serverId": { + "type": "integer", + "format": "int32" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "MongodbSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "connectionString": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "MySqlSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "serverId": { + "type": "integer", + "format": "int32" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "OracleSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "pdb": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "PostgresqlSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "Properties": { + "type": "object" + }, + "Schema": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + } + } + } + }, + "SnowflakeSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "accountIdentifier": { + "type": "string" + }, + "warehouse": { + "type": "string" + }, + "role": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "SqlServerSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + } + ] + }, + "Table": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableColumn" + } + }, + "snapshot_sql": { + "type": "string" + } + } + }, + "TableColumn": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "uniqueConstraint": { + "type": "boolean" + } + } + }, + "WebError": { + "type": "object", + "properties": { + "timestamp": { + "type": "integer", + "format": "int64" + }, + "status": { + "type": "integer", + "format": "int32" + }, + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "params": { + "type": "string" + } + } + }, + "ComposeDraftResponse": { + "type": "object", + "properties": { + "draftId": { + "type": "string" + }, + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" + }, + "sourceName": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "pipelineDescription": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + } + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } + }, + "clientData": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "Advanced": { + "type": "object", + "properties": { + "source": { + "$ref": "#/components/schemas/Properties" + }, + "sink": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "Aws": { + "type": "object", + "properties": { + "privateLink": { + "$ref": "#/components/schemas/PrivateLink" + } + } + }, + "Endpoint": { + "type": "object", + "properties": { + "vpceId": { "type": "string" } } }, - "CloudTags": { + "Pipeline": { "type": "object", "properties": { - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } + "name": { + "type": "string" }, - "accountId": { - "type": "integer", - "format": "int32" + "deploymentCIDR": { + "type": "string" } - }, - "description": "Redis list of database tags", - "example": { - "accountId": 40131, - "tags": [ - { - "key": "environment", - "value": "production", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [] - }, - { - "key": "owner", - "value": "Clifford O'neill", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags", - "type": "GET" - } - ] } }, - "RedisVersion": { + "PipelineInfraDto": { "type": "object", "properties": { - "version": { + "pipeline": { + "$ref": "#/components/schemas/Pipeline" + }, + "aws": { + "$ref": "#/components/schemas/Aws" + }, + "source": { + "$ref": "#/components/schemas/Source" + } + } + }, + "PrivateLink": { + "type": "object", + "properties": { + "serviceName": { "type": "string" }, - "eolDate": { + "endpoint": { + "$ref": "#/components/schemas/Endpoint" + } + } + }, + "Source": { + "type": "object", + "properties": { + "connectivityMode": { "type": "string", - "format": "date" + "enum": [ + "privateLink", + "publicEndpoint" + ] }, - "isPreview": { + "id": { + "type": "string" + }, + "dbType": { + "type": "string", + "enum": [ + "mysql", + "mariadb", + "oracle", + "sqlserver", + "postgresql", + "mongodb", + "snowflake" + ] + }, + "datasetSizeGB": { + "type": "integer", + "format": "int32" + }, + "dbSecretsARN": { + "type": "string" + }, + "dbUseTLS": { "type": "boolean" }, - "isDefault": { + "dbUseMTLS": { "type": "boolean" + }, + "dbCaCertARN": { + "type": "string" + }, + "dbClientCertARN": { + "type": "string" + }, + "dbClientKeyARN": { + "type": "string" + }, + "dbClientKeyPasswordARN": { + "type": "string" + }, + "dbPort": { + "type": "integer", + "format": "int32" + }, + "dbServerId": { + "type": "integer", + "format": "int32" + }, + "dbConnectionString": { + "type": "string" + }, + "databases": { + "type": "string" + }, + "pdb": { + "type": "string" + }, + "advanced": { + "$ref": "#/components/schemas/Advanced" + }, + "dbHost": { + "type": "string" + }, + "dbUser": { + "type": "string" + }, + "dbPass": { + "type": "string" } } }, - "AclRoleCreateRequest": { + "PipelineConfigAdvanced": { + "type": "object", + "properties": { + "processor": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "PipelineConfigDto": { "required": [ - "name", - "redisRules" + "definitionType", + "targetDataType" ], "type": "object", "properties": { - "name": { + "targetDataType": { "type": "string", - "description": "Database access role name.", - "example": "ACL-role-example" + "enum": [ + "hash", + "json" + ] }, - "redisRules": { + "definitionType": { + "type": "string", + "enum": [ + "predefined", + "manual" + ] + }, + "schemas": { "type": "array", - "description": "A list of Redis ACL rules to assign to this database access role.", "items": { - "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + "$ref": "#/components/schemas/Schema" } }, - "commandType": { - "type": "string", - "readOnly": true + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } + }, + "advanced": { + "$ref": "#/components/schemas/PipelineConfigAdvanced" } - }, - "description": "ACL role create request" + } }, - "DatabaseBackupRequest": { + "PipelineConfigJobsResponseDto": { "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionName": { - "type": "string", - "description": "Required for Active-Active databases. Name of the cloud provider region to back up. When backing up an Active-Active database, you must back up each region separately." - }, - "adhocBackupPath": { - "type": "string", - "description": "Optional. Manually backs up data to this location, instead of the set 'remoteBackup' location.", - "example": "s3://" - }, - "commandType": { - "type": "string", - "readOnly": true + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } } - }, - "description": "Database backup request message" + } }, - "ReplicaAsSourceEndpoints": { + "EulaAcceptanceResponseDto": { "type": "object", "properties": { - "public": { - "type": "string", - "description": "Public cluster endpoint that can be used as source for replication" + "accepted": { + "type": "boolean" }, - "private": { + "acceptedAt": { "type": "string", - "description": "Private cluster endpoint that can be used as source for replication" + "format": "date-time" } - }, - "description": "Endpoints to use when configuring another database to replicate from this database (Make sure to use this instead of the dynamic endpoints)." + } }, - "DataPersistenceOptions": { + "WorkspaceCreateRequest": { "type": "object", "properties": { - "dataPersistence": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataPersistenceEntry" - } + "cidr": { + "type": "string" + } + } + }, + "TaskLink": { + "type": "object", + "properties": { + "href": { + "type": "string" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } + "type": { + "type": "string" } - }, - "example": { - "dataPersistence": [ - { - "name": "none", - "description": "None" - }, - { - "name": "aof-every-1-second", - "description": "Append only file (AOF) - fsync every 1 second" - }, - { - "name": "aof-every-write", - "description": "Append only file (AOF) - fsync every write" - }, - { - "name": "snapshot-every-1-hour", - "description": "Snapshot every 1 hour" - }, - { - "name": "snapshot-every-6-hours", - "description": "Snapshot every 6 hour" - }, - { - "name": "snapshot-every-12-hours", - "description": "Snapshot every 12 hour" - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/data-persistence", - "type": "GET" - } - ] } }, - "DatabaseTagCreateRequest": { - "required": [ - "key", - "value" - ], + "TaskLinks": { + "type": "object", + "properties": { + "task": { + "$ref": "#/components/schemas/TaskLink" + }, + "resource": { + "$ref": "#/components/schemas/TaskLink" + } + } + }, + "WorkspaceTaskResponse": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Database tag key.", - "example": "environment" + "taskId": { + "type": "string" }, - "value": { - "type": "string", - "description": "Database tag value.", - "example": "production" + "commandType": { + "type": "string" }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "status": { + "type": "string" }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "description": { + "type": "string" }, - "commandType": { + "timestamp": { "type": "string", - "readOnly": true + "format": "date-time" + }, + "response": { + "type": "object" + }, + "_links": { + "$ref": "#/components/schemas/TaskLinks" } - }, - "description": "Database tag" + } }, - "DatabaseBackupConfig": { + "SecretValidationRequestDto": { "type": "object", "properties": { - "active": { - "type": "boolean", - "description": "Optional. Determine if backup should be active. Default: null" + "credentialsSecretArn": { + "type": "string" }, - "interval": { - "type": "string", - "description": "Required when active is 'true'. Defines the interval between backups. Format: 'every-x-hours', where x is one of 24, 12, 6, 4, 2, or 1. Example: \"every-4-hours\"" + "caCertSecretArn": { + "type": "string" }, - "backupInterval": { - "type": "string", - "readOnly": true, - "enum": [ - "EVERY_24_HOURS", - "EVERY_12_HOURS", - "EVERY_6_HOURS", - "EVERY_4_HOURS", - "EVERY_2_HOURS", - "EVERY_1_HOURS" - ] + "clientCertSecretArn": { + "type": "string" }, - "timeUTC": { - "type": "string", - "description": "Optional. Hour when the backup starts. Available only for \"every-12-hours\" and \"every-24-hours\" backup intervals. Specified as an hour in 24-hour UTC time. Example: \"14:00\" is 2 PM UTC." + "clientKeySecretArn": { + "type": "string" }, - "databaseBackupTimeUTC": { - "type": "string", - "readOnly": true, - "enum": [ - "HOUR_ONE", - "HOUR_TWO", - "HOUR_THREE", - "HOUR_FOUR", - "HOUR_FIVE", - "HOUR_SIX", - "HOUR_SEVEN", - "HOUR_EIGHT", - "HOUR_NINE", - "HOUR_TEN", - "HOUR_ELEVEN", - "HOUR_TWELVE" - ] + "clientKeyPassphraseSecretArn": { + "type": "string" + } + } + }, + "SecretError": { + "type": "object", + "properties": { + "code": { + "type": "string" }, - "storageType": { - "type": "string", - "description": "Required when active is 'true'. Type of storage to host backup files. Can be \"aws-s3\", \"google-blob-storage\", \"azure-blob-storage\", or \"ftp\". See [Set up backup storage locations](https://redis.io/docs/latest/operate/rc/databases/back-up-data/#set-up-backup-storage-locations) to learn how to set up backup storage locations." + "message": { + "type": "string" + } + } + }, + "SecretValidationResponseDto": { + "type": "object", + "properties": { + "success": { + "type": "boolean" }, - "backupStorageType": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SecretError" + } + } + } + }, + "SingleSecretValidationRequestDto": { + "required": [ + "purpose", + "secretArn" + ], + "type": "object", + "properties": { + "secretArn": { + "type": "string" + }, + "purpose": { "type": "string", - "readOnly": true, "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" + "source-credentials", + "source-tls-ca", + "source-mtls-client-cert", + "source-mtls-client-key", + "source-mtls-key-password" ] - }, - "storagePath": { - "type": "string", - "description": "Required when active is 'true'. Path to the backup storage location." } - }, - "description": "Optional. Changes Remote backup configuration details." + } }, - "DynamicEndpoints": { + "SingleSecretValidationResponseDto": { "type": "object", "properties": { - "public": { + "success": { + "type": "boolean" + }, + "errorCode": { "type": "string" }, - "private": { + "error": { "type": "string" } } }, - "CrdbFlushRequest": { + "CreatePrivateLinkEndpointRequest": { + "required": [ + "serviceName" + ], "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "serviceName": { + "type": "string" + } + } + }, + "PrivateLinkValidationResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" }, - "commandType": { - "type": "string", - "readOnly": true + "error": { + "type": "string" } - }, - "description": "Active-Active database flush request message" + } }, - "MaintenanceWindowSpec": { + "PrivateLinkValidationRequest": { "required": [ - "days", - "durationInHours", - "startHour" + "serviceName" ], "type": "object", "properties": { - "startHour": { - "type": "integer", - "description": "Starting hour of the maintenance window. Can be between '0' (12 AM in the deployment region's local time) and '23' (11 PM in the deployment region's local time).", - "format": "int32", - "example": 12 + "serviceName": { + "type": "string" + } + } + }, + "ComposeDraftCreatedResponse": { + "type": "object", + "properties": { + "draftId": { + "type": "string" }, - "durationInHours": { - "type": "integer", - "description": "The duration of the maintenance window in hours. Can be between 4-24 hours (or 8-24 hours if using 'ram-and-flash').", - "format": "int32", - "example": 8 + "createdAt": { + "type": "string", + "format": "date-time" }, - "days": { - "type": "array", - "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", - "example": [ - "Monday", - "Wednesday" - ], - "items": { - "type": "string", - "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", - "example": "[\"Monday\",\"Wednesday\"]" - } + "updatedAt": { + "type": "string", + "format": "date-time" } - }, - "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided." + } }, - "ActiveActiveVpcPeeringCreateGcpRequest": { - "required": [ - "sourceRegion", - "vpcNetworkName", - "vpcProjectUid" - ], + "PipelineComponentResponse": { "type": "object", "properties": { - "provider": { + "name": { "type": "string" }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "type": { + "type": "string" }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." + "version": { + "type": "string" }, - "vpcProjectUid": { + "status": { "type": "string", - "description": "VPC project ID.", - "example": "" + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ] }, - "vpcNetworkName": { - "type": "string", - "description": "VPC network name.", - "example": "" + "errors": { + "type": "array", + "items": { + "type": "string" + } }, - "commandType": { - "type": "string", - "readOnly": true + "metricCollections": { + "type": "array", + "items": { + "type": "string" + } } - }, - "description": "VPC peering creation request message" + } }, - "SubscriptionCreateRequest": { - "required": [ - "cloudProviders", - "databases" - ], + "RdiPipelineError": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "details": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "RdiPipelineResponse": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Optional. New subscription name.", - "example": "My new subscription" - }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", - "example": false - }, - "deploymentType": { - "type": "string", - "description": "Optional. When 'single-region' or not set: Creates a single region subscription. When 'active-active': creates an Active-Active (multi-region) subscription.", - "example": "single-region", - "enum": [ - "single-region", - "active-active" - ] + "errorOtherThanJobValidationError": { + "type": "boolean" }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", - "enum": [ - "credit-card", - "marketplace" - ] + "name": { + "type": "string" }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", - "format": "int32" + "active": { + "type": "boolean" }, - "memoryStorage": { - "type": "string", - "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash' (also known as Auto Tiering). Default: 'ram'", - "example": "ram", - "enum": [ - "ram", - "ram-and-flash" - ] + "config": { + "type": "object", + "additionalProperties": { + "type": "object" + } }, - "persistentStorageEncryptionType": { + "status": { "type": "string", - "description": "Optional. Persistent storage encryption secures data at rest for database persistence. By default, disk storage is encrypted by keys managed by the cloud provider. Use 'customer-managed-key' if you want to use self-managed persistent storage encryption keys. Default: 'cloud-provider-managed-key'", - "example": "cloud-provider-managed-key", "enum": [ - "cloud-provider-managed-key", - "customer-managed-key" + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" ] }, - "persistentStorageEncryptionKeys": { - "$ref": "#/components/schemas/CustomerManagedKeyProperties" - }, - "cloudProviders": { + "errors": { "type": "array", - "description": "Cloud provider, region, and networking details.", "items": { - "$ref": "#/components/schemas/SubscriptionSpec" + "$ref": "#/components/schemas/RdiPipelineError" } }, - "databases": { + "components": { "type": "array", - "description": "One or more database specification(s) to create in this subscription.", "items": { - "$ref": "#/components/schemas/SubscriptionDatabaseSpec" + "$ref": "#/components/schemas/PipelineComponentResponse" } }, - "redisVersion": { + "current": { + "type": "boolean" + } + } + }, + "ComposeTranslateRequest": { + "type": "object", + "properties": { + "direction": { "type": "string", - "description": "Optional. Defines the Redis version of the databases created in this specific request. It doesn't determine future databases associated with this subscription. If not set, databases will use the default Redis version. This field is deprecated and will be removed in a future API version - use the database-level redisVersion property instead.", - "example": "7.2", - "deprecated": true + "enum": [ + "cloud-to-rdi", + "rdi-to-cloud" + ] }, - "publicEndpointAccess": { - "type": "boolean", - "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint. Default: 'true'." + "cloud": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" }, - "commandType": { - "type": "string", - "readOnly": true + "rdi": { + "$ref": "#/components/schemas/RdiPipelineResponse" } - }, - "description": "Subscription create request" + } }, - "RedisVersions": { + "ComposeTranslateResponse": { "type": "object", "properties": { - "redisVersions": { + "draft": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "rdi": { + "$ref": "#/components/schemas/RdiPatchRequest" + }, + "warnings": { "type": "array", "items": { - "$ref": "#/components/schemas/RedisVersion" + "type": "string" } } } }, - "CloudAccountUpdateRequest": { + "RdiPatchRequest": { + "type": "object", + "properties": { + "active": { + "type": "boolean" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "PipelineCreateRequestDto": { "required": [ - "accessKeyId", - "accessSecretKey", - "consolePassword", - "consoleUsername" + "targetBdbId" + ], + "type": "object", + "properties": { + "targetBdbId": { + "minimum": 1, + "type": "integer", + "format": "int64" + } + } + }, + "PipelineCreateResponseDto": { + "required": [ + "pipelineId" ], "type": "object", "properties": { + "pipelineId": { + "type": "string" + } + } + }, + "ResetPipelineRequestDto": { + "type": "object", + "properties": { + "flush": { + "type": "boolean" + } + } + }, + "DeployPipelineRequestDto": { + "type": "object", + "properties": { + "reset": { + "$ref": "#/components/schemas/ResetPipelineRequestDto" + } + } + }, + "WorkspaceClusterRef": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + } + }, + "WorkspaceDatabaseResponse": { + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int64" + }, "name": { - "type": "string", - "description": "name", - "example": "My new Cloud Account" + "type": "string" }, - "cloudAccountId": { + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "memorySize": { "type": "integer", - "format": "int32", - "readOnly": true + "format": "int64" }, - "accessKeyId": { - "type": "string", - "description": "Cloud provider access key.", - "example": "****" + "subscription": { + "$ref": "#/components/schemas/WorkspaceSubscriptionRef" }, - "accessSecretKey": { - "type": "string", - "description": "Cloud provider secret key.", - "example": "****" + "cluster": { + "$ref": "#/components/schemas/WorkspaceClusterRef" }, - "consoleUsername": { - "type": "string", - "description": "Cloud provider management console username.", - "example": "me@mycompany.com" + "dnsAddress": { + "type": "string" }, - "consolePassword": { - "type": "string", - "description": "Cloud provider management console password.", - "example": "****" + "publicDnsAddress": { + "type": "string" }, - "signInLoginUrl": { - "type": "string", - "description": "Optional. Cloud provider management console login URL.", - "example": "https://.signin.aws.amazon.com/console" + "sslEnabled": { + "type": "boolean" }, - "commandType": { - "type": "string", - "readOnly": true + "throughput": { + "type": "integer", + "format": "int64" + }, + "defaultUser": { + "type": "boolean" } - }, - "description": "Cloud Account definition" + } }, - "PrivateLinkCreateRequest": { - "required": [ - "principal", - "shareName", - "type" - ], + "WorkspaceDatabasesResponse": { "type": "object", "properties": { - "subscriptionId": { + "databases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceDatabaseResponse" + } + } + } + }, + "WorkspaceSubscriptionRef": { + "type": "object", + "properties": { + "id": { "type": "integer", - "format": "int32", - "readOnly": true + "format": "int64" + } + } + }, + "Capabilities": { + "type": "object", + "properties": { + "validateSecrets": { + "type": "boolean" }, - "shareName": { - "maxLength": 64, - "minLength": 0, - "type": "string", - "description": "Name of the resource share", - "example": "my-redis-share" + "validatePrivateLink": { + "type": "boolean" }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" + "readyForPipeline": { + "type": "boolean" + } + } + }, + "InfrastructureError": { + "type": "object", + "properties": { + "code": { + "type": "string" }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] + "message": { + "type": "string" }, - "alias": { + "timestamp": { "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" + "format": "date-time" }, - "commandType": { - "type": "string", - "readOnly": true + "details": { + "type": "object", + "additionalProperties": { + "type": "object" + } } - }, - "description": "Private Link create request" + } }, - "SubscriptionPricings": { + "InfrastructureIam": { "type": "object", "properties": { - "pricing": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriptionPricing" - } + "privateLinkAllowedPrincipal": { + "type": "string" + }, + "secretsRoleArn": { + "type": "string" } } }, - "SubscriptionPricing": { + "InfrastructureResponse": { "type": "object", "properties": { - "type": { - "type": "string" + "state": { + "type": "string", + "enum": [ + "NotProvisioned", + "Provisioning", + "Ready", + "Deleting", + "Failed" + ] }, - "typeDetails": { + "cidr": { "type": "string" }, - "quantity": { - "type": "integer", - "format": "int32" + "timestamps": { + "$ref": "#/components/schemas/InfrastructureTimestamps" }, - "quantityMeasurement": { - "type": "string" + "iam": { + "$ref": "#/components/schemas/InfrastructureIam" }, - "pricePerUnit": { - "type": "number", - "format": "double" + "networking": { + "$ref": "#/components/schemas/NetworkingOutput" }, - "priceCurrency": { - "type": "string" + "monitoring": { + "$ref": "#/components/schemas/MonitoringOutput" }, - "pricePeriod": { + "error": { + "$ref": "#/components/schemas/InfrastructureError" + } + } + }, + "InfrastructureTimestamps": { + "type": "object", + "properties": { + "startedAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + } + } + }, + "MetricsUrls": { + "type": "object", + "properties": { + "rdiProcessorUrl": { "type": "string" }, - "region": { + "collectorSourceUrl": { "type": "string" } } }, - "ReplicaOfSpec": { - "required": [ - "syncSources" - ], + "MonitoringOutput": { "type": "object", "properties": { - "syncSources": { + "metricsUrls": { + "$ref": "#/components/schemas/MetricsUrls" + } + } + }, + "NetworkingOutput": { + "type": "object", + "properties": { + "egressIps": { "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details.", "items": { - "$ref": "#/components/schemas/DatabaseSyncSourceSpec" + "type": "string" + } + }, + "availabilityZones": { + "type": "array", + "items": { + "type": "string" } } - }, - "description": "Optional. Changes Replica Of (also known as Active-Passive) configuration details." + } }, - "PrivateLinkActiveActivePrincipalsDeleteRequest": { - "required": [ - "principal", - "regionId" - ], + "WorkspaceResponse": { "type": "object", "properties": { "subscriptionId": { "type": "integer", - "format": "int32", - "readOnly": true + "format": "int64" }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true + "rcpClusterId": { + "type": "string" }, - "principal": { - "type": "string", - "description": "An AWS account ID or ARN to remove from the private link", - "example": "123456789012" + "region": { + "type": "string" }, - "commandType": { + "vpcId": { + "type": "string" + }, + "createdAt": { "type": "string", - "readOnly": true + "format": "date-time" + }, + "infrastructure": { + "$ref": "#/components/schemas/InfrastructureResponse" + }, + "capabilities": { + "$ref": "#/components/schemas/Capabilities" } - }, - "description": "Request to remove principals from private link for Active-Active subscription" + } }, - "DatabaseThroughputSpec": { - "required": [ - "by", - "value" - ], + "WorkspaceTasksResponse": { "type": "object", "properties": { - "by": { - "type": "string", - "description": "Throughput measurement method. Use 'operations-per-second' for all new databases.", - "enum": [ - "operations-per-second", - "number-of-shards" - ] - }, - "value": { - "type": "integer", - "description": "Throughput value in the selected measurement method.", - "format": "int64", - "example": 10000 + "tasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + } } - }, - "description": "Optional. Throughput measurement method." + } }, - "FixedDatabase": { + "CidrsInfoResponse": { "type": "object", "properties": { - "databaseId": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string", - "enum": [ - "redis", - "memcached", - "stack" - ] + "usedCidrs": { + "type": "array", + "items": { + "type": "string" + } }, - "provider": { + "defaultCidr": { "type": "string" }, - "region": { + "nextFreeCidr": { "type": "string" - }, - "redisVersion": { + } + } + }, + "PrivateLinkEndpointListResponse": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + } + } + } + }, + "PrivateLinkEndpointResponse": { + "type": "object", + "properties": { + "endpointId": { "type": "string" }, - "redisVersionCompliance": { - "type": "string", - "deprecated": true - }, - "respVersion": { - "type": "string", - "enum": [ - "resp2", - "resp3" - ] - }, - "status": { + "type": { "type": "string" }, - "planMemoryLimit": { - "type": "number", - "format": "double" - }, - "planDatasetSize": { - "type": "number", - "format": "double" - }, - "memoryLimitMeasurementUnit": { + "state": { "type": "string" }, - "memoryLimitInGb": { - "type": "number", - "format": "double" - }, - "datasetSizeInGb": { - "type": "number", - "format": "double" - }, - "memoryUsedInMb": { - "type": "number", - "format": "double" - }, - "networkMonthlyUsageInByte": { - "type": "number", - "format": "double" - }, - "memoryStorage": { - "type": "string", - "enum": [ - "ram", - "ram-and-flash" - ] - }, - "redisFlex": { - "type": "boolean" - }, - "supportOSSClusterApi": { - "type": "boolean" - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean" - }, - "dataPersistence": { - "type": "string", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "replication": { - "type": "boolean" - }, - "dataEvictionPolicy": { - "type": "string", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "activatedOn": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" + "network": { + "$ref": "#/components/schemas/PrivateLinkNetwork" }, - "publicEndpoint": { + "error": { + "$ref": "#/components/schemas/PrivateLinkError" + } + } + }, + "PrivateLinkError": { + "type": "object", + "properties": { + "code": { "type": "string" }, - "privateEndpoint": { + "message": { + "type": "string" + } + } + }, + "PrivateLinkNetwork": { + "type": "object", + "properties": { + "serviceName": { "type": "string" }, - "dynamicEndpoints": { - "$ref": "#/components/schemas/DynamicEndpoints" - }, - "replicaAsSourceEndpoints": { - "$ref": "#/components/schemas/ReplicaAsSourceEndpoints" + "vpceId": { + "type": "string" }, - "links": { + "url": { + "type": "string" + } + } + }, + "ComposeDraftListResponse": { + "type": "object", + "properties": { + "items": { "type": "array", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "$ref": "#/components/schemas/ComposeDraftSummaryResponse" } } - }, - "example": { - "databaseId": 51324587, - "name": "bdb", - "protocol": "stack", - "provider": "AWS", - "region": "us-east-1", - "status": "draft", - "planMemoryLimit": 250, - "respVersion": "resp2", - "memoryLimitMeasurementUnit": "MB", - "memoryUsedInMb": 7, - "memoryStorage": "ram", - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "noeviction", - "clustering": { - "enabled": false, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" + } + }, + "ComposeDraftSourceSummary": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "ComposeDraftSummaryResponse": { + "type": "object", + "properties": { + "draftId": { + "type": "string" }, - "security": { - "defaultUserEnabled": true, - "password": "myCustomPassword", - "sourceIps": [ - "0.0.0.0/0" + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" ] }, - "modules": [ - { - "id": 18534, - "name": "RediSearch", - "capabilityName": "Search and query", - "version": "2.2.6", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - }, - { - "id": 18535, - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "version": "2.2.12", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, - { - "id": 18537, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.6.8", - "description": "Time-Series data structure for Redis", - "parameters": [] - } - ], - "alerts": [ - { - "name": "connections-limit", - "value": 80, - "defaultValue": 80 - } - ], - "backup": { - "remoteBackupEnabled": false + "source": { + "$ref": "#/components/schemas/ComposeDraftSourceSummary" + } + } + }, + "SearchPipeline": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "links": [] + "bdbId": { + "type": "integer", + "format": "int64" + } } }, - "DatabaseImportRequest": { + "SearchPipelinesResponseDto": { + "type": "object", + "properties": { + "pipelines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SearchPipeline" + } + } + } + }, + "GetPipelineResponseDto": { "required": [ - "importFromUri", - "sourceType" + "id", + "status" ], "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "id": { + "type": "string" }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "name": { + "type": "string" }, - "sourceType": { + "status": { "type": "string", - "description": "Type of storage from which to import the database RDB file or Redis data.", - "example": "http", "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" + "draft", + "pipeline-setup-pending", + "pl-initialized", + "pl-approval-pending", + "pl-failed", + "pl-created", + "infra-provision-initialized", + "infra-provisioned", + "infra-provision-failed", + "rdi-deploy-initialized", + "rdi-deployed", + "rdi-deploy-failed", + "rdi-healthy", + "rdi-health-check-failed", + "target-db-connection-test-initialized", + "target-db-connection-test-failed", + "target-db-connection-test-success", + "source-db-connection-test-initialized", + "source-db-connection-test-failed", + "source-db-connection-test-success", + "pipeline-deploy-initialized", + "pipeline-deploy-failed", + "inactive", + "active", + "delete-pending", + "delete-failed", + "delete-success" ] }, - "importFromUri": { - "type": "array", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", - "items": { - "type": "string", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." - } - }, - "commandType": { - "type": "string", - "readOnly": true + "error": { + "$ref": "#/components/schemas/PipelineError" } - }, - "description": "Database import request" + } }, - "DatabaseUpgradeRedisVersionRequest": { - "required": [ - "targetRedisVersion" - ], + "PipelineError": { "type": "object", "properties": { - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "id": { + "type": "string" }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "code": { + "type": "string" }, - "targetRedisVersion": { + "message": { + "type": "string" + } + } + }, + "PipelineRuntimeStatusResponseDto": { + "type": "object", + "properties": { + "status": { "type": "string", - "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", - "example": "7.4" + "enum": [ + "validating", + "stopping", + "starting", + "resetting", + "ready", + "not-ready", + "stopped" + ] }, - "commandType": { + "state": { "type": "string", - "readOnly": true + "enum": [ + "not-running", + "cdc", + "initial-sync" + ] + }, + "pipelineStatus": { + "type": "string", + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ] + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineStatusErrorDto" + } } - }, - "description": "Upgrades the specified Pro database to a later Redis version." + } }, - "CustomerManagedKey": { - "required": [ - "resourceName" - ], + "PipelineStatusErrorDto": { "type": "object", "properties": { - "resourceName": { - "type": "string", - "description": "The resource name of the customer managed key.", - "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "DataStreamDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "total": { + "type": "integer", + "format": "int32" + }, + "pending": { + "type": "integer", + "format": "int32" + }, + "inserted": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "integer", + "format": "int32" + }, + "deleted": { + "type": "integer", + "format": "int32" + }, + "filtered": { + "type": "integer", + "format": "int32" + }, + "rejected": { + "type": "integer", + "format": "int32" }, - "region": { - "type": "string", - "description": "(Required for Active-Active subscriptions only) Region for the customer managed key as defined by the cloud provider." + "deduplicated": { + "type": "integer", + "format": "int32" + }, + "lastArrival": { + "type": "string" } - }, - "description": "Object representing a customer managed key (CMK), along with the region it is associated to." + } }, - "ActiveActiveRegionCreateRequest": { + "PipelineRuntimeStatsResponseDto": { "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "lastRetrieved": { + "type": "string" }, - "region": { - "type": "string", - "description": "Name of region to add as defined by the cloud provider." + "mode": { + "type": "string" }, - "vpcId": { - "type": "string", - "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format and must exist within the hosting account.", - "example": "vpc-0125be68a4625884ad" + "type": { + "type": "string" }, - "deploymentCIDR": { - "type": "string", - "description": "Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses.", - "example": "10.0.0.0/24" + "status": { + "type": "string" }, - "subnetIds": { + "sourceType": { + "type": "string" + }, + "totals": { + "$ref": "#/components/schemas/DataStreamDto" + }, + "dataStreams": { "type": "array", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']", "items": { - "type": "string", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']" + "$ref": "#/components/schemas/DataStreamDto" + } + } + } + }, + "CidrsInfoDto": { + "type": "object", + "properties": { + "usedCidrs": { + "type": "array", + "items": { + "type": "string" } }, - "securityGroupId": { - "type": "string", - "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account.", - "example": "sg-0125be68a4625884ad" + "defaultCidr": { + "type": "string" }, - "multipleAvailabilityZones": { - "type": "boolean", - "description": "Optional. Support deployment on multiple availability zones within the selected region. When omitted, defaults to true unless the region is explicitly marked as not supporting multi-AZ.", - "example": false + "nextFreeCidr": { + "type": "string" + } + } + }, + "GetPipelinePrerequisitesResponseDto": { + "type": "object", + "properties": { + "privateLinkAllowedPrincipal": { + "type": "string" }, - "preferredAvailabilityZones": { + "sourceDbTypes": { "type": "array", - "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region.", "items": { - "type": "string", - "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region." + "$ref": "#/components/schemas/TypeResponseDto" } }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan, and does not create any resources. Default: 'false'", - "example": false - }, - "databases": { + "targetTypes": { "type": "array", - "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database", "items": { - "$ref": "#/components/schemas/CrdbRegionSpec" + "$ref": "#/components/schemas/TypeResponseDto" } }, - "respVersion": { - "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", - "example": "resp3", - "deprecated": true, - "enum": [ - "resp2", - "resp3" - ] - }, - "customerManagedKeyResourceName": { - "type": "string", - "description": "Required for subscriptions where 'persistentStorageEncryptionType' is 'customer-managed-key'. The resource name of the customer-managed encryption key for the region.", - "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + "cidrsInfo": { + "$ref": "#/components/schemas/CidrsInfoDto" }, - "commandType": { - "type": "string", - "readOnly": true + "pipelineSecretAllowedRole": { + "type": "string" } - }, - "description": "Active active region creation request message" + } }, - "FixedDatabaseImportRequest": { - "required": [ - "importFromUri", - "sourceType" - ], + "TypeResponseDto": { "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "code": { + "type": "string" }, - "sourceType": { - "type": "string", - "description": "Type of storage from which to import the database RDB file or Redis data.", - "example": "http", - "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" - ] + "label": { + "type": "string" + } + } + }, + "PipelineMetricsUrlsResponseDto": { + "type": "object", + "properties": { + "rdiProcessorUrl": { + "type": "string" }, - "importFromUri": { + "collectorSourceUrl": { + "type": "string" + } + } + }, + "SourceSchemasResponseDto": { + "type": "object", + "properties": { + "schemas": { "type": "array", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", "items": { - "type": "string", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + "type": "string" } - }, - "commandType": { - "type": "string", - "readOnly": true } - }, - "description": "Database import request" + } }, - "PrivateLinkPrincipalsDeleteRequest": { - "required": [ - "principal" - ], + "SchemaDto": { "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "principal": { - "type": "string", - "description": "An AWS account ID or ARN to remove from the private link", - "example": "123456789012" + "name": { + "type": "string" }, - "commandType": { - "type": "string", - "readOnly": true + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableDto" + } } - }, - "description": "Private Link principals delete request" + } }, - "CustomerManagedKeyProperties": { - "required": [ - "customerManagedKeys" - ], + "SourceMetadataResponseDto": { "type": "object", "properties": { - "customerManagedKeys": { + "schemas": { "type": "array", - "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", "items": { - "$ref": "#/components/schemas/CustomerManagedKey" + "$ref": "#/components/schemas/SchemaDto" } - }, - "deletionGracePeriod": { - "type": "string", - "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", - "example": "alerts-only", - "enum": [ - "alerts-only", - "immediate", - "15-minutes", - "30-minutes", - "1-hour", - "4-hours", - "8-hours", - "12-hours", - "24-hours" - ] } - }, - "description": "Optional. Contains information about the keys used for each region. Can be used only with external cloud account" + } }, - "VpcPeeringCreateBaseRequest": { + "TableColumnDto": { "type": "object", "properties": { - "provider": { + "name": { "type": "string" }, - "commandType": { - "type": "string", - "readOnly": true + "type": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "primaryKey": { + "type": "boolean" + }, + "uniqueConstraint": { + "type": "boolean" } - }, - "description": "Vpc peering creation request message", - "oneOf": [ - { - "$ref": "#/components/schemas/VpcPeeringCreateAwsRequest" + } + }, + "TableDto": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - { - "$ref": "#/components/schemas/VpcPeeringCreateGcpRequest" + "cdcReady": { + "type": "boolean" + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableColumnDto" + } } - ] + } + }, + "WorkspacesResponse": { + "type": "object", + "properties": { + "workspaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceResponse" + } + } + } + }, + "BdbPipelinesResponseDto": { + "type": "object", + "properties": { + "pipelineIds": { + "type": "array", + "items": { + "type": "string" + } + } + } } }, "securitySchemes": { diff --git a/content/operate/rc/api/data-integration-api-reference.md b/content/operate/rc/api/data-integration-api-reference.md deleted file mode 100644 index 89d0aec7f6..0000000000 --- a/content/operate/rc/api/data-integration-api-reference.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -Title: Redis Cloud Data Integration API -linkTitle: Data Integration API reference -layout: apireference -type: page -params: - backLink: operate/rc/api ---- diff --git a/content/operate/rc/api/data-integration-api-reference/openapi.json b/content/operate/rc/api/data-integration-api-reference/openapi.json deleted file mode 100644 index f9ce0632f1..0000000000 --- a/content/operate/rc/api/data-integration-api-reference/openapi.json +++ /dev/null @@ -1,5492 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Data Integration Workspace API", - "version": "2.2.2", - "description": "Data Integration Workspace API" - }, - "servers": [ - { - "url": "https://api.redislabs.com" - } - ], - "security": [ - { - "x-api-key": [], - "x-api-secret-key": [] - } - ], - "tags": [ - { - "name": "Workspace", - "x-order": "1", - "x-api-lifecycle": "preview" - }, - { - "name": "Tasks", - "x-order": "2", - "x-api-lifecycle": "preview" - }, - { - "name": "Secrets", - "x-order": "3", - "x-api-lifecycle": "preview" - }, - { - "name": "PrivateLink", - "x-order": "4", - "x-api-lifecycle": "preview" - }, - { - "name": "Compose", - "x-order": "5", - "x-api-lifecycle": "preview" - }, - { - "name": "RDI Core", - "description": "Data Integration (RDI) endpoints. This surface is independent of the Cloud API and versions through the RDI OpenAPI contract.\n\nRDI Core API version: 1.18.1\n", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - }, - "x-order": "6", - "x-api-lifecycle": "preview", - "x-rdi-core-api-version": "1.18.1", - "x-rdi-core-api-spec-url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/openapi.json", - "x-rdi-core-api-docs-url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - ], - "paths": { - "/v1/subscriptions/{subscriptionId}/data-integration-workspace": { - "get": { - "summary": "Get a data integration workspace", - "description": "Returns the current data integration workspace state for the specified subscription.", - "operationId": "getWorkspace", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "Workspace returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-api-lifecycle": "preview" - }, - "post": { - "summary": "Create a data integration workspace", - "description": "Starts provisioning a data integration workspace for a subscription and returns an asynchronous task.", - "operationId": "createWorkspace", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceCreateRequest" - } - } - }, - "required": true - }, - "responses": { - "202": { - "description": "Workspace creation accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-api-lifecycle": "preview" - }, - "delete": { - "summary": "Delete a data integration workspace", - "description": "Starts deleting the data integration workspace for a subscription and returns an asynchronous task.", - "operationId": "deleteWorkspace", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "202": { - "description": "Workspace deletion accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/data-integration-workspaces": { - "get": { - "summary": "List data integration workspaces", - "description": "Lists all data integration workspaces in the current Redis Cloud account.", - "operationId": "listWorkspaces", - "responses": { - "200": { - "description": "Workspaces returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspacesResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "get": { - "summary": "Get RDI API information", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2Info", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "get": { - "summary": "List RDI pipelines", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "listRdiV2Pipelines", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - }, - "post": { - "summary": "Create an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "createRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "description": "Validate the pipeline without deploying it.", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "validate_cdc", - "in": "query", - "description": "Validate change data capture configuration.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "summary": "Get an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - }, - "put": { - "summary": "Replace an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "replaceRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "description": "Validate the pipeline without deploying it.", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "validate_cdc", - "in": "query", - "description": "Validate change data capture configuration.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - }, - "patch": { - "summary": "Update an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "updateRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "description": "Validate the pipeline without deploying it.", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "validate_cdc", - "in": "query", - "description": "Validate change data capture configuration.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - }, - "delete": { - "summary": "Delete an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "deleteRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "summary": "Get RDI pipeline status", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2PipelineStatus", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "summary": "Start an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "startRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "summary": "Stop an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "stopRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "summary": "Reset an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "resetRdiV2Pipeline", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "summary": "List RDI pipeline metric collections", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "listRdiV2MetricCollections", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "collection_name", - "in": "path", - "description": "Metric collection name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "summary": "Get an RDI pipeline metric collection", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2MetricCollection", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "summary": "List RDI pipeline secrets", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "listRdiV2PipelineSecrets", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - }, - "post": { - "summary": "Create an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "createRdiV2PipelineSecret", - "x-speakeasy-group": "rdi", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "key", - "in": "path", - "description": "Secret key.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "summary": "Get an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2PipelineSecret", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - }, - "put": { - "summary": "Replace an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "replaceRdiV2PipelineSecret", - "x-speakeasy-group": "rdi", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - }, - "delete": { - "summary": "Delete an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "deleteRdiV2PipelineSecret", - "x-speakeasy-group": "rdi", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "source_name", - "in": "path", - "description": "Source name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "get": { - "summary": "Get RDI pipeline source schema", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2SourceSchema", - "x-speakeasy-group": "rdi", - "parameters": [ - { - "name": "schemas", - "in": "query", - "description": "Comma-separated source schemas to include.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tables", - "in": "query", - "description": "Comma-separated source tables to include.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "details", - "in": "query", - "description": "Include detailed source schema metadata.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "target_name", - "in": "path", - "description": "Target name.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "post": { - "summary": "Flush an RDI pipeline target", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "flushRdiV2Target", - "x-speakeasy-group": "rdi", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "tags": [ - "RDI Core" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { - "get": { - "summary": "List workspace tasks", - "description": "Lists asynchronous workspace tasks for the specified data integration workspace.", - "operationId": "listTasks", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "Workspace tasks returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTasksResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "tasks", - "tags": [ - "Tasks" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { - "get": { - "summary": "Get a workspace task", - "description": "Returns one asynchronous workspace task by task ID.", - "operationId": "getTask", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "taskId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Workspace task returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "tasks", - "tags": [ - "Tasks" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { - "get": { - "summary": "List PrivateLink endpoints", - "description": "Lists PrivateLink endpoints for the data integration workspace in the specified subscription.", - "operationId": "listEndpoints", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "PrivateLink endpoints returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-api-lifecycle": "preview" - }, - "post": { - "summary": "Create a PrivateLink endpoint", - "description": "Starts creating a PrivateLink endpoint for the data integration workspace and returns an asynchronous task.", - "operationId": "createEndpoint", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePrivateLinkEndpointRequest" - } - } - }, - "required": true - }, - "responses": { - "202": { - "description": "PrivateLink endpoint creation accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "privatelink", - "x-speakeasy-name-override": "create-endpoint", - "tags": [ - "PrivateLink" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { - "get": { - "summary": "Get a PrivateLink endpoint", - "description": "Returns one PrivateLink endpoint by endpoint ID.", - "operationId": "getEndpoint", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "endpointId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "PrivateLink endpoint returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-api-lifecycle": "preview" - }, - "delete": { - "summary": "Delete a PrivateLink endpoint", - "description": "Starts deleting a PrivateLink endpoint from the data integration workspace and returns an asynchronous task.", - "operationId": "deleteEndpoint", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "endpointId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "202": { - "description": "PrivateLink endpoint deletion accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { - "post": { - "summary": "Validate a PrivateLink endpoint", - "description": "Validates reachability for an existing PrivateLink endpoint attached to the data integration workspace.", - "operationId": "validateEndpoint", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "endpointId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "PrivateLink endpoint validation completed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { - "post": { - "summary": "Validate a PrivateLink service", - "description": "Validates an AWS PrivateLink endpoint service name before creating a workspace PrivateLink endpoint.", - "operationId": "validatePrivateLink", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "PrivateLink service validation completed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { - "get": { - "summary": "Get suggested workspace CIDRs", - "description": "Returns used CIDRs, the default CIDR, and the next free CIDR for data integration workspace provisioning.", - "operationId": "getSuggestedCidrs", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "cidr-mask", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 22 - } - } - ], - "responses": { - "200": { - "description": "Suggested CIDRs returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CidrsInfoResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { - "get": { - "summary": "List compose drafts", - "description": "Lists compose drafts for the specified data integration workspace.", - "operationId": "listDrafts", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "Compose drafts returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftListResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - }, - "post": { - "summary": "Create a compose draft", - "description": "Creates a compose draft for building or editing a data integration pipeline configuration.", - "operationId": "createDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Compose draft created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftCreatedResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { - "post": { - "summary": "Mount compose payload secrets", - "description": "Mounts secret providers from an ad-hoc compose payload into the data integration workspace.", - "operationId": "mountSecretsFromPayload", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - } - } - }, - "required": true - }, - "responses": { - "204": { - "description": "Compose secrets mounted" - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { - "post": { - "summary": "Translate a compose configuration", - "description": "Translates between cloud compose configuration and the RDI-native pipeline configuration format.", - "operationId": "translate", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeTranslateRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Compose configuration translated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeTranslateResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { - "get": { - "summary": "Get a compose draft", - "description": "Returns one compose draft by draft ID.", - "operationId": "getDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Compose draft returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - }, - "put": { - "summary": "Update a compose draft", - "description": "Replaces the body of an existing compose draft.", - "operationId": "updateDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Compose draft updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - }, - "delete": { - "summary": "Delete a compose draft", - "description": "Deletes a compose draft from the data integration workspace.", - "operationId": "deleteDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Compose draft deleted" - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { - "get": { - "summary": "Get composed RDI configuration", - "description": "Renders a compose draft as the RDI-native pipeline configuration payload.", - "operationId": "getComposed", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "RDI configuration returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiPatchRequest" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { - "post": { - "summary": "Validate a compose draft", - "description": "Dry-run validates a compose draft against the RDI API without deploying the pipeline.", - "operationId": "validateDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Compose draft validated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiPipelineResponse" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { - "post": { - "summary": "Mount compose draft secrets", - "description": "Mounts secret providers from a saved compose draft into the data integration workspace.", - "operationId": "mountSecrets", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Compose draft secrets mounted" - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { - "post": { - "summary": "Validate workspace secrets", - "description": "Validates AWS Secrets Manager ARNs for source credentials and optional TLS materials used by a data integration workspace.", - "operationId": "validateSecret", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecretValidationRequestDto" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Secret validation completed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecretValidationResponseDto" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "secrets", - "x-speakeasy-name-override": "validate", - "tags": [ - "Secrets" - ], - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { - "post": { - "summary": "Validate one workspace secret", - "description": "Validates one AWS Secrets Manager ARN against a specific data integration secret purpose.", - "operationId": "validateSingleSecret", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SingleSecretValidationRequestDto" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Single secret validation completed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SingleSecretValidationResponseDto" - } - } - } - }, - "400": { - "description": "Bad request: request or business validation failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "403": { - "description": "Access denied", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "404": { - "description": "Resource not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "409": { - "description": "Resource conflict or invalid state transition", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - }, - "502": { - "description": "Upstream service error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - } - } - } - } - }, - "x-speakeasy-group": "secrets", - "tags": [ - "Secrets" - ], - "x-api-lifecycle": "preview" - } - } - }, - "components": { - "schemas": { - "ComposeDraftAdvanced": { - "type": "object", - "properties": { - "processor": { - "$ref": "#/components/schemas/Properties" - } - } - }, - "ComposeDraftSource": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/PostgresqlSource" - }, - { - "$ref": "#/components/schemas/MySqlSource" - }, - { - "$ref": "#/components/schemas/MariaDbSource" - }, - { - "$ref": "#/components/schemas/OracleSource" - }, - { - "$ref": "#/components/schemas/SqlServerSource" - }, - { - "$ref": "#/components/schemas/MongodbSource" - }, - { - "$ref": "#/components/schemas/SnowflakeSource" - } - ] - }, - "ComposeDraftSourceBase": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - }, - "ComposeDraftTarget": { - "type": "object", - "properties": { - "targetBdbId": { - "type": "integer", - "format": "int64" - } - } - }, - "ComposeDraftUpsertRequest": { - "type": "object", - "properties": { - "targetDataType": { - "type": "string", - "enum": [ - "hash", - "json" - ] - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSource" - }, - "sourceName": { - "type": "string" - }, - "pipelineName": { - "type": "string" - }, - "pipelineDescription": { - "type": "string" - }, - "target": { - "$ref": "#/components/schemas/ComposeDraftTarget" - }, - "advanced": { - "$ref": "#/components/schemas/ComposeDraftAdvanced" - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Schema" - } - }, - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Job" - } - }, - "clientData": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, - "Job": { - "required": [ - "file", - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "file": { - "type": "string" - }, - "error": { - "$ref": "#/components/schemas/WebError" - }, - "rdiJob": { - "type": "object", - "additionalProperties": true - } - } - }, - "MariaDbSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "serverId": { - "type": "integer", - "format": "int32" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - } - ] - }, - "MongodbSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "connectionString": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - } - ] - }, - "MySqlSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "serverId": { - "type": "integer", - "format": "int32" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - } - ] - }, - "OracleSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "pdb": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - } - ] - }, - "PostgresqlSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - } - ] - }, - "Properties": { - "type": "object" - }, - "RdiPipelineError": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "details": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, - "Schema": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - } - } - } - }, - "SnowflakeSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "accountIdentifier": { - "type": "string" - }, - "warehouse": { - "type": "string" - }, - "role": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - } - ] - }, - "SqlServerSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - } - ] - }, - "Table": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableColumn" - } - }, - "snapshot_sql": { - "type": "string" - } - } - }, - "TableColumn": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "uniqueConstraint": { - "type": "boolean" - } - } - }, - "WebError": { - "type": "object", - "properties": { - "timestamp": { - "type": "integer", - "format": "int64" - }, - "status": { - "type": "integer", - "format": "int32" - }, - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "params": { - "type": "string" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiPipelineError" - } - } - } - }, - "ComposeDraftResponse": { - "type": "object", - "properties": { - "draftId": { - "type": "string" - }, - "targetDataType": { - "type": "string", - "enum": [ - "hash", - "json" - ] - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSource" - }, - "sourceName": { - "type": "string" - }, - "pipelineName": { - "type": "string" - }, - "pipelineDescription": { - "type": "string" - }, - "target": { - "$ref": "#/components/schemas/ComposeDraftTarget" - }, - "advanced": { - "$ref": "#/components/schemas/ComposeDraftAdvanced" - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Schema" - } - }, - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Job" - } - }, - "clientData": { - "type": "object", - "additionalProperties": { - "type": "object" - } - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, - "Advanced": { - "type": "object", - "properties": { - "source": { - "$ref": "#/components/schemas/Properties" - }, - "sink": { - "$ref": "#/components/schemas/Properties" - } - } - }, - "Aws": { - "type": "object", - "properties": { - "privateLink": { - "$ref": "#/components/schemas/PrivateLink" - } - } - }, - "Endpoint": { - "type": "object", - "properties": { - "vpceId": { - "type": "string" - } - } - }, - "Pipeline": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "deploymentCIDR": { - "type": "string" - } - } - }, - "PipelineInfraDto": { - "type": "object", - "properties": { - "pipeline": { - "$ref": "#/components/schemas/Pipeline" - }, - "aws": { - "$ref": "#/components/schemas/Aws" - }, - "source": { - "$ref": "#/components/schemas/Source" - } - } - }, - "PrivateLink": { - "type": "object", - "properties": { - "serviceName": { - "type": "string" - }, - "endpoint": { - "$ref": "#/components/schemas/Endpoint" - } - } - }, - "Source": { - "type": "object", - "properties": { - "connectivityMode": { - "type": "string", - "enum": [ - "privateLink", - "publicEndpoint" - ] - }, - "id": { - "type": "string" - }, - "dbType": { - "type": "string", - "enum": [ - "mysql", - "mariadb", - "oracle", - "sqlserver", - "postgresql", - "mongodb", - "snowflake" - ] - }, - "datasetSizeGB": { - "type": "integer", - "format": "int32" - }, - "dbSecretsARN": { - "type": "string" - }, - "dbUseTLS": { - "type": "boolean" - }, - "dbUseMTLS": { - "type": "boolean" - }, - "dbCaCertARN": { - "type": "string" - }, - "dbClientCertARN": { - "type": "string" - }, - "dbClientKeyARN": { - "type": "string" - }, - "dbClientKeyPasswordARN": { - "type": "string" - }, - "dbPort": { - "type": "integer", - "format": "int32" - }, - "dbServerId": { - "type": "integer", - "format": "int32" - }, - "dbConnectionString": { - "type": "string" - }, - "databases": { - "type": "string" - }, - "pdb": { - "type": "string" - }, - "advanced": { - "$ref": "#/components/schemas/Advanced" - }, - "dbHost": { - "type": "string" - }, - "dbUser": { - "type": "string" - }, - "dbPass": { - "type": "string" - } - } - }, - "PipelineConfigAdvanced": { - "type": "object", - "properties": { - "processor": { - "$ref": "#/components/schemas/Properties" - } - } - }, - "PipelineConfigDto": { - "required": [ - "definitionType", - "targetDataType" - ], - "type": "object", - "properties": { - "targetDataType": { - "type": "string", - "enum": [ - "hash", - "json" - ] - }, - "definitionType": { - "type": "string", - "enum": [ - "predefined", - "manual" - ] - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Schema" - } - }, - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Job" - } - }, - "advanced": { - "$ref": "#/components/schemas/PipelineConfigAdvanced" - } - } - }, - "PipelineConfigJobsResponseDto": { - "type": "object", - "properties": { - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Job" - } - } - } - }, - "EulaAcceptanceResponseDto": { - "type": "object", - "properties": { - "accepted": { - "type": "boolean" - }, - "acceptedAt": { - "type": "string", - "format": "date-time" - } - } - }, - "WorkspaceCreateRequest": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - } - } - }, - "TaskLink": { - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "type": { - "type": "string" - } - } - }, - "TaskLinks": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/TaskLink" - }, - "resource": { - "$ref": "#/components/schemas/TaskLink" - } - } - }, - "WorkspaceTaskResponse": { - "type": "object", - "properties": { - "taskId": { - "type": "string" - }, - "commandType": { - "type": "string" - }, - "status": { - "type": "string" - }, - "description": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "response": { - "type": "object" - }, - "_links": { - "$ref": "#/components/schemas/TaskLinks" - } - } - }, - "SecretValidationRequestDto": { - "type": "object", - "properties": { - "credentialsSecretArn": { - "type": "string" - }, - "caCertSecretArn": { - "type": "string" - }, - "clientCertSecretArn": { - "type": "string" - }, - "clientKeySecretArn": { - "type": "string" - }, - "clientKeyPassphraseSecretArn": { - "type": "string" - }, - "snowflakeCredentialsSecretArn": { - "type": "string" - }, - "snowflakePrivateKeySecretArn": { - "type": "string" - }, - "snowflakePrivateKeyPassphraseSecretArn": { - "type": "string" - } - } - }, - "SecretError": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - } - }, - "SecretValidationResponseDto": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SecretError" - } - } - } - }, - "SingleSecretValidationRequestDto": { - "required": [ - "purpose", - "secretArn" - ], - "type": "object", - "properties": { - "secretArn": { - "type": "string" - }, - "purpose": { - "type": "string", - "enum": [ - "source-credentials", - "source-tls-ca", - "source-mtls-client-cert", - "source-mtls-client-key", - "source-mtls-key-password", - "source-snowflake-credentials", - "source-snowflake-private-key", - "source-snowflake-key-password" - ] - } - } - }, - "SingleSecretValidationResponseDto": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "errorCode": { - "type": "string" - }, - "error": { - "type": "string" - } - } - }, - "CreatePrivateLinkEndpointRequest": { - "required": [ - "serviceName" - ], - "type": "object", - "properties": { - "serviceName": { - "type": "string" - } - } - }, - "PrivateLinkValidationResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "error": { - "type": "string" - } - } - }, - "PrivateLinkValidationRequest": { - "required": [ - "serviceName" - ], - "type": "object", - "properties": { - "serviceName": { - "type": "string" - } - } - }, - "ComposeDraftCreatedResponse": { - "type": "object", - "properties": { - "draftId": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, - "PipelineComponentResponse": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "version": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ] - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - }, - "metricCollections": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RdiPipelineResponse": { - "type": "object", - "properties": { - "errorOtherThanJobValidationError": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "config": { - "type": "object", - "additionalProperties": { - "type": "object" - } - }, - "status": { - "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ] - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiPipelineError" - } - }, - "components": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineComponentResponse" - } - }, - "current": { - "type": "boolean" - } - } - }, - "ComposeTranslateRequest": { - "type": "object", - "properties": { - "direction": { - "type": "string", - "enum": [ - "cloud-to-rdi", - "rdi-to-cloud" - ] - }, - "cloud": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "rdi": { - "$ref": "#/components/schemas/RdiPipelineResponse" - } - } - }, - "ComposeTranslateResponse": { - "type": "object", - "properties": { - "draft": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "rdi": { - "$ref": "#/components/schemas/RdiPatchRequest" - }, - "warnings": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "RdiPatchRequest": { - "type": "object", - "properties": { - "active": { - "type": "boolean" - }, - "config": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, - "PipelineCreateRequestDto": { - "required": [ - "targetBdbId" - ], - "type": "object", - "properties": { - "targetBdbId": { - "minimum": 1, - "type": "integer", - "format": "int64" - } - } - }, - "PipelineCreateResponseDto": { - "required": [ - "pipelineId" - ], - "type": "object", - "properties": { - "pipelineId": { - "type": "string" - } - } - }, - "ResetPipelineRequestDto": { - "type": "object", - "properties": { - "flush": { - "type": "boolean" - } - } - }, - "DeployPipelineRequestDto": { - "type": "object", - "properties": { - "reset": { - "$ref": "#/components/schemas/ResetPipelineRequestDto" - } - } - }, - "WorkspaceClusterRef": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - } - } - }, - "WorkspaceDatabaseResponse": { - "type": "object", - "properties": { - "databaseId": { - "type": "integer", - "format": "int64" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "memorySize": { - "type": "integer", - "format": "int64" - }, - "subscription": { - "$ref": "#/components/schemas/WorkspaceSubscriptionRef" - }, - "cluster": { - "$ref": "#/components/schemas/WorkspaceClusterRef" - }, - "dnsAddress": { - "type": "string" - }, - "publicDnsAddress": { - "type": "string" - }, - "sslEnabled": { - "type": "boolean" - }, - "throughput": { - "type": "integer", - "format": "int64" - }, - "defaultUser": { - "type": "boolean" - } - } - }, - "WorkspaceDatabasesResponse": { - "type": "object", - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WorkspaceDatabaseResponse" - } - } - } - }, - "WorkspaceSubscriptionRef": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - } - } - }, - "Capabilities": { - "type": "object", - "properties": { - "validateSecrets": { - "type": "boolean" - }, - "validatePrivateLink": { - "type": "boolean" - }, - "readyForPipeline": { - "type": "boolean" - }, - "createPrivateLink": { - "type": "boolean" - } - } - }, - "InfrastructureError": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "details": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, - "InfrastructureIam": { - "type": "object", - "properties": { - "privateLinkAllowedPrincipal": { - "type": "string" - }, - "secretsRoleArn": { - "type": "string" - } - } - }, - "InfrastructureResponse": { - "type": "object", - "properties": { - "state": { - "type": "string", - "enum": [ - "NotProvisioned", - "Provisioning", - "Ready", - "Deleting", - "Failed" - ] - }, - "cidr": { - "type": "string" - }, - "timestamps": { - "$ref": "#/components/schemas/InfrastructureTimestamps" - }, - "iam": { - "$ref": "#/components/schemas/InfrastructureIam" - }, - "networking": { - "$ref": "#/components/schemas/NetworkingOutput" - }, - "monitoring": { - "$ref": "#/components/schemas/MonitoringOutput" - }, - "error": { - "$ref": "#/components/schemas/InfrastructureError" - } - } - }, - "InfrastructureTimestamps": { - "type": "object", - "properties": { - "startedAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, - "MetricsUrls": { - "type": "object", - "properties": { - "rdiOperatorUrl": { - "type": "string" - }, - "rdiProcessorUrl": { - "type": "string" - }, - "collectorSourceUrls": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "MonitoringOutput": { - "type": "object", - "properties": { - "metricsUrls": { - "$ref": "#/components/schemas/MetricsUrls" - } - } - }, - "NetworkingOutput": { - "type": "object", - "properties": { - "egressIps": { - "type": "array", - "items": { - "type": "string" - } - }, - "availabilityZones": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "WorkspaceResponse": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int64" - }, - "bdbId": { - "type": "integer", - "format": "int64" - }, - "rcpClusterId": { - "type": "string" - }, - "region": { - "type": "string" - }, - "vpcId": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "infrastructure": { - "$ref": "#/components/schemas/InfrastructureResponse" - }, - "capabilities": { - "$ref": "#/components/schemas/Capabilities" - } - } - }, - "WorkspaceTasksResponse": { - "type": "object", - "properties": { - "tasks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - } - } - } - }, - "CidrsInfoResponse": { - "type": "object", - "properties": { - "usedCidrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "defaultCidr": { - "type": "string" - }, - "nextFreeCidr": { - "type": "string" - } - } - }, - "PrivateLinkEndpointListResponse": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" - } - } - } - }, - "PrivateLinkEndpointResponse": { - "type": "object", - "properties": { - "endpointId": { - "type": "string" - }, - "type": { - "type": "string" - }, - "state": { - "type": "string" - }, - "network": { - "$ref": "#/components/schemas/PrivateLinkNetwork" - }, - "error": { - "$ref": "#/components/schemas/PrivateLinkError" - } - } - }, - "PrivateLinkError": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - } - }, - "PrivateLinkNetwork": { - "type": "object", - "properties": { - "serviceName": { - "type": "string" - }, - "vpceId": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "ComposeDraftListResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComposeDraftSummaryResponse" - } - } - } - }, - "ComposeDraftSourceSummary": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - }, - "ComposeDraftSummaryResponse": { - "type": "object", - "properties": { - "draftId": { - "type": "string" - }, - "targetDataType": { - "type": "string", - "enum": [ - "hash", - "json" - ] - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSourceSummary" - } - } - }, - "SearchPipeline": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "bdbId": { - "type": "integer", - "format": "int64" - } - } - }, - "SearchPipelinesResponseDto": { - "type": "object", - "properties": { - "pipelines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchPipeline" - } - } - } - }, - "GetPipelineResponseDto": { - "required": [ - "id", - "status" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "draft", - "pipeline-setup-pending", - "pl-initialized", - "pl-approval-pending", - "pl-failed", - "pl-created", - "infra-provision-initialized", - "infra-provisioned", - "infra-provision-failed", - "rdi-deploy-initialized", - "rdi-deployed", - "rdi-deploy-failed", - "rdi-healthy", - "rdi-health-check-failed", - "target-db-connection-test-initialized", - "target-db-connection-test-failed", - "target-db-connection-test-success", - "source-db-connection-test-initialized", - "source-db-connection-test-failed", - "source-db-connection-test-success", - "pipeline-deploy-initialized", - "pipeline-deploy-failed", - "inactive", - "active", - "delete-pending", - "delete-failed", - "delete-success" - ] - }, - "error": { - "$ref": "#/components/schemas/PipelineError" - } - } - }, - "PipelineError": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - } - }, - "PipelineRuntimeStatusResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "validating", - "stopping", - "starting", - "resetting", - "ready", - "not-ready", - "stopped" - ] - }, - "state": { - "type": "string", - "enum": [ - "not-running", - "cdc", - "initial-sync" - ] - }, - "pipelineStatus": { - "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ] - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineStatusErrorDto" - } - } - } - }, - "PipelineStatusErrorDto": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - } - }, - "DataStreamDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "total": { - "type": "integer", - "format": "int32" - }, - "pending": { - "type": "integer", - "format": "int32" - }, - "inserted": { - "type": "integer", - "format": "int32" - }, - "updated": { - "type": "integer", - "format": "int32" - }, - "deleted": { - "type": "integer", - "format": "int32" - }, - "filtered": { - "type": "integer", - "format": "int32" - }, - "rejected": { - "type": "integer", - "format": "int32" - }, - "deduplicated": { - "type": "integer", - "format": "int32" - }, - "lastArrival": { - "type": "string" - } - } - }, - "PipelineRuntimeStatsResponseDto": { - "type": "object", - "properties": { - "lastRetrieved": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "status": { - "type": "string" - }, - "sourceType": { - "type": "string" - }, - "totals": { - "$ref": "#/components/schemas/DataStreamDto" - }, - "dataStreams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataStreamDto" - } - } - } - }, - "CidrsInfoDto": { - "type": "object", - "properties": { - "usedCidrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "defaultCidr": { - "type": "string" - }, - "nextFreeCidr": { - "type": "string" - } - } - }, - "GetPipelinePrerequisitesResponseDto": { - "type": "object", - "properties": { - "privateLinkAllowedPrincipal": { - "type": "string" - }, - "sourceDbTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - } - }, - "targetTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - } - }, - "cidrsInfo": { - "$ref": "#/components/schemas/CidrsInfoDto" - }, - "pipelineSecretAllowedRole": { - "type": "string" - } - } - }, - "TypeResponseDto": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "label": { - "type": "string" - } - } - }, - "PipelineMetricsUrlsResponseDto": { - "type": "object", - "properties": { - "rdiProcessorUrl": { - "type": "string" - }, - "collectorSourceUrl": { - "type": "string" - } - } - }, - "SourceSchemasResponseDto": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SchemaDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableDto" - } - } - } - }, - "SourceMetadataResponseDto": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaDto" - } - } - } - }, - "TableColumnDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "primaryKey": { - "type": "boolean" - }, - "uniqueConstraint": { - "type": "boolean" - } - } - }, - "TableDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "cdcReady": { - "type": "boolean" - }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableColumnDto" - } - } - } - }, - "WorkspacesResponse": { - "type": "object", - "properties": { - "workspaces": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WorkspaceResponse" - } - } - } - }, - "BdbPipelinesResponseDto": { - "type": "object", - "properties": { - "pipelineIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "workspaceIds": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "securitySchemes": { - "x-api-key": { - "type": "apiKey", - "name": "x-api-key", - "in": "header" - }, - "x-api-secret-key": { - "type": "apiKey", - "name": "x-api-secret-key", - "in": "header" - } - } - } -} From 86d3d103c42926030b741c82c14c9314fa7e84c8 Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Thu, 2 Jul 2026 09:15:15 +0300 Subject: [PATCH 04/10] RDSC-5669 link Cloud RDI docs to API reference --- content/operate/rc/rdi/_index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/operate/rc/rdi/_index.md b/content/operate/rc/rdi/_index.md index 8fff8c9c75..8aa0c20fd7 100644 --- a/content/operate/rc/rdi/_index.md +++ b/content/operate/rc/rdi/_index.md @@ -146,3 +146,7 @@ To create a new data pipeline, you need to: 1. [Define the source connection and data pipeline]({{}}) by selecting which tables to sync. Once your data pipeline is defined, you can [view and edit]({{}}) it. + +## More info + +- [Redis Cloud Data Integration API reference]({{< relref "/operate/rc/api/api-reference" >}}#tag/Subscriptions-Pro-Data-Integration) From 40737bc6a038d757ab093b3695c001df3022edca Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Thu, 2 Jul 2026 09:18:45 +0300 Subject: [PATCH 05/10] RDSC-5669 move RDI API links to contextual pages --- content/operate/rc/rdi/_index.md | 4 ---- content/operate/rc/rdi/create-workspace.md | 4 +++- content/operate/rc/rdi/view-edit.md | 2 ++ 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/operate/rc/rdi/_index.md b/content/operate/rc/rdi/_index.md index 8aa0c20fd7..8fff8c9c75 100644 --- a/content/operate/rc/rdi/_index.md +++ b/content/operate/rc/rdi/_index.md @@ -146,7 +146,3 @@ To create a new data pipeline, you need to: 1. [Define the source connection and data pipeline]({{}}) by selecting which tables to sync. Once your data pipeline is defined, you can [view and edit]({{}}) it. - -## More info - -- [Redis Cloud Data Integration API reference]({{< relref "/operate/rc/api/api-reference" >}}#tag/Subscriptions-Pro-Data-Integration) diff --git a/content/operate/rc/rdi/create-workspace.md b/content/operate/rc/rdi/create-workspace.md index 37c59e12e8..f2aca23cba 100644 --- a/content/operate/rc/rdi/create-workspace.md +++ b/content/operate/rc/rdi/create-workspace.md @@ -17,6 +17,8 @@ tocEmbedHeaders: true Before you can create your first Data Integration pipeline for a Redis Cloud subscription, you must first deploy the cloud infrastructure needed to host the pipeline and run the workers associated with the pipeline. In Redis Cloud, this is called a **Workspace**. Each Pro subscription can have one Data integration workspace. You only need to set up the workspace once - any pipelines you create for your subscription will run on the workspace until you delete it. You won't be charged for a workspace until you start running your Data Integration pipeline. +To manage Data Integration workspaces programmatically, see the [Redis Cloud Data Integration API reference]({{< relref "/operate/rc/api/api-reference" >}}#tag/Subscriptions-Pro-Data-Integration). + ## Create a Data Integration workspace {{< embed-md "rc-rdi-create-rdi-workspace.md" >}} @@ -42,4 +44,4 @@ Make sure to [delete your data pipeline]({{ Delete workspace** from your workspace. -{{The delete workspace button.}} \ No newline at end of file +{{The delete workspace button.}} diff --git a/content/operate/rc/rdi/view-edit.md b/content/operate/rc/rdi/view-edit.md index 774b89564a..9fd83a931b 100644 --- a/content/operate/rc/rdi/view-edit.md +++ b/content/operate/rc/rdi/view-edit.md @@ -15,6 +15,8 @@ weight: 4 To view or manage your data pipeline, select it from your workspace from the **Data Integration** page or from the **Data Integration** tab in your subscription or database. +To manage Data Integration pipelines programmatically, see the [Redis Cloud Data Integration API reference]({{< relref "/operate/rc/api/api-reference" >}}#tag/Subscriptions-Pro-Data-Integration). + The pipeline page has the following tabs: - [Dashboard](#dashboard) From 26e52a31034b36fc3289daeef25b33a131fa5b17 Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Thu, 2 Jul 2026 09:26:19 +0300 Subject: [PATCH 06/10] RDSC-5669 add RDI pipeline payload example --- content/operate/rc/api/api-reference/openapi.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index 02f5d925f5..482b11b112 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -11390,6 +11390,12 @@ "schema": { "type": "object", "additionalProperties": true + }, + "example": { + "targetDataType": "hash", + "definitionType": "predefined", + "schemas": [], + "jobs": [] } } } From 5125139e3bc01dd5e25d98b3e0eb36932bfaf2aa Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Thu, 2 Jul 2026 12:28:22 +0300 Subject: [PATCH 07/10] RDSC-5669 refresh RDI API reference --- .../operate/rc/api/api-reference/openapi.json | 27580 +++++++++++----- 1 file changed, 19214 insertions(+), 8366 deletions(-) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index 482b11b112..eb9a4ec932 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -11170,1184 +11170,1965 @@ } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "getWorkspace", + "delete": { + "description": "Starts deleting the data integration workspace for a subscription and returns an asynchronous task.", + "operationId": "deleteWorkspace", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "responses": { - "200": { - "description": "OK", + "202": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceResponse" + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" } } - } - } - }, - "x-speakeasy-group": "workspaces", - "x-api-lifecycle": "preview" - }, - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "createWorkspace", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceCreateRequest" + }, + "description": "Workspace deletion accepted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } + }, + "description": "Bad request: request or business validation failed" }, - "required": true - }, - "responses": { - "202": { - "description": "Accepted", + "403": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "workspaces", - "x-api-lifecycle": "preview" - }, - "delete": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "deleteWorkspace", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "202": { - "description": "Accepted", + }, + "description": "Access denied" + }, + "404": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "workspaces", - "x-api-lifecycle": "preview" - } - }, - "/v1/data-integration-workspaces": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "listWorkspaces", - "responses": { - "200": { - "description": "OK", + }, + "description": "Resource not found" + }, + "409": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspacesResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "workspaces", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get RDI API information", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2Info", - "responses": { - "200": { - "description": "OK", + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "List RDI pipelines", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "listRdiV2Pipelines", - "responses": { - "200": { - "description": "OK", + }, + "description": "Internal server error" + }, + "502": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } + }, + "description": "Upstream service error" } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "post": { + "summary": "Delete a data integration workspace", + "x-speakeasy-group": "workspaces", "tags": [ "Subscriptions - Pro - Data Integration" ], - "summary": "Create an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "createRdiV2Pipeline", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "get": { + "description": "Returns the current data integration workspace state for the specified subscription.", + "operationId": "getWorkspace", "parameters": [ { - "name": "dry_run", - "in": "query", - "description": "Validate the pipeline without deploying it.", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "validate_cdc", - "in": "query", - "description": "Validate change data capture configuration.", - "required": false, + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, "schema": { - "type": "boolean" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - }, - "example": { - "targetDataType": "hash", - "definitionType": "predefined", - "schemas": [], - "jobs": [] - } - } - } - }, "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WorkspaceResponse" + }, + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2Pipeline", - "responses": { - "200": { - "description": "OK", + }, + "description": "Workspace returned" + }, + "400": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "put": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Replace an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "replaceRdiV2Pipeline", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "description": "Validate the pipeline without deploying it.", - "required": false, - "schema": { - "type": "boolean" - } + }, + "description": "Bad request: request or business validation failed" }, - { - "name": "validate_cdc", - "in": "query", - "description": "Validate change data capture configuration.", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } - } - }, - "responses": { - "200": { - "description": "OK", + }, + "description": "Access denied" + }, + "404": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "delete": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Delete an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "deleteRdiV2Pipeline", - "responses": { - "200": { - "description": "OK", + }, + "description": "Resource not found" + }, + "409": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "patch": { + "summary": "Get a data integration workspace", + "x-speakeasy-group": "workspaces", "tags": [ "Subscriptions - Pro - Data Integration" ], - "summary": "Update an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "updateRdiV2Pipeline", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "post": { + "description": "Starts provisioning a data integration workspace for a subscription and returns an asynchronous task.", + "operationId": "createWorkspace", "parameters": [ { - "name": "dry_run", - "in": "query", - "description": "Validate the pipeline without deploying it.", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "validate_cdc", - "in": "query", - "description": "Validate change data capture configuration.", - "required": false, + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, "schema": { - "type": "boolean" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WorkspaceCreateRequest" + }, + "example": { + "cidr": "cidr" } } - } + }, + "required": true }, "responses": { - "200": { - "description": "OK", + "202": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get RDI pipeline status", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2PipelineStatus", - "responses": { - "200": { - "description": "OK", + }, + "description": "Workspace creation accepted" + }, + "400": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true - } - } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Start an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "startRdiV2Pipeline", - "responses": { - "200": { - "description": "OK", + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Stop an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "stopRdiV2Pipeline", - "responses": { - "200": { - "description": "OK", + }, + "description": "Access denied" + }, + "404": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Reset an RDI pipeline", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "resetRdiV2Pipeline", - "responses": { - "200": { - "description": "OK", + }, + "description": "Resource not found" + }, + "409": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "List RDI pipeline metric collections", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "listRdiV2MetricCollections", - "responses": { - "200": { - "description": "OK", + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { - "get": { + "summary": "Create a data integration workspace", + "x-speakeasy-group": "workspaces", "tags": [ "Subscriptions - Pro - Data Integration" ], - "summary": "Get an RDI pipeline metric collection", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2MetricCollection", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/data-integration-workspaces": { + "get": { + "description": "Lists all data integration workspaces in the current Redis Cloud account.", + "operationId": "listWorkspaces", "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WorkspacesResponse" + }, + "example": { + "workspaces": [ + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + }, + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + } + ] } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "collection_name", - "in": "path", - "description": "Metric collection name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "List RDI pipeline secrets", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "listRdiV2PipelineSecrets", - "responses": { - "200": { - "description": "OK", + }, + "description": "Workspaces returned" + }, + "400": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Create an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "createRdiV2PipelineSecret", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "responses": { - "200": { - "description": "OK", + }, + "description": "Bad request: request or business validation failed" + }, + "403": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2PipelineSecret", - "responses": { - "200": { - "description": "OK", + }, + "description": "Access denied" + }, + "404": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "put": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Replace an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "replaceRdiV2PipelineSecret", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } - } - }, - "responses": { - "200": { - "description": "OK", + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "delete": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Delete an RDI pipeline secret", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "deleteRdiV2PipelineSecret", - "responses": { - "200": { - "description": "OK", + }, + "description": "Internal server error" + }, + "502": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" + }, + "description": "Upstream service error" } }, - { - "name": "key", - "in": "path", - "description": "Secret key.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { - "get": { + "summary": "List data integration workspaces", + "x-speakeasy-group": "workspaces", "tags": [ "Subscriptions - Pro - Data Integration" ], - "summary": "Get RDI pipeline source schema", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "getRdiV2SourceSchema", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { + "get": { + "description": "Lists asynchronous workspace tasks for the specified data integration workspace.", + "operationId": "listTasks", "parameters": [ { - "name": "schemas", - "in": "query", - "description": "Comma-separated source schemas to include.", - "required": false, + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, "schema": { - "type": "string" - } - }, - { - "name": "tables", - "in": "query", - "description": "Comma-separated source tables to include.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "details", - "in": "query", - "description": "Include detailed source schema metadata.", - "required": false, - "schema": { - "type": "boolean" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WorkspaceTasksResponse" + }, + "example": { + "tasks": [ + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + ] } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "source_name", - "in": "path", - "description": "Source name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Flush an RDI pipeline target", - "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", - "operationId": "flushRdiV2Target", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": true + }, + "description": "Workspace tasks returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } - } - }, - "responses": { - "200": { - "description": "OK", + }, + "description": "Bad request: request or business validation failed" + }, + "403": { "content": { "application/json": { "schema": { - "type": "object", - "additionalProperties": true + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "rdi", - "x-api-lifecycle": "preview" - }, - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "description": "RDI pipeline name.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "target_name", - "in": "path", - "description": "Target name.", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "listTasks", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "OK", + }, + "description": "Access denied" + }, + "404": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceTasksResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, + "summary": "List workspace tasks", "x-speakeasy-group": "tasks", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], + "description": "Returns one asynchronous workspace task by task ID.", "operationId": "getTask", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" }, { - "name": "taskId", + "explode": false, "in": "path", + "name": "taskId", "required": true, "schema": { "type": "string" - } + }, + "style": "simple" } ], "responses": { "200": { - "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" } } - } - } - }, - "x-speakeasy-group": "tasks", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "listEndpoints", - "parameters": [ + }, + "description": "Workspace task returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get a workspace task", + "x-speakeasy-group": "tasks", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { + "get": { + "description": "Lists PrivateLink endpoints for the data integration workspace in the specified subscription.", + "operationId": "listEndpoints", + "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "responses": { "200": { - "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" + }, + "example": { + "endpoints": [ + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + }, + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + } + ] } } - } + }, + "description": "PrivateLink endpoints returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, + "summary": "List PrivateLink endpoints", "x-speakeasy-group": "privatelink", - "x-api-lifecycle": "preview" - }, - "post": { "tags": [ "Subscriptions - Pro - Data Integration" ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "post": { + "description": "Starts creating a PrivateLink endpoint for the data integration workspace and returns an asynchronous task.", "operationId": "createEndpoint", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "requestBody": { @@ -12355,164 +13136,1039 @@ "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrivateLinkEndpointRequest" + }, + "example": { + "serviceName": "serviceName" } } }, "required": true }, "responses": { - "200": { - "description": "OK", + "202": { "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" } } - } - } - }, - "x-speakeasy-group": "privatelink", - "x-speakeasy-name-override": "create-endpoint", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { - "get": { + }, + "description": "PrivateLink endpoint creation accepted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Create a PrivateLink endpoint", + "x-speakeasy-group": "privatelink", + "x-speakeasy-name-override": "create-endpoint", "tags": [ "Subscriptions - Pro - Data Integration" ], - "operationId": "getEndpoint", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { + "delete": { + "description": "Starts deleting a PrivateLink endpoint from the data integration workspace and returns an asynchronous task.", + "operationId": "deleteEndpoint", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" }, { - "name": "endpointId", + "explode": false, "in": "path", + "name": "endpointId", "required": true, "schema": { "type": "string" - } + }, + "style": "simple" } ], "responses": { - "200": { - "description": "OK", + "202": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" } } - } + }, + "description": "PrivateLink endpoint deletion accepted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, + "summary": "Delete a PrivateLink endpoint", "x-speakeasy-group": "privatelink", - "x-api-lifecycle": "preview" - }, - "delete": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "operationId": "deleteEndpoint", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "get": { + "description": "Returns one PrivateLink endpoint by endpoint ID.", + "operationId": "getEndpoint", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" }, { - "name": "endpointId", + "explode": false, "in": "path", + "name": "endpointId", "required": true, "schema": { "type": "string" - } + }, + "style": "simple" } ], "responses": { "200": { - "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + }, + "example": { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } } } - } - } - }, - "x-speakeasy-group": "privatelink", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { - "post": { + }, + "description": "PrivateLink endpoint returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get a PrivateLink endpoint", + "x-speakeasy-group": "privatelink", "tags": [ "Subscriptions - Pro - Data Integration" ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { + "post": { + "description": "Validates reachability for an existing PrivateLink endpoint attached to the data integration workspace.", "operationId": "validateEndpoint", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" }, { - "name": "endpointId", + "explode": false, "in": "path", + "name": "endpointId", "required": true, "schema": { "type": "string" - } + }, + "style": "simple" } ], "responses": { "200": { - "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkValidationResponse" + }, + "example": { + "success": true, + "error": "error" } } - } + }, + "description": "PrivateLink endpoint validation completed" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, + "summary": "Validate a PrivateLink endpoint", "x-speakeasy-group": "privatelink", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], + "description": "Validates an AWS PrivateLink endpoint service name before creating a workspace PrivateLink endpoint.", "operationId": "validatePrivateLink", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "requestBody": { @@ -12520,6 +14176,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkValidationRequest" + }, + "example": { + "serviceName": "serviceName" } } }, @@ -12527,3579 +14186,6945 @@ }, "responses": { "200": { - "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { "$ref": "#/components/schemas/PrivateLinkValidationResponse" + }, + "example": { + "success": true, + "error": "error" } } - } - } - }, - "x-speakeasy-group": "privatelink", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "getSuggestedCidrs", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + }, + "description": "PrivateLink service validation completed" }, - { - "name": "cidr-mask", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 22 - } - } - ], - "responses": { - "200": { - "description": "OK", + "400": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/CidrsInfoResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "workspaces", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "listDrafts", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "responses": { - "200": { - "description": "OK", + }, + "description": "Bad request: request or business validation failed" + }, + "403": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ComposeDraftListResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - }, - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "createDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - } - } - } - }, - "responses": { - "200": { - "description": "OK", + }, + "description": "Access denied" + }, + "404": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ComposeDraftCreatedResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "mountSecretsFromPayload", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } + }, + "description": "Resource conflict or invalid state transition" }, - "required": true - }, - "responses": { - "204": { - "description": "No Content" - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "translate", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeTranslateRequest" + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } + }, + "description": "Internal server error" }, - "required": true - }, - "responses": { - "200": { - "description": "OK", + "502": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ComposeTranslateResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } + }, + "description": "Upstream service error" } }, - "x-speakeasy-group": "compose", + "summary": "Validate a PrivateLink service", + "x-speakeasy-group": "privatelink", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", "x-api-lifecycle": "preview" } }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "getDraft", + "description": "Returns used CIDRs, the default CIDR, and the next free CIDR for data integration workspace provisioning.", + "operationId": "getSuggestedCidrs", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" }, { - "name": "draftId", - "in": "path", - "required": true, + "explode": true, + "in": "query", + "name": "cidr-mask", + "required": false, "schema": { - "type": "string" - } + "default": 22, + "format": "int32", + "type": "integer" + }, + "style": "form" } ], "responses": { "200": { - "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" + "$ref": "#/components/schemas/CidrsInfoResponse" + }, + "example": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] } } - } - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - }, - "put": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "updateDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + }, + "description": "Suggested CIDRs returned" }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } + }, + "description": "Bad request: request or business validation failed" }, - "required": true - }, - "responses": { - "200": { - "description": "OK", + "403": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - }, - "delete": { + "summary": "Get suggested workspace CIDRs", + "x-speakeasy-group": "workspaces", "tags": [ "Subscriptions - Pro - Data Integration" ], - "operationId": "deleteDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK" - } - }, - "x-speakeasy-group": "compose", + "x-stability": "experimental", "x-api-lifecycle": "preview" } }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "getComposed", + "description": "Lists compose drafts for the specified data integration workspace.", + "operationId": "listDrafts", "parameters": [ { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "draftId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "string" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "responses": { "200": { - "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/RdiPatchRequest" + "$ref": "#/components/schemas/ComposeDraftListResponse" + }, + "example": { + "items": [ + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + }, + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + } + ] } } - } - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "validateDraft", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + }, + "description": "Compose drafts returned" }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", + "400": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/RdiPipelineResponse" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "mountSecrets", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } + }, + "description": "Bad request: request or business validation failed" }, - { - "name": "draftId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - } - }, - "x-speakeasy-group": "compose", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "operationId": "validateSecret", - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecretValidationRequestDto" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } + }, + "description": "Access denied" }, - "required": true - }, - "responses": { - "200": { - "description": "OK", + "404": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/SecretValidationResponseDto" + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 } } - } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - "x-speakeasy-group": "secrets", - "x-speakeasy-name-override": "validate", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { - "post": { + "summary": "List compose drafts", + "x-speakeasy-group": "compose", "tags": [ "Subscriptions - Pro - Data Integration" ], - "operationId": "validateSingleSecret", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "post": { + "description": "Creates a compose draft for building or editing a data integration pipeline configuration.", + "operationId": "createDraft", "parameters": [ { - "name": "subscriptionId", + "explode": false, "in": "path", + "name": "subscriptionId", "required": true, "schema": { - "type": "integer", - "format": "int64" - } + "format": "int64", + "type": "integer" + }, + "style": "simple" } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SingleSecretValidationRequestDto" + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } } } - }, - "required": true + } }, "responses": { - "200": { - "description": "OK", + "201": { "content": { - "*/*": { + "application/json": { "schema": { - "$ref": "#/components/schemas/SingleSecretValidationResponseDto" + "$ref": "#/components/schemas/ComposeDraftCreatedResponse" + }, + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "draftId": "draftId", + "updatedAt": "2000-01-23T04:56:07.000+00:00" } } - } - } - }, - "x-speakeasy-group": "secrets", - "x-api-lifecycle": "preview" - } - } - }, - "components": { - "schemas": { - "TargetVersion": { - "type": "object", - "properties": { - "redisVersion": { - "type": "string" - } - } - }, - "AclUserCreateRequest": { - "required": [ - "name", - "password", - "role" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Access control user name.", - "example": "ACL-user-example" - }, - "role": { - "type": "string", - "description": "Name of the database access role to assign to this user. Use GET '/acl/roles' to get a list of database access roles.", - "example": "ACL-role-example" + }, + "description": "Compose draft created" }, - "password": { - "type": "string", - "description": "The database password for this user.", - "example": "ab123AB$%^" + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "ACL user create request" - }, - "AccountUserUpdateRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "userId": { - "type": "integer", - "format": "int32", - "readOnly": true + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "name": { - "type": "string", - "description": "The account user's name.", - "example": "My new user name" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "role": { - "type": "string", - "description": "Changes the account user's role. See [Team management roles](https://redis.io/docs/latest/operate/rc/security/access-control/access-management/#team-management-roles) to learn about available account roles.", - "enum": [ - "Owner", - "Member", - "Viewer", - "Logs Viewer (API use only)", - "Manager", - "Billing Admin" - ] + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "User update request" - }, - "PaymentMethods": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } + }, + "description": "Upstream service error" } }, - "description": "RedisLabs Account payment methods", - "example": { - "accountId": 1001, - "paymentMethods": [ - { - "id": 2, - "type": "Visa", - "creditCardEndsWith": "9349", - "nameOnCard": "CAPI User", - "expirationMonth": 2, - "expirationYear": 2026, - "links": [] - } - ] - } - }, - "AclRoleDatabaseSpec": { - "required": [ - "databaseId", - "subscriptionId" + "summary": "Create a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "description": "Subscription ID for the database's subscription. Use 'GET /subscriptions' or 'GET /fixed/subscriptions' to get a list of available subscriptions and their IDs.", - "format": "int32" - }, - "databaseId": { - "type": "integer", - "description": "The database's ID. Use 'GET /subscriptions/{subscriptionId}/databases' or 'GET /fixed/subscriptions/{subscriptionId}/databases' to get a list of databases in a subscription and their IDs.", - "format": "int32" - }, - "regions": { - "type": "array", - "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", - "example": [], - "items": { - "type": "string", - "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", - "example": "[]" - } + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { + "post": { + "description": "Mounts secret providers from an ad-hoc compose payload into the data integration workspace.", + "operationId": "mountSecretsFromPayload", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" } - }, - "description": "A list of databases where the specified rule applies for this role." - }, - "ActiveActiveTgwUpdateCidrsRequest": { - "type": "object", - "properties": { - "cidrs": { - "type": "array", - "description": "Optional. List of transit gateway attachment CIDRs.", - "example": [ - "10.10.10.0/24", - "10.10.20.0/24" - ], - "items": { - "$ref": "#/components/schemas/Cidr" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + } } }, - "commandType": { - "type": "string", - "readOnly": true - } + "required": true }, - "description": "Active active Transit Gateway update attachment cidr/s request message" - }, - "RootAccount": { - "type": "object", - "properties": { - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "example": { - "account": { - "id": 1001, - "name": "Redis", - "createdTimestamp": "2018-12-23T15:15:31Z", - "updatedTimestamp": "2022-10-12T10:54:10Z", - "pocStatus": "inactive", - "marketplaceStatus": "active", - "key": { - "name": "capi-api-key-name", - "accountId": 1001, - "accountName": "Redis", - "allowedSourceIps": [ - "0.0.0.0/0" - ], - "createdTimestamp": "2022-05-11T12:05:47Z", - "owner": { - "name": "CAPI user", - "email": "capi.user@redis.com" - }, - "userAccountId": 1, - "httpSourceIp": "79.0.0.173" - } - } - } - }, - "PrivateLinkActiveActiveCreateRequest": { - "required": [ - "principal", - "regionId", - "shareName", - "type" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "responses": { + "204": { + "description": "Compose secrets mounted" }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "shareName": { - "maxLength": 64, - "minLength": 0, - "type": "string", - "description": "Name for the resource share", - "example": "my-private-link-share" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "commandType": { - "type": "string", - "readOnly": true + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - "description": "Request to create a private link for Active-Active subscription" - }, - "ActiveActiveVpcPeeringCreateAwsRequest": { - "required": [ - "awsAccountId", - "destinationRegion", - "sourceRegion", - "vpcId" + "summary": "Mount compose payload secrets", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." - }, - "destinationRegion": { - "type": "string", - "description": "Name of region to create a VPC peering to.", - "example": "us-east-1" - }, - "awsAccountId": { - "type": "string", - "description": "AWS Account ID.", - "example": "" - }, - "vpcId": { - "type": "string", - "description": "VPC ID.", - "example": "" - }, - "vpcCidr": { - "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" - }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" - } - }, - "commandType": { - "type": "string", - "readOnly": true + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { + "post": { + "description": "Translates between cloud compose configuration and the RDI-native pipeline configuration format.", + "operationId": "translate", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" } - }, - "description": "VPC peering creation request message" - }, - "SubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated subscription name.", - "example": "My new subscription name" - }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", - "format": "int32" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateRequest" + }, + "example": { + "cloud": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + }, + "rdi": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" + }, + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "status": "started" + }, + "direction": "cloud-to-rdi" + } + } }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", - "enum": [ - "credit-card", - "marketplace" - ] + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateResponse" + }, + "example": { + "rdi": { + "active": true, + "config": { + "key": "{}" + } + }, + "draft": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + }, + "warnings": [ + "warnings", + "warnings" + ] + } + } + }, + "description": "Compose configuration translated" }, - "publicEndpointAccess": { - "type": "boolean", - "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint." + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Subscription update request message" - }, - "DatabaseTagUpdateRequest": { - "required": [ - "value" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "key": { - "type": "string", - "readOnly": true + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "value": { - "type": "string", - "description": "Database tag value" + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "commandType": { - "type": "string", - "readOnly": true + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - "description": "Database tag update request message" - }, - "ActiveActivePscEndpointCreateRequest": { - "required": [ - "endpointConnectionName", - "gcpProjectId", - "gcpVpcName", - "gcpVpcSubnetName", - "pscServiceId", - "regionId", - "subscriptionId" + "summary": "Translate a compose configuration", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "pscServiceId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true, - "example": 27 - }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" - }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" - }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" - }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { + "delete": { + "description": "Deletes a compose draft from the data integration workspace.", + "operationId": "deleteDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" }, - "commandType": { - "type": "string", - "readOnly": true + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" } - }, - "description": "Private Service Connect endpoint create request" - }, - "TaskStateUpdate": { - "type": "object", - "properties": { - "taskId": { - "type": "string", - "format": "uuid" - }, - "commandType": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "initialized", - "received", - "processing-in-progress", - "processing-completed", - "processing-error" - ] - }, - "description": { - "type": "string" + ], + "responses": { + "204": { + "description": "Compose draft deleted" }, - "timestamp": { - "type": "string", - "format": "date-time" + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "response": { - "$ref": "#/components/schemas/ProcessorResponse" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } - } - } - }, - "Database": { - "type": "object", - "properties": { - "databaseId": { - "type": "integer", - "format": "int32" + }, + "description": "Resource not found" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - } - } - }, - "example": { - "databaseId": 1, - "name": "DB-RCP-2-81-7", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "respVersion": "resp3", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 + }, + "description": "Resource conflict or invalid state transition" }, - "activatedOn": "2021-08-29T13:03:08Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - ] + }, + "description": "Internal server error" }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } } - ], - "hashingPolicy": "standard" + }, + "description": "Upstream service error" + } + }, + "summary": "Delete a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "get": { + "description": "Returns one compose draft by draft ID.", + "operationId": "getDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" }, - "security": { - "enableDefaultUser": true, - "password": "redis123456redis", - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases/51170941", - "type": "GET" - } - ] - } - }, - "SubscriptionDatabaseSpec": { - "required": [ - "name", - "protocol" + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-database-example" - }, - "protocol": { - "type": "string", - "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", - "enum": [ - "redis", - "memcached" - ] - }, - "port": { - "type": "integer", - "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", - "format": "int32", - "example": 10000 - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + }, + "example": { + "draftId": "draftId", + "advanced": { + "processor": "{}" + }, + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "target": { + "targetBdbId": 1 + }, + "pipelineName": "pipelineName", + "createdAt": "2000-01-23T04:56:07.000+00:00", + "pipelineDescription": "pipelineDescription", + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "updatedAt": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "Compose draft returned" }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", - "example": false + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "replication": { - "type": "boolean", - "description": "Optional. Databases replication. Default: 'true'" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "throughputMeasurement": { - "$ref": "#/components/schemas/DatabaseThroughputSpec" + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "localThroughputMeasurement": { - "type": "array", - "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", - "items": { - "$ref": "#/components/schemas/LocalThroughput" - } + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "modules": { - "type": "array", - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", - "items": { - "$ref": "#/components/schemas/DatabaseModuleSpec" - } + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "put": { + "description": "Replaces the body of an existing compose draft.", + "operationId": "updateDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" }, - "quantity": { - "type": "integer", - "description": "Optional. Number of databases that will be created with these settings. Default: 1", - "format": "int32", - "example": 1 - }, - "averageItemSizeInBytes": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", - "format": "int64", - "deprecated": true - }, - "ramPercentage": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", - "format": "int32", - "example": 20 - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "redisVersion": { - "type": "string", - "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", - "example": "7.2" - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." - }, - "shardingType": { - "type": "string", - "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", - "enum": [ - "default-regex-rules", - "custom-regex-rules", - "redis-oss-hashing" - ] - }, - "queryPerformanceFactor": { - "type": "string", - "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", - "example": "2x" + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" } - }, - "description": "One or more database specification(s) to create in this subscription." - }, - "Subscription": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "paymentMethodId": { - "type": "integer", - "format": "int32" - }, - "status": { - "type": "string" - }, - "publicEndpointAccess": { - "type": "boolean" - }, - "memoryStorage": { - "type": "string", - "enum": [ - "ram", - "ram-and-flash" - ] - }, - "numberOfDatabases": { - "type": "integer", - "format": "int32" - }, - "paymentMethodType": { - "type": "string", - "enum": [ - "credit-card", - "marketplace" - ] - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } } } }, - "persistentStorageEncryptionType": { - "type": "string" - }, - "deletionGracePeriod": { - "type": "string" - }, - "customerManagedKeyAccessDetails": { - "$ref": "#/components/schemas/CustomerManagedKeyAccessDetails" - } + "required": true }, - "description": "RedisLabs Subscription information", - "example": { - "id": 1206, - "name": "updated new name", - "status": "active", - "deploymentType": "single-region", - "paymentMethodId": 2, - "publicEndpointAccess": true, - "memoryStorage": "ram", - "numberOfDatabases": 6, - "paymentMethodType": "credit-card", - "storageEncryption": false, - "subscriptionPricing": [ - { - "type": "Shards", - "typeDetails": "high-throughput", - "quantity": 7, - "quantityMeasurement": "shards", - "pricePerUnit": 0.124, - "priceCurrency": "USD", - "pricePeriod": "hour" - } - ], - "cloudDetails": [ - { - "provider": "AWS", - "cloudAccountId": 2, - "totalSizeInGb": 0.0272, - "regions": [ - { - "region": "us-east-1", - "networking": [ + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + }, + "example": { + "draftId": "draftId", + "advanced": { + "processor": "{}" + }, + "jobs": [ { - "deploymentCIDR": "10.0.0.0/24", - "subnetId": "subnet-009ce004ed90da8a6" + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } } ], - "preferredAvailabilityZones": [ - "us-east-1a" + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "target": { + "targetBdbId": 1 + }, + "pipelineName": "pipelineName", + "createdAt": "2000-01-23T04:56:07.000+00:00", + "pipelineDescription": "pipelineDescription", + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } ], - "multipleAvailabilityZones": false + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "updatedAt": "2000-01-23T04:56:07.000+00:00" } - ], - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416", - "type": "GET" - } - ] - } - }, - "CidrWhiteListUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + } + }, + "description": "Compose draft updated" }, - "cidrIps": { - "type": "array", - "description": "List of CIDR values. Example: ['10.1.1.0/32']", - "items": { - "type": "string", - "description": "List of CIDR values. Example: ['10.1.1.0/32']" - } + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "securityGroupIds": { - "type": "array", - "description": "List of AWS Security group IDs.", - "items": { - "type": "string", - "description": "List of AWS Security group IDs." - } + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "commandType": { - "type": "string", - "readOnly": true + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - "description": "Update Pro subscription" - }, - "FixedDatabaseCreateRequest": { - "required": [ - "name" + "summary": "Update a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-Essentials-database-example" - }, - "protocol": { - "type": "string", - "description": "Optional. Database protocol. Use 'stack' to get all of Redis' advanced capabilities. Only use 'redis' for Pay-as-you-go or Redis Flex subscriptions. Default: 'stack' for most subscriptions, 'redis' for Redis Flex subscriptions.", - "enum": [ - "redis", - "memcached", - "stack" - ] + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { + "get": { + "description": "Renders a compose draft as the RDI-native pipeline configuration payload.", + "operationId": "getComposed", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiPatchRequest" + }, + "example": { + "active": true, + "config": { + "key": "{}" + } + } + } + }, + "description": "RDI configuration returned" }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", - "example": true + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "redisVersion": { - "type": "string", - "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version. (available in 'GET /fixed/redis-versions')", - "example": "7.4" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", - "example": true + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "enableDatabaseClustering": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances. Default: 'false'", - "example": false + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get composed RDI configuration", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { + "post": { + "description": "Dry-run validates a compose draft against the RDI API without deploying the pipeline.", + "operationId": "validateDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" }, - "numberOfShards": { - "type": "integer", - "description": "(Pay-as-you-go subscriptions only) Optional. Specifies the number of master shards.", - "format": "int32", - "example": 2 + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiPipelineResponse" + }, + "example": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" + }, + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "status": "started" + } + } + }, + "description": "Compose draft validated" }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "replication": { - "type": "boolean", - "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups.", - "example": "s3://" + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "sourceIps": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'" - } + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "regexRules": { - "type": "array", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and .", - "items": { - "type": "string", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and ." - } + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { + "post": { + "description": "Mounts secret providers from a saved compose draft into the data integration workspace.", + "operationId": "mountSecrets", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." - } - }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", - "deprecated": true + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "204": { + "description": "Compose draft secrets mounted" }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "password": { - "type": "string", - "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated." + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "alerts": { - "type": "array", - "description": "Optional. Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "modules": { - "type": "array", - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Can only be set if 'protocol' is 'redis'. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", - "items": { - "$ref": "#/components/schemas/DatabaseModuleSpec" - } + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "commandType": { - "type": "string", - "readOnly": true + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" } }, - "description": "Essentials database definition" - }, - "DatabaseUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "summary": "Mount compose draft secrets", + "x-speakeasy-group": "compose", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { + "post": { + "description": "Validates AWS Secrets Manager ARNs for source credentials and optional TLS materials used by a data integration workspace.", + "operationId": "validateSecret", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecretValidationRequestDto" + }, + "example": { + "credentialsSecretArn": "credentialsSecretArn", + "clientCertSecretArn": "clientCertSecretArn", + "clientKeySecretArn": "clientKeySecretArn", + "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", + "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", + "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", + "caCertSecretArn": "caCertSecretArn", + "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" + } + } }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecretValidationResponseDto" + }, + "example": { + "success": true, + "errors": [ + { + "code": "code", + "message": "message" + }, + { + "code": "code", + "message": "message" + } + ] + } + } + }, + "description": "Secret validation completed" }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", - "example": false + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "name": { - "type": "string", - "description": "Optional. Updated database name.", - "example": "Redis-database-example-updated" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "throughputMeasurement": { - "$ref": "#/components/schemas/DatabaseThroughputSpec" - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Turns database replication on or off." + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "regexRules": { - "type": "array", - "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", - "items": { - "type": "string", - "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." - } + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate workspace secrets", + "x-speakeasy-group": "secrets", + "x-speakeasy-name-override": "validate", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { + "post": { + "description": "Validates one AWS Secrets Manager ARN against a specific data integration secret purpose.", + "operationId": "validateSingleSecret", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationRequestDto" + }, + "example": { + "purpose": "source-credentials", + "secretArn": "secretArn" + } } }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", - "example": false + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationResponseDto" + }, + "example": { + "success": true, + "errorCode": "errorCode", + "error": "error" + } + } + }, + "description": "Single secret validation completed" }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", - "example": false + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" }, - "password": { - "type": "string", - "description": "Optional. Changes the password used to access the database with the 'default' user. Can only be set if 'protocol' is 'redis'.", - "example": "P@ssw0rd" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" }, - "saslUsername": { - "type": "string", - "description": "Optional. Changes the Memcached (SASL) username to access the database. Can only be set if 'protocol' is 'memcached'.", - "example": "mc-HR7gb" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" }, - "saslPassword": { - "type": "string", - "description": "Optional. Changes the Memcached (SASL) password to access the database. Can only be set if 'protocol' is 'memcached'.", - "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT" + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" }, - "sourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" - } + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." - }, - "enableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. Can only be set if 'protocol' is 'redis'." - }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. If set to an empty string, the backup path will be removed.", - "example": "s3://", - "deprecated": true - }, - "remoteBackup": { - "$ref": "#/components/schemas/DatabaseBackupConfig" - }, - "alerts": { - "type": "array", - "description": "Optional. Changes Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate one workspace secret", + "x-speakeasy-group": "secrets", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Info", + "description": "Gets package version.", + "operationId": "getRdiV2Info", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreInfoResponse" + } + } } - }, - "ramPercentage": { + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50).", - "format": "int32", - "example": 20 - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." + "format": "int64" + } + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get Pipelines", + "description": "Gets all pipelines.", + "operationId": "listRdiV2Pipelines", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + }, + "title": "Response Get Pipelines Api V2 Pipelines Get" + } + } + } }, - "commandType": { - "type": "string", - "readOnly": true + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "queryPerformanceFactor": { - "type": "string", - "description": "Optional. Changes the query performance factor. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", - "example": "2x" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" } }, - "description": "Database update request" + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } }, - "LocalRegionProperties": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Required. Name of the region to update." + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Create Pipeline", + "description": "Creates a new pipeline.", + "operationId": "createRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Only validate the provided configuration without making changes", + "default": false, + "title": "Dry Run" + }, + "description": "Only validate the provided configuration without making changes" }, - "remoteBackup": { - "$ref": "#/components/schemas/DatabaseBackupConfig" + { + "name": "validate_tables", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate against database tables via collector API", + "default": true, + "title": "Validate Tables" + }, + "description": "Validate against database tables via collector API" }, - "localThroughputMeasurement": { - "$ref": "#/components/schemas/LocalThroughput" + { + "name": "validate_cdc", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate CDC configuration via collector API", + "default": false, + "title": "Validate Cdc" + }, + "description": "Validate CDC configuration via collector API" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineCreateRequest", + "description": "Pipeline details" + } + } + } + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence for this region. If set, 'globalDataPersistence' will not apply to this region.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "password": { - "type": "string", - "description": "Optional. Changes the password used to access the database in this region. If set, 'globalPassword' will not apply to this region.", - "example": "P@ssw0rd" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "sourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']" - } + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Conflict" }, - "alerts": { - "type": "array", - "description": "Optional. Redis database alert settings for this region. If set, 'glboalAlerts' will not apply to this region.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version for this region. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "enableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. If set, 'globalEnableDefaultUser' will not apply to this region." + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Service Unavailable" } }, - "description": "Optional. A list of regions and local settings to update." - }, - "PscEndpointCreateRequest": { - "required": [ - "endpointConnectionName", - "gcpProjectId", - "gcpVpcName", - "gcpVpcSubnetName", - "pscServiceId", - "subscriptionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "pscServiceId": { + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32", - "readOnly": true - }, - "gcpProjectId": { + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" + "description": "Pipeline name", + "title": "Name" }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get Pipeline", + "description": "Gets a pipeline by name.", + "operationId": "getRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "commandType": { - "type": "string", - "readOnly": true + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" } }, - "description": "Private Service Connect endpoint create request" + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } }, - "ActiveActiveVpcPeeringCreateBaseRequest": { - "required": [ - "sourceRegion" + "put": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Active-Active VPC peering creation request message", - "oneOf": [ - { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateAwsRequest" - }, + "summary": "Update Pipeline", + "description": "Updates a pipeline completely, or creates it if it doesn't exist.\nRetries 409 conflicts received from the K8s API server.", + "operationId": "replaceRdiV2Pipeline", + "parameters": [ { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateGcpRequest" - } - ] - }, - "BaseSubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "name": "dry_run", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Only validate the provided configuration without making changes", + "default": false, + "title": "Dry Run" + }, + "description": "Only validate the provided configuration without making changes" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Subscription update request message", - "oneOf": [ { - "$ref": "#/components/schemas/SubscriptionUpdateRequest" + "name": "validate_tables", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate against database tables via collector API", + "default": true, + "title": "Validate Tables" + }, + "description": "Validate against database tables via collector API" }, { - "$ref": "#/components/schemas/SubscriptionUpdateCMKRequest" + "name": "validate_cdc", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate CDC configuration via collector API", + "default": false, + "title": "Validate Cdc" + }, + "description": "Validate CDC configuration via collector API" } - ] - }, - "Regions": { - "type": "object", - "properties": { - "regions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Region" - } - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineUpdateRequest", + "description": "Pipeline details" } } } }, - "example": { - "regions": [ - { - "id": 1, - "name": "us-east-1", - "provider": "AWS" + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 2, - "name": "us-west-1", - "provider": "AWS" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 3, - "name": "us-west-2", - "provider": "AWS" + "description": "Forbidden" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 4, - "name": "eu-west-1", - "provider": "AWS" - }, - { - "id": 29, - "name": "eu-central-1", - "provider": "AWS" - }, - { - "id": 7, - "name": "sa-east-1", - "provider": "AWS" + "description": "Unprocessable Entity" + }, + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 63, - "name": "ca-central-1", - "provider": "AWS" + "description": "Service Unavailable" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "patch": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Patch Pipeline", + "description": "Updates a pipeline partially (only updates specified fields), with retries on 409 conflicts received from the K8s API server.", + "operationId": "updateRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Only validate the provided configuration without making changes", + "default": false, + "title": "Dry Run" }, - { - "id": 62, - "name": "eu-north-1", - "provider": "AWS" + "description": "Only validate the provided configuration without making changes" + }, + { + "name": "validate_tables", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate against database tables via collector API", + "default": true, + "title": "Validate Tables" }, - { - "id": 61, - "name": "eu-west-3", - "provider": "AWS" + "description": "Validate against database tables via collector API" + }, + { + "name": "validate_cdc", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate CDC configuration via collector API", + "default": false, + "title": "Validate Cdc" }, - { - "id": 60, - "name": "eu-west-2", - "provider": "AWS" + "description": "Validate CDC configuration via collector API" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelinePatchRequest", + "description": "Partial pipeline details" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 59, - "name": "us-east-2", - "provider": "AWS" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 64, - "name": "ap-east-1", - "provider": "AWS" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 146, - "name": "ap-southeast-5", - "provider": "AWS" + "description": "Not Found" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 30, - "name": "ap-south-1", - "provider": "AWS" + "description": "Unprocessable Entity" + }, + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 117, - "name": "ap-northeast-3", - "provider": "AWS" + "description": "Service Unavailable" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Delete Pipeline", + "description": "Replaces a pipeline with an empty inactive pipeline and resets it.\n\nThis is done to ensure that no artifacts (offsets, schema, data streams etc.) are left behind,\nas this may cause errors and unexpected behavior when trying to re-create the pipeline.", + "operationId": "deleteRdiV2Pipeline", + "responses": { + "204": { + "description": "Successful Response" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 116, - "name": "ap-northeast-2", - "provider": "AWS" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 145, - "name": "ap-southeast-7", - "provider": "AWS" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 6, - "name": "ap-northeast-1", - "provider": "AWS" + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get Pipeline Status", + "description": "Gets the status of a pipeline by name.", + "operationId": "getRdiV2PipelineStatus", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineStatusResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 5, - "name": "ap-southeast-1", - "provider": "AWS" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 15, - "name": "ap-southeast-2", - "provider": "AWS" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 132, - "name": "il-central-1", - "provider": "AWS" - }, - { - "id": 144, - "name": "mx-central-1", - "provider": "AWS" - }, - { - "id": 32, - "name": "asia-east1", - "provider": "GCP" - }, - { - "id": 67, - "name": "asia-east2", - "provider": "GCP" - }, - { - "id": 33, - "name": "asia-northeast1", - "provider": "GCP" - }, - { - "id": 104, - "name": "asia-northeast2", - "provider": "GCP" - }, - { - "id": 69, - "name": "asia-south1", - "provider": "GCP" - }, - { - "id": 34, - "name": "asia-southeast1", - "provider": "GCP" - }, - { - "id": 71, - "name": "australia-southeast1", - "provider": "GCP" + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Start Pipeline", + "description": "Starts a pipeline, retrying on 409 conflicts received from the K8s API server.", + "operationId": "startRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 72, - "name": "europe-north1", - "provider": "GCP" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 35, - "name": "europe-west1", - "provider": "GCP" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 74, - "name": "europe-west2", - "provider": "GCP" + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Stop Pipeline", + "description": "Stops a pipeline, retrying on 409 conflicts received from the K8s API server.", + "operationId": "stopRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 128, - "name": "asia-southeast2", - "provider": "GCP" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 75, - "name": "europe-west3", - "provider": "GCP" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 36, - "name": "europe-west4", - "provider": "GCP" + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Reset Pipeline", + "description": "Resets a pipeline, retrying on 409 conflicts received from the K8s API server.", + "operationId": "resetRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 133, - "name": "europe-west10", - "provider": "GCP" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 130, - "name": "europe-southwest1", - "provider": "GCP" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 134, - "name": "europe-west8", - "provider": "GCP" - }, - { - "id": 113, - "name": "europe-west6", - "provider": "GCP" - }, - { - "id": 129, - "name": "me-west1", - "provider": "GCP" - }, - { - "id": 135, - "name": "europe-west9", - "provider": "GCP" - }, - { - "id": 77, - "name": "northamerica-northeast1", - "provider": "GCP" - }, - { - "id": 136, - "name": "europe-west12", - "provider": "GCP" - }, - { - "id": 137, - "name": "europe-central2", - "provider": "GCP" - }, - { - "id": 131, - "name": "northamerica-northeast2", - "provider": "GCP" - }, - { - "id": 138, - "name": "me-central2", - "provider": "GCP" - }, - { - "id": 139, - "name": "me-central1", - "provider": "GCP" - }, - { - "id": 140, - "name": "us-east5", - "provider": "GCP" - }, - { - "id": 141, - "name": "us-south1", - "provider": "GCP" - }, - { - "id": 27, - "name": "us-central1", - "provider": "GCP" - }, - { - "id": 38, - "name": "us-east1", - "provider": "GCP" + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get Metric Collections", + "description": "Gets all metric collections for a pipeline.", + "operationId": "listRdiV2MetricCollections", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" + }, + "title": "Response Get Metric Collections Api V2 Pipelines Name Metric Collections Get" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 39, - "name": "us-east4", - "provider": "GCP" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 40, - "name": "us-west1", - "provider": "GCP" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 82, - "name": "us-west2", - "provider": "GCP" + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "collection_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Metric collection name", + "title": "Collection Name" + }, + "description": "Metric collection name" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get Metric Collection", + "description": "Gets a metric collection for a pipeline.", + "operationId": "getRdiV2MetricCollection", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 142, - "name": "southamerica-west1", - "provider": "GCP" + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 95, - "name": "southamerica-east1", - "provider": "GCP" + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } }, - { - "id": 143, - "name": "africa-south1", - "provider": "GCP" - } - ] + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" } - }, - "FixedSubscriptionsPlans": { - "type": "object", - "properties": { - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "description": "Redis list of Essentials subscriptions plans", - "example": { - "plans": [ - { - "id": 98183, - "name": "Multi-AZ 5GB", - "size": 5, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-east-1", - "regionId": 1, - "price": 100, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "Multi-zone", - "connections": "unlimited", - "cidrAllowRules": 16, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "supportSsl": true, - "supportedAlerts": [ - "datasets-size", - "latency", - "throughput-lower-than", - "throughput-higher-than" - ], - "customerSupport": "Standard", - "links": [] - }, - { - "id": 98181, - "name": "Multi-AZ 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-east-1", - "regionId": 1, - "price": 22, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "Multi-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "supportSsl": true, - "supportedAlerts": [ - "datasets-size", - "throughput-higher-than", - "throughput-lower-than", - "latency", - "connections-limit" - ], - "customerSupport": "Standard", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/plans?cloud_provider=AWS", - "type": "GET" - } - ] - } - }, - "ActiveActiveVpcPeeringUpdateAwsRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "vpcPeeringId": { - "type": "integer", - "description": "VPC Peering id to update.", - "format": "int32", - "readOnly": true - }, - "vpcCidr": { + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" + "description": "Pipeline name", + "title": "Name" }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.22.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]" + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get Pipeline Secrets", + "description": "Lists all pipeline secrets.", + "operationId": "listRdiV2PipelineSecrets", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + }, + "title": "Response Get Pipeline Secrets Api V2 Pipelines Name Secrets Get" + } + } } }, - "commandType": { - "type": "string", - "readOnly": true + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" } }, - "description": "Active-Active VPC peering update request message" + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } }, - "DatabaseTrafficStateResponse": { - "type": "object", - "properties": { - "bdbId": { - "type": "integer", - "format": "int32" - }, - "trafficStatus": { - "type": "string" + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Create Secret", + "description": "Creates a new pipeline secret.", + "operationId": "createRdiV2PipelineSecret", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretCreateRequest", + "description": "Pipeline secret details" + } + } + } + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + } + } + } }, - "canResume": { - "type": "boolean" + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "resumeInProgress": { - "type": "boolean" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "stopReason": { - "type": "string" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" }, - "resumeEligibleAt": { - "type": "string", - "format": "date-time" + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Conflict" } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" } - }, - "DataPersistenceEntry": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" } }, - "description": "RedisLabs data persistence information" - }, - "CloudAccounts": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } + "description": "Pipeline name" }, - "description": "RedisLabs Cloud Accounts information", - "example": { - "accountId": 40131, - "cloudAccounts": [ - { - "id": 1, - "name": "Redis Internal Resources", - "provider": "AWS", - "status": "active", - "links": [] - }, - { - "id": 2, - "name": "CAPI User ", - "provider": "AWS", - "status": "active", - "accessKeyId": "A***A", - "links": [] - }, - { - "id": 3, - "name": "API Cloud account", - "provider": "AWS", - "status": "active", - "accessKeyId": "A***4", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts", - "type": "GET" - } - ] + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline secret key", + "title": "Key" + }, + "description": "Pipeline secret key" } - }, - "PrivateLinkActiveActivePrincipalsCreateRequest": { - "required": [ - "principal", - "regionId" + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true - }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" + "summary": "Get Secret", + "description": "Gets a pipeline secret by key.", + "operationId": "getRdiV2PipelineSecret", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + } + } + } }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "commandType": { - "type": "string", - "readOnly": true + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" } }, - "description": "Request to add a principal to private link for Active-Active subscription" + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } }, - "PrivateLinkActiveActiveConnectionsDisassociateRequest": { - "required": [ - "connections" + "put": { + "tags": [ + "Subscriptions - Pro - Data Integration" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true - }, - "connections": { - "type": "array", - "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", - "items": { - "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" + "summary": "Update Secret", + "description": "Updates a pipeline secret, or creates it if it does not exist.", + "operationId": "replaceRdiV2PipelineSecret", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretUpdateRequest", + "description": "Pipeline secret details" + } } - }, - "commandType": { - "type": "string", - "readOnly": true } }, - "description": "Request to disassociate connections from private link for Active-Active subscription" - }, - "VpcPeeringUpdateAwsRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + } + } + } }, - "vpcPeeringId": { - "type": "integer", - "description": "VPC Peering ID to update.", - "format": "int32", - "readOnly": true + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "vpcCidr": { - "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" - } + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" }, - "commandType": { - "type": "string", - "readOnly": true + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" } }, - "description": "VPC peering update request message" + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } }, - "FixedSubscriptions": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Delete Secret", + "description": "Deletes a pipeline secret by key.", + "operationId": "deleteRdiV2PipelineSecret", + "responses": { + "204": { + "description": "Successful Response" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } } - } - } - }, - "description": "Redis list of Essentials subscriptions in current account", - "example": { - "accountId": 40131, - "subscriptions": [ - { - "id": 151367, - "name": "fixed-1", - "status": "active", - "paymentMethodId": 8241, - "paymentMethodType": "credit-card", - "planId": 98276, - "planName": "Standard 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-west-1", - "price": 22, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "Single-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "customerSupport": "Standard", - "creationDate": "2022-11-21T20:02:21+02:00", - "links": [] }, - { - "id": 120416, - "name": "subscription-name", - "status": "active", - "paymentMethodId": 123, - "paymentMethodType": "credit-card", - "planId": 123, - "planName": "Standard 30MB", - "planType": "pay-as-you-go", - "size": 30, - "sizeMeasurementUnit": "MB", - "provider": "AWS", - "region": "us-east-1", - "price": 0, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "no-replication", - "connections": 30, - "cidrAllowRules": 1, - "supportDataPersistence": false, - "supportInstantAndDailyBackups": false, - "supportReplication": false, - "supportClustering": false, - "customerSupport": "basic", - "creationDate": "20-Nov-2022", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions", - "type": "GET" - } - ] - } - }, - "DatabaseSyncSourceSpec": { - "required": [ - "endpoint" - ], - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "description": "Redis URI of a source database. Example format: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: 'redis://endpoint1:6379'." + "description": "Unauthorized" }, - "encryption": { - "type": "boolean", - "description": "Defines if encryption should be used to connect to the sync source. If not set the source is a Redis Cloud database, it will automatically detect if the source uses encryption." + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "serverCert": { - "type": "string", - "description": "TLS/SSL certificate chain of the sync source. If not set and the source is a Redis Cloud database, it will automatically detect the certificate to use." + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" } }, - "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details." - }, - "MaintenanceWindow": { - "type": "object", - "properties": { - "days": { - "type": "array", - "items": { - "type": "string" - } - }, - "startHour": { - "type": "integer", - "format": "int32" - }, - "durationInHours": { + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32" + "format": "int64" } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "source_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline source name", + "title": "Source Name" + }, + "description": "Pipeline source name" } - }, - "Module": { - "type": "object", - "properties": { - "name": { - "type": "string" + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get Pipeline Source Schemas", + "description": "Lists source schemas/databases, tables, and columns for a pipeline source.", + "operationId": "getRdiV2SourceSchema", + "parameters": [ + { + "name": "schemas", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Comma-separated list of schema/database names to filter on", + "title": "Schemas" + }, + "description": "Comma-separated list of schema/database names to filter on" }, - "capabilityName": { - "type": "string" + { + "name": "tables", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Comma-separated list of table names to filter on", + "title": "Tables" + }, + "description": "Comma-separated list of table names to filter on" }, - "description": { - "type": "string" + { + "name": "details", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/RdiCoreSourceSchemaDetails", + "description": "The level of detail to return: schemas, tables, or columns", + "default": "schemas" + }, + "description": "The level of detail to return: schemas, tables, or columns" } - }, - "description": "RedisLabs database module information" - }, - "AclRedisRuleUpdateRequest": { - "required": [ - "name", - "redisRule" ], - "type": "object", - "properties": { - "redisRuleId": { - "type": "integer", - "format": "int32", - "readOnly": true + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSourceSchemaResponse" + } + } + } }, - "name": { - "type": "string", - "description": "Optional. Changes the Redis ACL rule name.", - "example": "ACL-rule-example" + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "redisRule": { - "type": "string", - "description": "Optional. Changes the Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", - "example": "+set allkeys allchannels" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "ACL redis rule update request" - }, - "ActiveActiveRegionToDelete": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Name of the cloud provider region to delete." + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" } }, - "description": "The names of the regions to delete." - }, - "MaintenanceWindowSkipStatus": { - "type": "object", - "properties": { - "remainingSkips": { - "type": "integer", - "format": "int32" - }, - "currentSkipEnd": { - "type": "string" - } - } - }, - "DatabaseAvailableVersionsResponse": { - "type": "object", - "properties": { - "targets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TargetVersion" - } - } + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" } - }, - "CloudAccount": { - "type": "object", - "properties": { - "id": { + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32" + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" }, - "name": { - "type": "string" + "description": "Pipeline name" + }, + { + "name": "target_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Target name", + "title": "Target Name" }, - "status": { - "type": "string" + "description": "Target name" + } + ], + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Flush Target", + "description": "Flushes the target Redis database.\n\nSends a FLUSHALL command to the target Redis database through the collector API.", + "operationId": "flushRdiV2Target", + "responses": { + "200": { + "description": "FLUSHALL completed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreFlushResponse" + } + } + } }, - "accessKeyId": { - "type": "string" + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "signInLoginUrl": { - "type": "string" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "awsUserArn": { - "type": "string" + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Bad Request" }, - "awsConsoleRoleArn": { - "type": "string" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } } - } + }, + "description": "Bad Gateway" }, - "provider": { - "type": "string", - "enum": [ - "AWS", - "GCP" - ] + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Service Unavailable" } }, - "description": "RedisLabs Cloud Account information", - "example": { - "id": 1, - "name": "Redis Internal Resources", - "provider": "AWS", - "status": "active", - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts/1", - "type": "GET" - } - ] + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" } - }, - "PrivateLinkPrincipalsCreateRequest": { - "required": [ - "principal" - ], - "type": "object", - "properties": { - "subscriptionId": { + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32", - "readOnly": true - }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" - }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] - }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" - }, - "commandType": { - "type": "string", - "readOnly": true + "format": "int64" } }, - "description": "Private Link principals create request" - }, - "FixedSubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string", - "description": "Optional. Updated subscription name.", - "example": "My new subscription" + "description": "Pipeline name", + "title": "Name" }, - "planId": { - "type": "integer", - "description": "Optional. An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans/subscriptions/{subscriptionId} to get a list of compatible options for the specified subscription.", - "format": "int32" + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get all DLQ streams with counts", + "description": "Returns all tables that have DLQ records with their total counts. Table names are returned in the format: source_name.schema_name.table_name (for PostgreSQL, Oracle, SQL Server, Spanner) or source_name.database_name.table_name (for MySQL, MariaDB, MongoDB).", + "operationId": "listRdiV2Dlqs", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreDlqListResponse" + } + } + } }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", - "enum": [ - "credit-card", - "marketplace" - ] + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get a list of payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", - "format": "int32" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials subscription update request" - }, - "SearchScalingFactorsData": { - "type": "object", - "properties": { - "queryPerformanceFactors": { - "type": "array", - "items": { - "type": "string" - } + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } } - } + }, + "description": "Internal Server Error" } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" } - }, - "SubscriptionUpdateCMKRequest": { - "required": [ - "customerManagedKeys" - ], - "type": "object", - "properties": { - "subscriptionId": { + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32", - "readOnly": true - }, - "commandType": { - "type": "string", - "readOnly": true - }, - "deletionGracePeriod": { - "type": "string", - "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", - "example": "alerts-only", - "enum": [ - "alerts-only", - "immediate", - "15-minutes", - "30-minutes", - "1-hour", - "4-hours", - "8-hours", - "12-hours", - "24-hours" - ] - }, - "customerManagedKeys": { - "type": "array", - "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", - "items": { - "$ref": "#/components/schemas/CustomerManagedKey" - } + "format": "int64" } }, - "description": "Subscription update request message" - }, - "CostReportCreateRequest": { - "required": [ - "endDate", - "startDate" - ], - "type": "object", - "properties": { - "startDate": { - "type": "string", - "description": "Filter for usage starting on or after this date. Must be in format YYYY-MM-DD", - "format": "YYYY-MM-DD", - "example": "2025-10-01" - }, - "endDate": { + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string", - "description": "Filter for usage ending on or before this date. Must be in format YYYY-MM-DD and must be after start date", - "format": "YYYY-MM-DD", - "example": "2025-11-06" + "description": "Pipeline name", + "title": "Name" }, - "format": { + "description": "Pipeline name" + }, + { + "name": "full_table_name", + "in": "path", + "required": true, + "schema": { "type": "string", - "description": "Output format for the cost report", - "example": "csv", - "default": "csv", - "enum": [ - "json", - "csv" - ] - }, - "subscriptionIds": { - "type": "array", - "description": "Array of subscriptionIDs to filter by", - "example": [ - 123, - 456 - ], - "items": { - "type": "integer", - "description": "Array of subscriptionIDs to filter by", - "format": "int32" - } + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", + "title": "Full Table Name" }, - "databaseIds": { - "type": "array", - "description": "Array of database IDs to filter by", - "example": [ - 789, - 101112 - ], - "items": { - "type": "integer", - "description": "Array of database IDs to filter by", - "format": "int32" + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get DLQ info for a specific stream", + "description": "Returns the DLQ count for a specific stream. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", + "operationId": "getRdiV2Dlq", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreDlqTableResponse" + } + } } }, - "subscriptionType": { - "type": "string", - "description": "Filter by plan type", - "example": "pro", - "enum": [ - "pro", - "essentials" - ] + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "regions": { - "type": "array", - "description": "Array of regions to filter by", - "example": [ - "us-east-1", - "eu-west-1" - ], - "items": { - "type": "string", - "description": "Array of regions to filter by", - "example": "[\"us-east-1\",\"eu-west-1\"]" - } + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "tags": { - "type": "array", - "description": "Array of key-value pairs for tag filtering", - "items": { - "$ref": "#/components/schemas/Tag" - } + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" }, - "commandType": { - "type": "string", - "readOnly": true + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Internal Server Error" } }, - "description": "Cost report generation request" - }, - "AccountSubscriptionDatabases": { - "type": "object", - "properties": { - "accountId": { + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}/records": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } + "format": "int64" } }, - "description": "RedisLabs Account Subscription Databases information", - "example": { - "accountId": 1001, - "subscription": [ - { - "subscriptionId": 1206, - "numberOfDatabases": 6, - "databases": [ - { - "databaseId": 1, - "name": "DB-RCP-2-81-7", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "respVersion": "resp2", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 - }, - "activatedOn": "2021-08-29T13:03:08Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, - { - "databaseId": 2, - "name": "DB-RCP-2-81-5", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 2, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:27Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 6652, - "name": "RediSearch", - "capabilityName": "Search and query", - "version": "2.0.11", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "full_table_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", + "title": "Full Table Name" + }, + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" + } + ], + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get DLQ records for a specific stream", + "description": "Returns the DLQ records for a specific table with pagination. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", + "operationId": "listRdiV2DlqRecords", + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "maximum": 1000, + "minimum": 1, + "description": "Number of records to return", + "default": 20, + "title": "Limit" + }, + "description": "Number of records to return" + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "description": "Starting position for pagination", + "default": 0, + "title": "Offset" + }, + "description": "Starting position for pagination" + }, + { + "name": "sort_order", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/RdiCoreSortOrder", + "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)", + "default": "desc" + }, + "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)" + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "anyOf": [ { - "databaseId": 3, - "name": "Redis-database-example-updated", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 2, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 - }, - "activatedOn": "2021-08-29T13:03:26Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": false, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], - "links": [] + "type": "string" }, { - "databaseId": 4, - "name": "DB-RCP-2-81-6", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 2, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:27Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 6653, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.4.10", - "description": "Time-Series data structure for redis", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, - { - "databaseId": 5, - "name": "CI-tests-DO-NOT-DELETE", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": false, - "useExternalEndpointForOSSClusterApi": false, - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "volatile-lru", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:22Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [], - "alerts": [], - "links": [] - }, - { - "databaseId": 6, - "name": "DB-RCP-2-81-4", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 1, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:27Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 6651, - "name": "RediSearch", - "capabilityName": "Search and query", - "version": "2.0.11", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - } - ], - "alerts": [], - "links": [] + "type": "null" } ], - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases?offset=0&limit=100", - "type": "GET" + "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp", + "title": "Fields" + }, + "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreDlqRecordsResponse" + } + } } - ] - } - }, - "AccountSystemLogEntry": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "originator": { - "type": "string" }, - "apiKeyName": { - "type": "string" + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" }, - "resource": { - "type": "string" + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" }, - "resourceId": { - "type": "integer", - "format": "int32" + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Bad Request" }, - "type": { - "type": "string" + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" }, - "description": { - "type": "string" - } - }, - "description": "Account system log entry" - }, - "CloudTag": { + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Internal Server Error" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + } + }, + "components": { + "schemas": { + "TargetVersion": { "type": "object", "properties": { - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "key": { + "redisVersion": { "type": "string" + } + } + }, + "AclUserCreateRequest": { + "required": [ + "name", + "password", + "role" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Access control user name.", + "example": "ACL-user-example" }, - "value": { - "type": "string" + "role": { + "type": "string", + "description": "Name of the database access role to assign to this user. Use GET '/acl/roles' to get a list of database access roles.", + "example": "ACL-role-example" }, - "createdAt": { - "type": "string" + "password": { + "type": "string", + "description": "The database password for this user.", + "example": "ab123AB$%^" }, - "updatedAt": { - "type": "string" + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "Database tag", - "example": { - "key": "environment", - "value": "production", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [ - { - "rel": "self", - "type": "GET", - "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags" - } - ] - } + "description": "ACL user create request" }, - "AccountACLRedisRules": { + "AccountUserUpdateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The account user's name.", + "example": "My new user name" + }, + "role": { + "type": "string", + "description": "Changes the account user's role. See [Team management roles](https://redis.io/docs/latest/operate/rc/security/access-control/access-management/#team-management-roles) to learn about available account roles.", + "enum": [ + "Owner", + "Member", + "Viewer", + "Logs Viewer (API use only)", + "Manager", + "Billing Admin" + ] + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "User update request" + }, + "PaymentMethods": { "type": "object", "properties": { "accountId": { @@ -16116,235 +21141,76 @@ } } }, - "description": "Redis list of ACL redis rules in current account", + "description": "RedisLabs Account payment methods", "example": { "accountId": 1001, - "redisRules": [ - { - "id": 7, - "name": "Full-Access", - "acl": "+@all ~*", - "isDefault": true, - "status": "active" - }, - { - "id": 8, - "name": "Read-Write", - "acl": "+@all -@dangerous ~*", - "isDefault": true, - "status": "active" - }, + "paymentMethods": [ { - "id": 9, - "name": "Read-Only", - "acl": "+@read ~*", - "isDefault": true, - "status": "active" + "id": 2, + "type": "Visa", + "creditCardEndsWith": "9349", + "nameOnCard": "CAPI User", + "expirationMonth": 2, + "expirationYear": 2026, + "links": [] } ] } }, - "FixedSubscription": { + "AclRoleDatabaseSpec": { + "required": [ + "databaseId", + "subscriptionId" + ], "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "paymentMethodId": { - "type": "integer", - "format": "int32" - }, - "paymentMethodType": { - "type": "string" - }, - "planId": { - "type": "integer", - "format": "int32" - }, - "planName": { - "type": "string" - }, - "planType": { - "type": "string" - }, - "size": { - "type": "number", - "format": "double" - }, - "sizeMeasurementUnit": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "region": { - "type": "string" - }, - "price": { - "type": "integer", - "format": "int32" - }, - "pricePeriod": { - "type": "string" - }, - "priceCurrency": { - "type": "string" - }, - "maximumDatabases": { + "subscriptionId": { "type": "integer", + "description": "Subscription ID for the database's subscription. Use 'GET /subscriptions' or 'GET /fixed/subscriptions' to get a list of available subscriptions and their IDs.", "format": "int32" }, - "availability": { - "type": "string" - }, - "connections": { - "type": "string" - }, - "cidrAllowRules": { + "databaseId": { "type": "integer", + "description": "The database's ID. Use 'GET /subscriptions/{subscriptionId}/databases' or 'GET /fixed/subscriptions/{subscriptionId}/databases' to get a list of databases in a subscription and their IDs.", "format": "int32" }, - "supportDataPersistence": { - "type": "boolean" - }, - "supportInstantAndDailyBackups": { - "type": "boolean" - }, - "supportReplication": { - "type": "boolean" - }, - "supportClustering": { - "type": "boolean" - }, - "customerSupport": { - "type": "string" - }, - "creationDate": { - "type": "string", - "format": "date-time" - }, - "links": { + "regions": { "type": "array", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", + "example": [], "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "string", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", + "example": "[]" } - }, - "databaseStatus": { - "type": "string" } }, - "description": "Redis Essentials Subscription information", - "example": { - "id": 151367, - "name": "fixed-sub-2", - "status": "active", - "paymentMethodId": 8241, - "paymentMethodType": "credit-card", - "planId": 98276, - "planName": "Standard 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-west-1", - "price": 22, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "Single-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "customerSupport": "Standard", - "creationDate": "2022-11-21T20:02:21+02:00", - "supportClustering": false, - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions/151367", - "type": "GET" - } - ] - } - }, - "DatabaseCertificateSpec": { - "required": [ - "publicCertificatePEMString" - ], - "type": "object", - "properties": { - "publicCertificatePEMString": { - "type": "string", - "description": "Client certificate public key in PEM format, with new line characters replaced with '\\n'." - } - }, - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'." + "description": "A list of databases where the specified rule applies for this role." }, - "AclRoleUpdateRequest": { + "ActiveActiveTgwUpdateCidrsRequest": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Optional. Changes the database access role name.", - "example": "ACL-role-example" - }, - "redisRules": { + "cidrs": { "type": "array", - "description": "Optional. Changes the Redis ACL rules to assign to this database access role.", + "description": "Optional. List of transit gateway attachment CIDRs.", + "example": [ + "10.10.10.0/24", + "10.10.20.0/24" + ], "items": { - "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + "$ref": "#/components/schemas/Cidr" } }, - "roleId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, "commandType": { "type": "string", "readOnly": true } }, - "description": "ACL role update request" - }, - "AccountUserOptions": { - "type": "object", - "properties": { - "billing": { - "type": "boolean" - }, - "emailAlerts": { - "type": "boolean" - }, - "operationalEmails": { - "type": "boolean" - }, - "mfaEnabled": { - "type": "boolean" - } - }, - "description": "RedisLabs User options information" + "description": "Active active Transit Gateway update attachment cidr/s request message" }, - "AccountSystemLogEntries": { + "RootAccount": { "type": "object", "properties": { - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AccountSystemLogEntry" - } - }, "links": { "type": "array", "items": { @@ -16356,242 +21222,302 @@ } }, "example": { - "entries": [ - { - "id": 2900349, - "time": "2022-10-12T10:54:31Z", - "originator": "example-value", - "type": "Account", - "description": "example-value (example.value@redis.com)'s user name was changed to Example Value" - }, - { - "id": 2900348, - "time": "2022-10-12T10:54:11Z", - "originator": "invalid-name", - "type": "Account", - "description": "Invited invalid-name (cab@fufu.com) to join team" + "account": { + "id": 1001, + "name": "Redis", + "createdTimestamp": "2018-12-23T15:15:31Z", + "updatedTimestamp": "2022-10-12T10:54:10Z", + "pocStatus": "inactive", + "marketplaceStatus": "active", + "key": { + "name": "capi-api-key-name", + "accountId": 1001, + "accountName": "Redis", + "allowedSourceIps": [ + "0.0.0.0/0" + ], + "createdTimestamp": "2022-05-11T12:05:47Z", + "owner": { + "name": "CAPI user", + "email": "capi.user@redis.com" + }, + "userAccountId": 1, + "httpSourceIp": "79.0.0.173" } - ] + } } }, - "TgwUpdateCidrsRequest": { + "PrivateLinkActiveActiveCreateRequest": { + "required": [ + "principal", + "regionId", + "shareName", + "type" + ], "type": "object", "properties": { - "cidrs": { - "type": "array", - "description": "Optional. List of transit gateway attachment CIDRs.", - "example": [ - "10.10.10.0/24", - "10.10.20.0/24" - ], - "items": { - "$ref": "#/components/schemas/Cidr" - } + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, + "shareName": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "Name for the resource share", + "example": "my-private-link-share" + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Transit Gateway update attachment cidr/s request message" + "description": "Request to create a private link for Active-Active subscription" }, - "AccountSessionLogEntry": { + "ActiveActiveVpcPeeringCreateAwsRequest": { + "required": [ + "awsAccountId", + "destinationRegion", + "sourceRegion", + "vpcId" + ], "type": "object", "properties": { - "id": { + "provider": { "type": "string" }, - "time": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceRegion": { "type": "string", - "format": "date-time" + "description": "Name of region to create a VPC peering from." }, - "user": { - "type": "string" + "destinationRegion": { + "type": "string", + "description": "Name of region to create a VPC peering to.", + "example": "us-east-1" }, - "userAgent": { - "type": "string" + "awsAccountId": { + "type": "string", + "description": "AWS Account ID.", + "example": "" }, - "ipAddress": { - "type": "string" + "vpcId": { + "type": "string", + "description": "VPC ID.", + "example": "" }, - "userRole": { - "type": "string" + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" }, - "type": { - "type": "string" + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" + } }, - "action": { - "type": "string" + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "Account session log entry" + "description": "VPC peering creation request message" }, - "AccountUser": { + "SubscriptionUpdateRequest": { "type": "object", "properties": { - "id": { + "subscriptionId": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, "name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "role": { - "type": "string" + "type": "string", + "description": "Optional. Updated subscription name.", + "example": "My new subscription name" }, - "signUp": { - "type": "string" + "paymentMethodId": { + "type": "integer", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", + "format": "int32" }, - "userType": { - "type": "string" + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", + "enum": [ + "credit-card", + "marketplace" + ] }, - "hasApiKey": { - "type": "boolean" + "publicEndpointAccess": { + "type": "boolean", + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint." }, - "options": { - "$ref": "#/components/schemas/AccountUserOptions" + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "RedisLabs User information", - "example": { - "id": 60192, - "name": "Clifford O'neill", - "email": "clifford.mail@gmail.com", - "role": "Viewer", - "userType": "Local", - "hasApiKey": false, - "options": { - "billing": false, - "emailAlerts": false, - "operationalEmails": false, - "mfaEnabled": false - } - } + "description": "Subscription update request message" }, - "ResourceTag": { + "DatabaseTagUpdateRequest": { + "required": [ + "value" + ], "type": "object", "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, "key": { - "type": "string" + "type": "string", + "readOnly": true }, "value": { - "type": "string" + "type": "string", + "description": "Database tag value" + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "List of resource tags to apply to the subscription. This will replace all existing tags." + "description": "Database tag update request message" }, - "CustomerManagedKeyAccessDetails": { + "ActiveActivePscEndpointCreateRequest": { + "required": [ + "endpointConnectionName", + "gcpProjectId", + "gcpVpcName", + "gcpVpcSubnetName", + "pscServiceId", + "regionId", + "subscriptionId" + ], "type": "object", "properties": { - "redisServiceAccount": { - "type": "string" + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "googlePredefinedRoles": { - "type": "array", - "items": { - "type": "string" - } + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "googleCustomPermissions": { - "type": "array", - "items": { - "type": "string" - } + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 }, - "redisIamRole": { - "type": "string" + "gcpProjectId": { + "type": "string", + "description": "Google Cloud project ID.", + "example": "my-gcp-project" }, - "requiredKeyPolicyStatements": { - "type": "object" + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" }, - "deletionGracePeriodOptions": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "description": "Configuration regarding customer managed persistent storage encryption" - }, - "SubscriptionMaintenanceWindowsSpec": { - "required": [ - "mode" - ], - "type": "object", - "properties": { - "mode": { + "gcpVpcSubnetName": { "type": "string", - "description": "Maintenance window mode: either 'manual' or 'automatic'. Must provide 'windows' if manual.", - "example": "manual", - "enum": [ - "manual", - "automatic" - ] + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" }, - "windows": { - "type": "array", - "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided.", - "items": { - "$ref": "#/components/schemas/MaintenanceWindowSpec" - } + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" + }, + "commandType": { + "type": "string", + "readOnly": true } - } + }, + "description": "Private Service Connect endpoint create request" }, - "ACLUser": { + "TaskStateUpdate": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" + "taskId": { + "type": "string", + "format": "uuid" }, - "role": { + "commandType": { "type": "string" }, "status": { + "type": "string", + "enum": [ + "initialized", + "received", + "processing-in-progress", + "processing-completed", + "processing-error" + ] + }, + "description": { "type": "string" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis ACL user information", - "example": { - "id": 1, - "name": "abc", - "role": "role-name", - "status": "active" - } - }, - "DatabaseCertificate": { - "type": "object", - "properties": { - "publicCertificatePEMString": { + "timestamp": { "type": "string", - "description": "An X.509 PEM (base64) encoded server certificate with new line characters replaced by '\\n'." - } - }, - "description": "Database certificate" - }, - "AccountSessionLogEntries": { - "type": "object", - "properties": { - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AccountSessionLogEntry" - } + "format": "date-time" + }, + "response": { + "$ref": "#/components/schemas/ProcessorResponse" }, "links": { "type": "array", @@ -16604,30 +21530,10 @@ } } }, - "Tag": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Tag key", - "example": "environment" - }, - "value": { - "type": "string", - "description": "Tag value", - "example": "production" - } - }, - "description": "Tag filter for cost report" - }, - "AccountSubscriptions": { + "Database": { "type": "object", "properties": { - "accountId": { + "databaseId": { "type": "integer", "format": "int32" }, @@ -16641,148 +21547,115 @@ } } }, - "description": "RedisLabs list of subscriptions in current account", "example": { - "accountId": 1001, - "subscriptions": [ + "databaseId": 1, + "name": "DB-RCP-2-81-7", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "respVersion": "resp3", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 + }, + "activatedOn": "2021-08-29T13:03:08Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "password": "redis123456redis", + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ { - "id": 1206, - "name": "subscription name", - "status": "active", - "deploymentType": "single-region", - "paymentMethodId": 123, - "publicEndpointAccess": true, - "memoryStorage": "ram", - "numberOfDatabases": 6, - "paymentMethodType": "credit-card", - "storageEncryption": false, - "subscriptionPricing": [ - { - "type": "Shards", - "typeDetails": "high-throughput", - "quantity": 7, - "quantityMeasurement": "shards", - "pricePerUnit": 0.124, - "priceCurrency": "USD", - "pricePeriod": "hour" - } - ], - "cloudDetails": [ - { - "provider": "AWS", - "awsAccountId": "550680565604", - "cloudAccountId": 1666, - "totalSizeInGb": 0.0272, - "regions": [ - { - "region": "us-east-1", - "networking": [ - { - "deploymentCIDR": "10.0.0.0/24", - "subnetId": "subnet-009ce004ed90da8a6" - } - ], - "preferredAvailabilityZones": [ - "us-east-1a" - ], - "multipleAvailabilityZones": false - } - ], - "links": [] - } - ], - "links": [] + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases/51170941", + "type": "GET" } ] } }, - "CrdbRegionSpec": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Database name." - }, - "localThroughputMeasurement": { - "$ref": "#/components/schemas/LocalThroughput" - } - }, - "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database" - }, - "VpcPeeringCreateAwsRequest": { + "SubscriptionDatabaseSpec": { "required": [ - "awsAccountId", - "region", - "vpcId" + "name", + "protocol" ], "type": "object", "properties": { - "provider": { - "type": "string" - }, - "region": { - "type": "string", - "description": "Deployment region as defined by the cloud provider.", - "example": "us-east-1" - }, - "awsAccountId": { - "type": "string", - "description": "AWS Account ID.", - "example": "" - }, - "vpcId": { - "type": "string", - "description": "VPC ID.", - "example": "" - }, - "vpcCidr": { + "name": { "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" - }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" - } + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-database-example" }, - "commandType": { + "protocol": { "type": "string", - "readOnly": true - } - }, - "description": "VPC peering creation request message" - }, - "FixedDatabaseUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", + "enum": [ + "redis", + "memcached" + ] }, - "databaseId": { + "port": { "type": "integer", + "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated database name.", - "example": "Redis-Essentials-database-example" + "example": 10000 }, "memoryLimitInGb": { "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", "format": "double", "example": 1, "deprecated": true @@ -16791,43 +21664,18 @@ "minimum": 0.1, "exclusiveMinimum": false, "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", "format": "double", "example": 1 }, "supportOSSClusterApi": { "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", - "example": true - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", - "example": true - }, - "enableDatabaseClustering": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances.", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", "example": false }, - "numberOfShards": { - "type": "integer", - "description": "(Pay-as-you-go subscriptions only) Optional. Changes the number of master shards.", - "format": "int32", - "example": 2 - }, "dataPersistence": { "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", + "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", "enum": [ "none", "aof-every-1-second", @@ -16837,162 +21685,117 @@ "snapshot-every-12-hours" ] }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Turns database replication on or off.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, "replication": { "type": "boolean", - "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." + "description": "Optional. Databases replication. Default: 'true'" }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups. If set to an empty string, the backup path will be removed.", - "example": "s3://" + "throughputMeasurement": { + "$ref": "#/components/schemas/DatabaseThroughputSpec" }, - "sourceIps": { + "localThroughputMeasurement": { "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", + "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + "$ref": "#/components/schemas/LocalThroughput" } }, - "replicaOf": { + "modules": { "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", - "deprecated": true, + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." + "$ref": "#/components/schemas/DatabaseModuleSpec" } }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "regexRules": { - "type": "array", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", - "items": { - "type": "string", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." - } + "quantity": { + "type": "integer", + "description": "Optional. Number of databases that will be created with these settings. Default: 1", + "format": "int32", + "example": 1 }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "averageItemSizeInBytes": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", + "format": "int64", "deprecated": true }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", + "format": "int32", + "example": 20 }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] }, - "password": { + "redisVersion": { "type": "string", - "description": "Optional. Changes the password used to access the database with the 'default' user." + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", + "example": "7.2" }, - "enableDefaultUser": { + "autoMinorVersionUpgrade": { "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database." + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." }, - "alerts": { - "type": "array", - "description": "Optional. Changes Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } + "shardingType": { + "type": "string", + "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", + "enum": [ + "default-regex-rules", + "custom-regex-rules", + "redis-oss-hashing" + ] }, - "commandType": { + "queryPerformanceFactor": { "type": "string", - "readOnly": true + "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", + "example": "2x" } }, - "description": "Essentials database update request" + "description": "One or more database specification(s) to create in this subscription." }, - "CloudAccountCreateRequest": { - "required": [ - "accessKeyId", - "accessSecretKey", - "consolePassword", - "consoleUsername", - "name", - "signInLoginUrl" - ], + "Subscription": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Cloud account display name.", - "example": "My new Cloud Account" + "id": { + "type": "integer", + "format": "int32" }, - "provider": { - "type": "string", - "description": "Optional. Cloud provider. Default: 'AWS'", - "example": "AWS", - "enum": [ - "AWS", - "GCP" - ] + "name": { + "type": "string" }, - "accessKeyId": { - "type": "string", - "description": "Cloud provider access key.", - "example": "****" + "paymentMethodId": { + "type": "integer", + "format": "int32" }, - "accessSecretKey": { - "type": "string", - "description": "Cloud provider secret key.", - "example": "****" + "status": { + "type": "string" }, - "consoleUsername": { - "type": "string", - "description": "Cloud provider management console username.", - "example": "me@mycompany.com" + "publicEndpointAccess": { + "type": "boolean" }, - "consolePassword": { + "memoryStorage": { "type": "string", - "description": "Cloud provider management console password.", - "example": "****" + "enum": [ + "ram", + "ram-and-flash" + ] }, - "signInLoginUrl": { - "type": "string", - "description": "Cloud provider management console login URL.", - "example": "https://.signin.aws.amazon.com/console" + "numberOfDatabases": { + "type": "integer", + "format": "int32" }, - "commandType": { + "paymentMethodType": { "type": "string", - "readOnly": true - } - }, - "description": "Cloud Account definition" - }, - "ModulesData": { - "type": "object", - "properties": { - "modules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Module" - } + "enum": [ + "credit-card", + "marketplace" + ] }, "links": { "type": "array", @@ -17002,46 +21805,73 @@ "type": "string" } } + }, + "persistentStorageEncryptionType": { + "type": "string" + }, + "deletionGracePeriod": { + "type": "string" + }, + "customerManagedKeyAccessDetails": { + "$ref": "#/components/schemas/CustomerManagedKeyAccessDetails" } }, + "description": "RedisLabs Subscription information", "example": { - "modules": [ - { - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, + "id": 1206, + "name": "updated new name", + "status": "active", + "deploymentType": "single-region", + "paymentMethodId": 2, + "publicEndpointAccess": true, + "memoryStorage": "ram", + "numberOfDatabases": 6, + "paymentMethodType": "credit-card", + "storageEncryption": false, + "subscriptionPricing": [ { - "name": "RedisJSON", - "capabilityName": "JSON", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, + "type": "Shards", + "typeDetails": "high-throughput", + "quantity": 7, + "quantityMeasurement": "shards", + "pricePerUnit": 0.124, + "priceCurrency": "USD", + "pricePeriod": "hour" + } + ], + "cloudDetails": [ { - "name": "RediSearch", - "capabilityName": "Search and query", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [ + "provider": "AWS", + "cloudAccountId": 2, + "totalSizeInGb": 0.0272, + "regions": [ { - "name": "number-of-documents", - "description": "Expected number of documents the database module will be indexing", - "type": "integer", - "defaultValue": 1000000, - "required": false + "region": "us-east-1", + "networking": [ + { + "deploymentCIDR": "10.0.0.0/24", + "subnetId": "subnet-009ce004ed90da8a6" + } + ], + "preferredAvailabilityZones": [ + "us-east-1a" + ], + "multipleAvailabilityZones": false } - ] - }, + ], + "links": [] + } + ], + "links": [ { - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "description": "Time-Series data structure for redis", - "parameters": [] + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416", + "type": "GET" } ] } }, - "ActiveActiveRegionDeleteRequest": { + "CidrWhiteListUpdateRequest": { "type": "object", "properties": { "subscriptionId": { @@ -17049,407 +21879,474 @@ "format": "int32", "readOnly": true }, - "regions": { + "cidrIps": { "type": "array", - "description": "The names of the regions to delete.", + "description": "List of CIDR values. Example: ['10.1.1.0/32']", "items": { - "$ref": "#/components/schemas/ActiveActiveRegionToDelete" + "type": "string", + "description": "List of CIDR values. Example: ['10.1.1.0/32']" } }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, deleting any resources required by the plan. When 'true': creates a read-only deployment plan and does not delete or modify any resources. Default: 'false'", - "example": false + "securityGroupIds": { + "type": "array", + "description": "List of AWS Security group IDs.", + "items": { + "type": "string", + "description": "List of AWS Security group IDs." + } }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Active active region deletion request message" + "description": "Update Pro subscription" }, - "AccountACLUsers": { + "FixedDatabaseCreateRequest": { + "required": [ + "name" + ], "type": "object", "properties": { - "accountId": { + "subscriptionId": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, - "links": { + "name": { + "type": "string", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-Essentials-database-example" + }, + "protocol": { + "type": "string", + "description": "Optional. Database protocol. Use 'stack' to get all of Redis' advanced capabilities. Only use 'redis' for Pay-as-you-go or Redis Flex subscriptions. Default: 'stack' for most subscriptions, 'redis' for Redis Flex subscriptions.", + "enum": [ + "redis", + "memcached", + "stack" + ] + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", + "example": true + }, + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version. (available in 'GET /fixed/redis-versions')", + "example": "7.4" + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", + "example": true + }, + "enableDatabaseClustering": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances. Default: 'false'", + "example": false + }, + "numberOfShards": { + "type": "integer", + "description": "(Pay-as-you-go subscriptions only) Optional. Specifies the number of master shards.", + "format": "int32", + "example": 2 + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "replication": { + "type": "boolean", + "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." + }, + "periodicBackupPath": { + "type": "string", + "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups.", + "example": "s3://" + }, + "sourceIps": { "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'" } - } - }, - "description": "Redis list of ACL users in current account", - "example": { - "accountId": 1001, - "users": [ - { - "id": 1, - "name": "user", - "role": "role-name", - "status": "active", - "links": [] + }, + "regexRules": { + "type": "array", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and .", + "items": { + "type": "string", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and ." } - ] - } - }, - "AclRoleRedisRuleSpec": { - "required": [ - "databases", - "ruleName" - ], - "type": "object", - "properties": { - "ruleName": { + }, + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } + }, + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" + }, + "clientSslCertificate": { "type": "string", - "description": "The name of a Redis ACL rule to assign to the role. Use 'GET /acl/redisRules' to get a list of available rules for your account.", - "example": "Read-Only" + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", + "deprecated": true }, - "databases": { + "clientTlsCertificates": { "type": "array", - "description": "A list of databases where the specified rule applies for this role.", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", "items": { - "$ref": "#/components/schemas/AclRoleDatabaseSpec" + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" + }, + "password": { + "type": "string", + "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated." + }, + "alerts": { + "type": "array", + "description": "Optional. Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "modules": { + "type": "array", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Can only be set if 'protocol' is 'redis'. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", + "items": { + "$ref": "#/components/schemas/DatabaseModuleSpec" } + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "Optional. Changes the Redis ACL rules to assign to this database access role." + "description": "Essentials database definition" }, - "ActiveActiveSubscriptionRegions": { + "DatabaseUpdateRequest": { "type": "object", "properties": { "subscriptionId": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "List of active-active subscription regions", - "example": { - "subscriptionId": 126, - "regions": [ - { - "regionId": 1, - "region": "us-east-1", - "deploymentCidr": "10.0.0.0/24", - "vpcId": "vpc-0bf863584c46321e4", - "databases": [ - { - "databaseId": 862, - "databaseName": "Bdb", - "readOperationsPerSecond": 500, - "writeOperationsPerSecond": 500, - "respVersion": "resp3", - "links": [] - }, - { - "databaseId": 864, - "databaseName": "Bdb2", - "readOperationsPerSecond": 1000, - "writeOperationsPerSecond": 1000, - "respVersion": "resp3", - "links": [] - } - ], - "links": [] - }, - { - "regionId": 4, - "region": "eu-west-1", - "deploymentCidr": "10.0.1.0/24", - "vpcId": "vpc-0108fb753063ecf8b", - "databases": [ - { - "databaseId": 862, - "databaseName": "Bdb", - "readOperationsPerSecond": 500, - "writeOperationsPerSecond": 500, - "respVersion": "resp3", - "links": [] - }, - { - "databaseId": 864, - "databaseName": "Bdb2", - "readOperationsPerSecond": 1000, - "writeOperationsPerSecond": 1000, - "respVersion": "resp3", - "links": [] - } - ], - "links": [] + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", + "example": false + }, + "name": { + "type": "string", + "description": "Optional. Updated database name.", + "example": "Redis-database-example-updated" + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "throughputMeasurement": { + "$ref": "#/components/schemas/DatabaseThroughputSpec" + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "replication": { + "type": "boolean", + "description": "Optional. Turns database replication on or off." + }, + "regexRules": { + "type": "array", + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", + "items": { + "type": "string", + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/133876/regions", - "type": "GET" + }, + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." } - ] - } - }, - "AccountFixedSubscriptionDatabases": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" }, - "links": { + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", + "example": false + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", + "example": false + }, + "password": { + "type": "string", + "description": "Optional. Changes the password used to access the database with the 'default' user. Can only be set if 'protocol' is 'redis'.", + "example": "P@ssw0rd" + }, + "saslUsername": { + "type": "string", + "description": "Optional. Changes the Memcached (SASL) username to access the database. Can only be set if 'protocol' is 'memcached'.", + "example": "mc-HR7gb" + }, + "saslPassword": { + "type": "string", + "description": "Optional. Changes the Memcached (SASL) password to access the database. Can only be set if 'protocol' is 'memcached'.", + "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT" + }, + "sourceIp": { "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + } + }, + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "deprecated": true + }, + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." + }, + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. Can only be set if 'protocol' is 'redis'." + }, + "periodicBackupPath": { + "type": "string", + "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. If set to an empty string, the backup path will be removed.", + "example": "s3://", + "deprecated": true + }, + "remoteBackup": { + "$ref": "#/components/schemas/DatabaseBackupConfig" + }, + "alerts": { + "type": "array", + "description": "Optional. Changes Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50).", + "format": "int32", + "example": 20 + }, + "autoMinorVersionUpgrade": { + "type": "boolean", + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." + }, + "commandType": { + "type": "string", + "readOnly": true + }, + "queryPerformanceFactor": { + "type": "string", + "description": "Optional. Changes the query performance factor. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", + "example": "2x" } }, - "description": "RedisLabs Account Subscription Databases information", - "example": { - "accountId": 40131, - "subscription": { - "subscriptionId": 154714, - "numberOfDatabases": 2, - "databases": [ - { - "databaseId": 51324587, - "name": "bdb", - "protocol": "stack", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "draft", - "planMemoryLimit": 250, - "respVersion": "resp2", - "memoryLimitMeasurementUnit": "MB", - "memoryUsedInMb": 1, - "memoryStorage": "ram", - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "noeviction", - "clustering": { - "enabled": false, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "defaultUserEnabled": true, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18534, - "name": "searchlight", - "capabilityName": "Search and query", - "version": "2.2.6", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - }, - { - "id": 18535, - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "version": "2.2.12", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, - { - "id": 18537, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.6.8", - "description": "Time-Series data structure for Redis", - "parameters": [] - } - ], - "alerts": [ - { - "name": "connections-limit", - "value": 80, - "defaultValue": 80 - } - ], - "backup": { - "remoteBackupEnabled": false - }, - "links": [] - }, - { - "databaseId": 51324586, - "name": "firstDB", - "protocol": "stack", - "provider": "AWS", - "region": "us-east-1", - "status": "draft", - "planMemoryLimit": 250, - "memoryLimitMeasurementUnit": "MB", - "memoryUsedInMb": 1, - "memoryStorage": "ram", - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "noeviction", - "clustering": { - "enabled": false, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "defaultUserEnabled": true, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18529, - "name": "searchlight", - "capabilityName": "Search and query", - "version": "2.2.6", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - }, - { - "id": 18530, - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "version": "2.2.12", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, - { - "id": 18531, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, - { - "id": 18532, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.6.8", - "description": "Time-Series data structure for Redis", - "parameters": [] - } - ], - "alerts": [ - { - "name": "connections-limit", - "value": 80, - "defaultValue": 80 - } - ], - "backup": { - "remoteBackupEnabled": false - }, - "links": [] - } - ], - "links": [] - }, - "links": [] - } + "description": "Database update request" }, - "DatabaseAlertSpec": { - "required": [ - "name", - "value" - ], + "LocalRegionProperties": { "type": "object", "properties": { - "name": { + "region": { "type": "string", - "description": "Alert type. Available options depend on Plan type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", - "example": "dataset-size", + "description": "Required. Name of the region to update." + }, + "remoteBackup": { + "$ref": "#/components/schemas/DatabaseBackupConfig" + }, + "localThroughputMeasurement": { + "$ref": "#/components/schemas/LocalThroughput" + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence for this region. If set, 'globalDataPersistence' will not apply to this region.", "enum": [ - "dataset-size", - "datasets-size", - "throughput-higher-than", - "throughput-lower-than", - "latency", - "syncsource-error", - "syncsource-lag", - "connections-limit" + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" ] }, - "value": { - "type": "integer", - "description": "Value over which an alert will be sent. Default values and range depend on the alert type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", - "format": "int32", - "example": 80 - } - }, - "description": "Optional. Changes Redis database alert details." - }, - "LocalThroughput": { - "type": "object", - "properties": { - "region": { + "password": { "type": "string", - "description": "Specify one of the selected cloud provider regions for the subscription." + "description": "Optional. Changes the password used to access the database in this region. If set, 'globalPassword' will not apply to this region.", + "example": "P@ssw0rd" }, - "writeOperationsPerSecond": { - "type": "integer", - "description": "Write operations for this region per second. Default: 1000 ops/sec", - "format": "int64", - "example": 1000 + "sourceIp": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']" + } }, - "readOperationsPerSecond": { - "type": "integer", - "description": "Read operations for this region per second. Default: 1000 ops/sec", - "format": "int64", - "example": 1000 + "alerts": { + "type": "array", + "description": "Optional. Redis database alert settings for this region. If set, 'glboalAlerts' will not apply to this region.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version for this region. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. If set, 'globalEnableDefaultUser' will not apply to this region." } }, - "description": "Optional. Expected read and write throughput for this region." + "description": "Optional. A list of regions and local settings to update." }, - "PscEndpointUpdateRequest": { + "PscEndpointCreateRequest": { "required": [ - "endpointId", + "endpointConnectionName", + "gcpProjectId", + "gcpVpcName", + "gcpVpcSubnetName", "pscServiceId", "subscriptionId" ], @@ -17465,11 +22362,6 @@ "format": "int32", "readOnly": true }, - "endpointId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, "gcpProjectId": { "type": "string", "description": "Google Cloud project ID.", @@ -17490,69 +22382,47 @@ "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", "example": "my-endpoint-connection" }, - "action": { - "type": "string", - "description": "Action to perform on the endpoint.", - "enum": [ - "accept", - "reject" - ] - }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Private Service Connect endpoint update request" + "description": "Private Service Connect endpoint create request" }, - "DatabaseSlowLogEntries": { + "ActiveActiveVpcPeeringCreateBaseRequest": { + "required": [ + "sourceRegion" + ], "type": "object", "properties": { - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatabaseSlowLogEntry" - } + "provider": { + "type": "string" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - } - }, - "DatabaseSlowLogEntry": { - "type": "object", - "properties": { - "id": { + "subscriptionId": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, - "startTime": { + "sourceRegion": { "type": "string", - "format": "date-time" - }, - "duration": { - "type": "integer", - "format": "int32" + "description": "Name of region to create a VPC peering from." }, - "arguments": { - "type": "string" + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "Database slowlog entry" + "description": "Active-Active VPC peering creation request message", + "oneOf": [ + { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateAwsRequest" + }, + { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateGcpRequest" + } + ] }, - "ActiveActivePscEndpointUpdateRequest": { - "required": [ - "endpointId", - "pscServiceId", - "regionId", - "subscriptionId" - ], + "BaseSubscriptionUpdateRequest": { "type": "object", "properties": { "subscriptionId": { @@ -17560,166 +22430,30 @@ "format": "int32", "readOnly": true }, - "pscServiceId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "endpointId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true, - "example": 27 - }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" - }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" - }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" - }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" - }, - "action": { - "type": "string", - "description": "Action to perform on the endpoint.", - "enum": [ - "accept", - "reject" - ] - }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Private Service Connect endpoint update request" + "description": "Subscription update request message", + "oneOf": [ + { + "$ref": "#/components/schemas/SubscriptionUpdateRequest" + }, + { + "$ref": "#/components/schemas/SubscriptionUpdateCMKRequest" + } + ] }, - "SubscriptionMaintenanceWindows": { + "Regions": { "type": "object", "properties": { - "mode": { - "type": "string", - "enum": [ - "manual", - "automatic" - ] - }, - "timeZone": { - "type": "string" - }, - "windows": { + "regions": { "type": "array", "items": { - "$ref": "#/components/schemas/MaintenanceWindow" + "$ref": "#/components/schemas/Region" } }, - "skipStatus": { - "$ref": "#/components/schemas/MaintenanceWindowSkipStatus" - } - } - }, - "FixedSubscriptionsPlan": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "size": { - "type": "number", - "format": "double" - }, - "datasetSize": { - "type": "number", - "format": "double" - }, - "sizeMeasurementUnit": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "region": { - "type": "string" - }, - "regionId": { - "type": "integer", - "format": "int32" - }, - "price": { - "type": "integer", - "format": "int32" - }, - "priceCurrency": { - "type": "string" - }, - "pricePeriod": { - "type": "string" - }, - "maximumDatabases": { - "type": "integer", - "format": "int32" - }, - "maximumThroughput": { - "type": "integer", - "format": "int32" - }, - "maximumBandwidthGB": { - "type": "integer", - "format": "int32" - }, - "availability": { - "type": "string" - }, - "connections": { - "type": "string" - }, - "cidrAllowRules": { - "type": "integer", - "format": "int32" - }, - "supportDataPersistence": { - "type": "boolean" - }, - "redisFlex": { - "type": "boolean" - }, - "supportInstantAndDailyBackups": { - "type": "boolean" - }, - "supportReplication": { - "type": "boolean" - }, - "supportClustering": { - "type": "boolean" - }, - "supportSsl": { - "type": "boolean" - }, - "customerSupport": { - "type": "string" - }, "links": { "type": "array", "items": { @@ -17730,539 +22464,3792 @@ } } }, - "description": "Redis Essentials subscription plan information", "example": { - "id": 98273, - "name": "Cache 5GB", - "size": 5, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "eu-west-1", - "regionId": 4, - "price": 77, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "No replication", - "connections": "unlimited", - "cidrAllowRules": 4, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": false, - "supportClustering": true, - "supportSsl": false, - "supportedAlerts": [ - "throughput-higher-than" - ], - "customerSupport": "Standard", - "links": [ + "regions": [ { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/plans/16583", - "type": "GET" - } - ] - } - }, - "AccountACLRoles": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis list of ACL roles in current account", - "example": { - "accountId": 1001, - "roles": [ + "id": 1, + "name": "us-east-1", + "provider": "AWS" + }, { - "id": 395, - "name": "role-name", - "redisRules": [ - { - "ruleId": 7, - "ruleName": "Full-Access", - "databases": [ - { - "subscriptionId": 126, - "databaseId": 1, - "databaseName": "DB-RCP-2-81-7" - } - ] - } - ], - "users": [], - "status": "error" - } - ] - } - }, - "tag": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Database tag key.", - "example": "environment" - }, - "value": { - "type": "string", - "description": "Database tag value.", - "example": "production" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Database tag" - }, - "SubscriptionSpec": { - "required": [ - "regions" - ], - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "Optional. Cloud provider. Default: 'AWS'", - "example": "AWS", - "enum": [ - "AWS", - "GCP" - ] - }, - "cloudAccountId": { - "type": "integer", - "description": "Optional. Cloud account identifier. Default: Redis internal cloud account (Cloud Account ID = 1). Use GET /cloud-accounts to list all available cloud accounts. Note: A subscription on Google Cloud can be created only with Redis internal cloud account.", - "format": "int32", - "example": 1 - }, - "regions": { - "type": "array", - "description": "The cloud provider region or list of regions (Active-Active only) and networking details.", - "items": { - "$ref": "#/components/schemas/SubscriptionRegionSpec" - } - }, - "resourceTags": { - "type": "array", - "description": "Optional. A list of resource tags to apply to the subscription. (max. 30 tags).", - "items": { - "$ref": "#/components/schemas/ResourceTag" - } - } - }, - "description": "Cloud provider, region, and networking details." - }, - "FixedDatabaseBackupRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "adhocBackupPath": { - "type": "string", - "description": "Optional. Manually backs up data to this location, instead of the set 'periodicBackupPath' location.", - "example": "s3://" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials database backup request message" - }, - "DatabaseVersionUpgradeStatus": { - "type": "object", - "properties": { - "databaseId": { - "type": "integer", - "format": "int32" - }, - "targetRedisVersion": { - "type": "string" - }, - "progress": { - "type": "number", - "format": "double" - }, - "upgradeStatus": { - "type": "string", - "enum": [ - "in-progress", - "in-progress-recovery-pending", - "done", - "failed" - ] - } - } - }, - "DatabaseModuleSpec": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Redis advanced capability name. Use GET /database-modules for a list of available capabilities." - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "object", - "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", - "example": {} + "id": 2, + "name": "us-west-1", + "provider": "AWS" }, - "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", - "example": {} - } - }, - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default." - }, - "FixedSubscriptionCreateRequest": { - "required": [ - "name", - "planId" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "New Essentials subscription name.", - "example": "My new subscription" - }, - "planId": { - "type": "integer", - "description": "An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans to get a list of available options.", - "format": "int32" - }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", - "enum": [ - "credit-card", - "marketplace" - ] - }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", - "format": "int32" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials subscription create request" - }, - "SubscriptionRegionNetworkingSpec": { - "type": "object", - "properties": { - "deploymentCIDR": { - "type": "string", - "description": "Optional. Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses. Default for single-region subscriptions: If using Redis internal cloud account, 192.168.0.0/24", - "example": "10.0.0.0/24" - }, - "vpcId": { - "type": "string", - "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format (for example: 'vpc-0125be68a4625884ad') and must exist within the hosting account.", - "example": "" - }, - "subnetIds": { - "type": "array", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "items": { - "type": "string", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account." - } - }, - "securityGroupId": { - "type": "string", - "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account." - } - }, - "description": "Optional. Cloud networking details, per region. Required if creating an Active-Active subscription." - }, - "SubscriptionResourceTagsUpdateRequest": { - "required": [ - "resourceTags" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "resourceTags": { - "type": "array", - "description": "List of resource tags to apply to the subscription. This will replace all existing tags.", - "items": { - "$ref": "#/components/schemas/ResourceTag" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Resource tags update request" - }, - "DatabaseTagsUpdateRequest": { - "required": [ - "tags" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "tags": { - "type": "array", - "description": "List of database tags.", - "items": { - "$ref": "#/components/schemas/tag" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Database tags update request message" - }, - "PrivateLinkConnectionsDisassociateRequest": { - "required": [ - "connections" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "connections": { - "type": "array", - "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", - "items": { - "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Private Link connections disassociate request" - }, - "AccountUsers": { - "type": "object", - "properties": { - "account": { - "type": "integer", - "format": "int32" - } - }, - "description": "RedisLabs list of users in current account", - "example": { - "account": 1001, - "users": [ { - "id": 60192, - "name": "Clifford O'neill", - "email": "clifford.mail@gmail.com", - "role": "Viewer", - "userType": "Local", - "hasApiKey": false, - "options": { - "billing": false, - "emailAlerts": false, - "operationalEmails": false, - "mfaEnabled": false - } - } - ] - } - }, - "FixedDatabaseUpgradeRedisVersionRequest": { - "required": [ - "targetRedisVersion" - ], - "type": "object", - "properties": { - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "targetRedisVersion": { - "type": "string", - "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", - "example": "7.4" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Upgrades the specified Essentials database to a later Redis version." - }, - "CrdbUpdatePropertiesRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated database name. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-database-example" - }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", - "example": false - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'" - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", - "example": false - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." - }, - "globalDataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in all regions that don't set local 'dataPersistence'.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "globalPassword": { - "type": "string", - "description": "Optional. Changes the password used to access the database in all regions that don't set a local 'password'." - }, - "globalEnableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user in all regions that don't set local 'enableDefaultUser'. When 'false', only defined access control users can connect to the database." - }, - "globalSourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']" - } - }, - "globalAlerts": { - "type": "array", - "description": "Optional. Redis database alert settings in all regions that don't set local 'alerts'.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } - }, - "regions": { - "type": "array", - "description": "Optional. A list of regions and local settings to update.", - "items": { - "$ref": "#/components/schemas/LocalRegionProperties" - } - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", + "id": 3, + "name": "us-west-2", + "provider": "AWS" + }, + { + "id": 4, + "name": "eu-west-1", + "provider": "AWS" + }, + { + "id": 29, + "name": "eu-central-1", + "provider": "AWS" + }, + { + "id": 7, + "name": "sa-east-1", + "provider": "AWS" + }, + { + "id": 63, + "name": "ca-central-1", + "provider": "AWS" + }, + { + "id": 62, + "name": "eu-north-1", + "provider": "AWS" + }, + { + "id": 61, + "name": "eu-west-3", + "provider": "AWS" + }, + { + "id": 60, + "name": "eu-west-2", + "provider": "AWS" + }, + { + "id": 59, + "name": "us-east-2", + "provider": "AWS" + }, + { + "id": 64, + "name": "ap-east-1", + "provider": "AWS" + }, + { + "id": 146, + "name": "ap-southeast-5", + "provider": "AWS" + }, + { + "id": 30, + "name": "ap-south-1", + "provider": "AWS" + }, + { + "id": 117, + "name": "ap-northeast-3", + "provider": "AWS" + }, + { + "id": 116, + "name": "ap-northeast-2", + "provider": "AWS" + }, + { + "id": 145, + "name": "ap-southeast-7", + "provider": "AWS" + }, + { + "id": 6, + "name": "ap-northeast-1", + "provider": "AWS" + }, + { + "id": 5, + "name": "ap-southeast-1", + "provider": "AWS" + }, + { + "id": 15, + "name": "ap-southeast-2", + "provider": "AWS" + }, + { + "id": 132, + "name": "il-central-1", + "provider": "AWS" + }, + { + "id": 144, + "name": "mx-central-1", + "provider": "AWS" + }, + { + "id": 32, + "name": "asia-east1", + "provider": "GCP" + }, + { + "id": 67, + "name": "asia-east2", + "provider": "GCP" + }, + { + "id": 33, + "name": "asia-northeast1", + "provider": "GCP" + }, + { + "id": 104, + "name": "asia-northeast2", + "provider": "GCP" + }, + { + "id": 69, + "name": "asia-south1", + "provider": "GCP" + }, + { + "id": 34, + "name": "asia-southeast1", + "provider": "GCP" + }, + { + "id": 71, + "name": "australia-southeast1", + "provider": "GCP" + }, + { + "id": 72, + "name": "europe-north1", + "provider": "GCP" + }, + { + "id": 35, + "name": "europe-west1", + "provider": "GCP" + }, + { + "id": 74, + "name": "europe-west2", + "provider": "GCP" + }, + { + "id": 128, + "name": "asia-southeast2", + "provider": "GCP" + }, + { + "id": 75, + "name": "europe-west3", + "provider": "GCP" + }, + { + "id": 36, + "name": "europe-west4", + "provider": "GCP" + }, + { + "id": 133, + "name": "europe-west10", + "provider": "GCP" + }, + { + "id": 130, + "name": "europe-southwest1", + "provider": "GCP" + }, + { + "id": 134, + "name": "europe-west8", + "provider": "GCP" + }, + { + "id": 113, + "name": "europe-west6", + "provider": "GCP" + }, + { + "id": 129, + "name": "me-west1", + "provider": "GCP" + }, + { + "id": 135, + "name": "europe-west9", + "provider": "GCP" + }, + { + "id": 77, + "name": "northamerica-northeast1", + "provider": "GCP" + }, + { + "id": 136, + "name": "europe-west12", + "provider": "GCP" + }, + { + "id": 137, + "name": "europe-central2", + "provider": "GCP" + }, + { + "id": 131, + "name": "northamerica-northeast2", + "provider": "GCP" + }, + { + "id": 138, + "name": "me-central2", + "provider": "GCP" + }, + { + "id": 139, + "name": "me-central1", + "provider": "GCP" + }, + { + "id": 140, + "name": "us-east5", + "provider": "GCP" + }, + { + "id": 141, + "name": "us-south1", + "provider": "GCP" + }, + { + "id": 27, + "name": "us-central1", + "provider": "GCP" + }, + { + "id": 38, + "name": "us-east1", + "provider": "GCP" + }, + { + "id": 39, + "name": "us-east4", + "provider": "GCP" + }, + { + "id": 40, + "name": "us-west1", + "provider": "GCP" + }, + { + "id": 82, + "name": "us-west2", + "provider": "GCP" + }, + { + "id": 142, + "name": "southamerica-west1", + "provider": "GCP" + }, + { + "id": 95, + "name": "southamerica-east1", + "provider": "GCP" + }, + { + "id": 143, + "name": "africa-south1", + "provider": "GCP" + } + ] + } + }, + "FixedSubscriptionsPlans": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of Essentials subscriptions plans", + "example": { + "plans": [ + { + "id": 98183, + "name": "Multi-AZ 5GB", + "size": 5, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-east-1", + "regionId": 1, + "price": 100, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "Multi-zone", + "connections": "unlimited", + "cidrAllowRules": 16, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "supportSsl": true, + "supportedAlerts": [ + "datasets-size", + "latency", + "throughput-lower-than", + "throughput-higher-than" + ], + "customerSupport": "Standard", + "links": [] + }, + { + "id": 98181, + "name": "Multi-AZ 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-east-1", + "regionId": 1, + "price": 22, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "Multi-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "supportSsl": true, + "supportedAlerts": [ + "datasets-size", + "throughput-higher-than", + "throughput-lower-than", + "latency", + "connections-limit" + ], + "customerSupport": "Standard", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/plans?cloud_provider=AWS", + "type": "GET" + } + ] + } + }, + "ActiveActiveVpcPeeringUpdateAwsRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "vpcPeeringId": { + "type": "integer", + "description": "VPC Peering id to update.", + "format": "int32", + "readOnly": true + }, + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" + }, + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.22.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active-Active VPC peering update request message" + }, + "DatabaseTrafficStateResponse": { + "type": "object", + "properties": { + "bdbId": { + "type": "integer", + "format": "int32" + }, + "trafficStatus": { + "type": "string" + }, + "canResume": { + "type": "boolean" + }, + "resumeInProgress": { + "type": "boolean" + }, + "stopReason": { + "type": "string" + }, + "resumeEligibleAt": { + "type": "string", + "format": "date-time" + } + } + }, + "DataPersistenceEntry": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "description": "RedisLabs data persistence information" + }, + "CloudAccounts": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs Cloud Accounts information", + "example": { + "accountId": 40131, + "cloudAccounts": [ + { + "id": 1, + "name": "Redis Internal Resources", + "provider": "AWS", + "status": "active", + "links": [] + }, + { + "id": 2, + "name": "CAPI User ", + "provider": "AWS", + "status": "active", + "accessKeyId": "A***A", + "links": [] + }, + { + "id": 3, + "name": "API Cloud account", + "provider": "AWS", + "status": "active", + "accessKeyId": "A***4", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts", + "type": "GET" + } + ] + } + }, + "PrivateLinkActiveActivePrincipalsCreateRequest": { + "required": [ + "principal", + "regionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to add a principal to private link for Active-Active subscription" + }, + "PrivateLinkActiveActiveConnectionsDisassociateRequest": { + "required": [ + "connections" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, + "connections": { + "type": "array", + "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", + "items": { + "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to disassociate connections from private link for Active-Active subscription" + }, + "VpcPeeringUpdateAwsRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "vpcPeeringId": { + "type": "integer", + "description": "VPC Peering ID to update.", + "format": "int32", + "readOnly": true + }, + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" + }, + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "VPC peering update request message" + }, + "FixedSubscriptions": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of Essentials subscriptions in current account", + "example": { + "accountId": 40131, + "subscriptions": [ + { + "id": 151367, + "name": "fixed-1", + "status": "active", + "paymentMethodId": 8241, + "paymentMethodType": "credit-card", + "planId": 98276, + "planName": "Standard 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-west-1", + "price": 22, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "Single-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "customerSupport": "Standard", + "creationDate": "2022-11-21T20:02:21+02:00", + "links": [] + }, + { + "id": 120416, + "name": "subscription-name", + "status": "active", + "paymentMethodId": 123, + "paymentMethodType": "credit-card", + "planId": 123, + "planName": "Standard 30MB", + "planType": "pay-as-you-go", + "size": 30, + "sizeMeasurementUnit": "MB", + "provider": "AWS", + "region": "us-east-1", + "price": 0, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "no-replication", + "connections": 30, + "cidrAllowRules": 1, + "supportDataPersistence": false, + "supportInstantAndDailyBackups": false, + "supportReplication": false, + "supportClustering": false, + "customerSupport": "basic", + "creationDate": "20-Nov-2022", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions", + "type": "GET" + } + ] + } + }, + "DatabaseSyncSourceSpec": { + "required": [ + "endpoint" + ], + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "description": "Redis URI of a source database. Example format: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: 'redis://endpoint1:6379'." + }, + "encryption": { + "type": "boolean", + "description": "Defines if encryption should be used to connect to the sync source. If not set the source is a Redis Cloud database, it will automatically detect if the source uses encryption." + }, + "serverCert": { + "type": "string", + "description": "TLS/SSL certificate chain of the sync source. If not set and the source is a Redis Cloud database, it will automatically detect the certificate to use." + } + }, + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details." + }, + "MaintenanceWindow": { + "type": "object", + "properties": { + "days": { + "type": "array", + "items": { + "type": "string" + } + }, + "startHour": { + "type": "integer", + "format": "int32" + }, + "durationInHours": { + "type": "integer", + "format": "int32" + } + } + }, + "Module": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "capabilityName": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "description": "RedisLabs database module information" + }, + "AclRedisRuleUpdateRequest": { + "required": [ + "name", + "redisRule" + ], + "type": "object", + "properties": { + "redisRuleId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Changes the Redis ACL rule name.", + "example": "ACL-rule-example" + }, + "redisRule": { + "type": "string", + "description": "Optional. Changes the Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", + "example": "+set allkeys allchannels" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL redis rule update request" + }, + "ActiveActiveRegionToDelete": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "Name of the cloud provider region to delete." + } + }, + "description": "The names of the regions to delete." + }, + "MaintenanceWindowSkipStatus": { + "type": "object", + "properties": { + "remainingSkips": { + "type": "integer", + "format": "int32" + }, + "currentSkipEnd": { + "type": "string" + } + } + }, + "DatabaseAvailableVersionsResponse": { + "type": "object", + "properties": { + "targets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TargetVersion" + } + } + } + }, + "CloudAccount": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "accessKeyId": { + "type": "string" + }, + "signInLoginUrl": { + "type": "string" + }, + "awsUserArn": { + "type": "string" + }, + "awsConsoleRoleArn": { + "type": "string" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "provider": { + "type": "string", + "enum": [ + "AWS", + "GCP" + ] + } + }, + "description": "RedisLabs Cloud Account information", + "example": { + "id": 1, + "name": "Redis Internal Resources", + "provider": "AWS", + "status": "active", + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts/1", + "type": "GET" + } + ] + } + }, + "PrivateLinkPrincipalsCreateRequest": { + "required": [ + "principal" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link principals create request" + }, + "FixedSubscriptionUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Updated subscription name.", + "example": "My new subscription" + }, + "planId": { + "type": "integer", + "description": "Optional. An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans/subscriptions/{subscriptionId} to get a list of compatible options for the specified subscription.", + "format": "int32" + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get a list of payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", + "format": "int32" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials subscription update request" + }, + "SearchScalingFactorsData": { + "type": "object", + "properties": { + "queryPerformanceFactors": { + "type": "array", + "items": { + "type": "string" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "SubscriptionUpdateCMKRequest": { + "required": [ + "customerManagedKeys" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + }, + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] + }, + "customerManagedKeys": { + "type": "array", + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", + "items": { + "$ref": "#/components/schemas/CustomerManagedKey" + } + } + }, + "description": "Subscription update request message" + }, + "CostReportCreateRequest": { + "required": [ + "endDate", + "startDate" + ], + "type": "object", + "properties": { + "startDate": { + "type": "string", + "description": "Filter for usage starting on or after this date. Must be in format YYYY-MM-DD", + "format": "YYYY-MM-DD", + "example": "2025-10-01" + }, + "endDate": { + "type": "string", + "description": "Filter for usage ending on or before this date. Must be in format YYYY-MM-DD and must be after start date", + "format": "YYYY-MM-DD", + "example": "2025-11-06" + }, + "format": { + "type": "string", + "description": "Output format for the cost report", + "example": "csv", + "default": "csv", + "enum": [ + "json", + "csv" + ] + }, + "subscriptionIds": { + "type": "array", + "description": "Array of subscriptionIDs to filter by", + "example": [ + 123, + 456 + ], + "items": { + "type": "integer", + "description": "Array of subscriptionIDs to filter by", + "format": "int32" + } + }, + "databaseIds": { + "type": "array", + "description": "Array of database IDs to filter by", + "example": [ + 789, + 101112 + ], + "items": { + "type": "integer", + "description": "Array of database IDs to filter by", + "format": "int32" + } + }, + "subscriptionType": { + "type": "string", + "description": "Filter by plan type", + "example": "pro", + "enum": [ + "pro", + "essentials" + ] + }, + "regions": { + "type": "array", + "description": "Array of regions to filter by", + "example": [ + "us-east-1", + "eu-west-1" + ], + "items": { + "type": "string", + "description": "Array of regions to filter by", + "example": "[\"us-east-1\",\"eu-west-1\"]" + } + }, + "tags": { + "type": "array", + "description": "Array of key-value pairs for tag filtering", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cost report generation request" + }, + "AccountSubscriptionDatabases": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs Account Subscription Databases information", + "example": { + "accountId": 1001, + "subscription": [ + { + "subscriptionId": 1206, + "numberOfDatabases": 6, + "databases": [ + { + "databaseId": 1, + "name": "DB-RCP-2-81-7", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "respVersion": "resp2", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 + }, + "activatedOn": "2021-08-29T13:03:08Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 2, + "name": "DB-RCP-2-81-5", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 2, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:27Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 6652, + "name": "RediSearch", + "capabilityName": "Search and query", + "version": "2.0.11", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 3, + "name": "Redis-database-example-updated", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 2, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 + }, + "activatedOn": "2021-08-29T13:03:26Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": false, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 4, + "name": "DB-RCP-2-81-6", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 2, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:27Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 6653, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.4.10", + "description": "Time-Series data structure for redis", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 5, + "name": "CI-tests-DO-NOT-DELETE", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": false, + "useExternalEndpointForOSSClusterApi": false, + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "volatile-lru", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:22Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [], + "alerts": [], + "links": [] + }, + { + "databaseId": 6, + "name": "DB-RCP-2-81-4", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 1, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:27Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 6651, + "name": "RediSearch", + "capabilityName": "Search and query", + "version": "2.0.11", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + } + ], + "alerts": [], + "links": [] + } + ], + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases?offset=0&limit=100", + "type": "GET" + } + ] + } + }, + "AccountSystemLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "originator": { + "type": "string" + }, + "apiKeyName": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "resourceId": { + "type": "integer", + "format": "int32" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "description": "Account system log entry" + }, + "CloudTag": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "key": { + "type": "string" + }, + "value": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "description": "Database tag", + "example": { + "key": "environment", + "value": "production", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [ + { + "rel": "self", + "type": "GET", + "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags" + } + ] + } + }, + "AccountACLRedisRules": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of ACL redis rules in current account", + "example": { + "accountId": 1001, + "redisRules": [ + { + "id": 7, + "name": "Full-Access", + "acl": "+@all ~*", + "isDefault": true, + "status": "active" + }, + { + "id": 8, + "name": "Read-Write", + "acl": "+@all -@dangerous ~*", + "isDefault": true, + "status": "active" + }, + { + "id": 9, + "name": "Read-Only", + "acl": "+@read ~*", + "isDefault": true, + "status": "active" + } + ] + } + }, + "FixedSubscription": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "paymentMethodId": { + "type": "integer", + "format": "int32" + }, + "paymentMethodType": { + "type": "string" + }, + "planId": { + "type": "integer", + "format": "int32" + }, + "planName": { + "type": "string" + }, + "planType": { + "type": "string" + }, + "size": { + "type": "number", + "format": "double" + }, + "sizeMeasurementUnit": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "region": { + "type": "string" + }, + "price": { + "type": "integer", + "format": "int32" + }, + "pricePeriod": { + "type": "string" + }, + "priceCurrency": { + "type": "string" + }, + "maximumDatabases": { + "type": "integer", + "format": "int32" + }, + "availability": { + "type": "string" + }, + "connections": { + "type": "string" + }, + "cidrAllowRules": { + "type": "integer", + "format": "int32" + }, + "supportDataPersistence": { + "type": "boolean" + }, + "supportInstantAndDailyBackups": { + "type": "boolean" + }, + "supportReplication": { + "type": "boolean" + }, + "supportClustering": { + "type": "boolean" + }, + "customerSupport": { + "type": "string" + }, + "creationDate": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "databaseStatus": { + "type": "string" + } + }, + "description": "Redis Essentials Subscription information", + "example": { + "id": 151367, + "name": "fixed-sub-2", + "status": "active", + "paymentMethodId": 8241, + "paymentMethodType": "credit-card", + "planId": 98276, + "planName": "Standard 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-west-1", + "price": 22, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "Single-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "customerSupport": "Standard", + "creationDate": "2022-11-21T20:02:21+02:00", + "supportClustering": false, + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions/151367", + "type": "GET" + } + ] + } + }, + "DatabaseCertificateSpec": { + "required": [ + "publicCertificatePEMString" + ], + "type": "object", + "properties": { + "publicCertificatePEMString": { + "type": "string", + "description": "Client certificate public key in PEM format, with new line characters replaced with '\\n'." + } + }, + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'." + }, + "AclRoleUpdateRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Optional. Changes the database access role name.", + "example": "ACL-role-example" + }, + "redisRules": { + "type": "array", + "description": "Optional. Changes the Redis ACL rules to assign to this database access role.", + "items": { + "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + } + }, + "roleId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL role update request" + }, + "AccountUserOptions": { + "type": "object", + "properties": { + "billing": { + "type": "boolean" + }, + "emailAlerts": { + "type": "boolean" + }, + "operationalEmails": { + "type": "boolean" + }, + "mfaEnabled": { + "type": "boolean" + } + }, + "description": "RedisLabs User options information" + }, + "AccountSystemLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountSystemLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "entries": [ + { + "id": 2900349, + "time": "2022-10-12T10:54:31Z", + "originator": "example-value", + "type": "Account", + "description": "example-value (example.value@redis.com)'s user name was changed to Example Value" + }, + { + "id": 2900348, + "time": "2022-10-12T10:54:11Z", + "originator": "invalid-name", + "type": "Account", + "description": "Invited invalid-name (cab@fufu.com) to join team" + } + ] + } + }, + "TgwUpdateCidrsRequest": { + "type": "object", + "properties": { + "cidrs": { + "type": "array", + "description": "Optional. List of transit gateway attachment CIDRs.", + "example": [ + "10.10.10.0/24", + "10.10.20.0/24" + ], + "items": { + "$ref": "#/components/schemas/Cidr" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Transit Gateway update attachment cidr/s request message" + }, + "AccountSessionLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + }, + "userAgent": { + "type": "string" + }, + "ipAddress": { + "type": "string" + }, + "userRole": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + } + }, + "description": "Account session log entry" + }, + "AccountUser": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "role": { + "type": "string" + }, + "signUp": { + "type": "string" + }, + "userType": { + "type": "string" + }, + "hasApiKey": { + "type": "boolean" + }, + "options": { + "$ref": "#/components/schemas/AccountUserOptions" + } + }, + "description": "RedisLabs User information", + "example": { + "id": 60192, + "name": "Clifford O'neill", + "email": "clifford.mail@gmail.com", + "role": "Viewer", + "userType": "Local", + "hasApiKey": false, + "options": { + "billing": false, + "emailAlerts": false, + "operationalEmails": false, + "mfaEnabled": false + } + } + }, + "ResourceTag": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "description": "List of resource tags to apply to the subscription. This will replace all existing tags." + }, + "CustomerManagedKeyAccessDetails": { + "type": "object", + "properties": { + "redisServiceAccount": { + "type": "string" + }, + "googlePredefinedRoles": { + "type": "array", + "items": { + "type": "string" + } + }, + "googleCustomPermissions": { + "type": "array", + "items": { + "type": "string" + } + }, + "redisIamRole": { + "type": "string" + }, + "requiredKeyPolicyStatements": { + "type": "object" + }, + "deletionGracePeriodOptions": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "Configuration regarding customer managed persistent storage encryption" + }, + "SubscriptionMaintenanceWindowsSpec": { + "required": [ + "mode" + ], + "type": "object", + "properties": { + "mode": { + "type": "string", + "description": "Maintenance window mode: either 'manual' or 'automatic'. Must provide 'windows' if manual.", + "example": "manual", + "enum": [ + "manual", + "automatic" + ] + }, + "windows": { + "type": "array", + "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided.", + "items": { + "$ref": "#/components/schemas/MaintenanceWindowSpec" + } + } + } + }, + "ACLUser": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "status": { + "type": "string" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis ACL user information", + "example": { + "id": 1, + "name": "abc", + "role": "role-name", + "status": "active" + } + }, + "DatabaseCertificate": { + "type": "object", + "properties": { + "publicCertificatePEMString": { + "type": "string", + "description": "An X.509 PEM (base64) encoded server certificate with new line characters replaced by '\\n'." + } + }, + "description": "Database certificate" + }, + "AccountSessionLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountSessionLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "Tag": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Tag key", + "example": "environment" + }, + "value": { + "type": "string", + "description": "Tag value", + "example": "production" + } + }, + "description": "Tag filter for cost report" + }, + "AccountSubscriptions": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs list of subscriptions in current account", + "example": { + "accountId": 1001, + "subscriptions": [ + { + "id": 1206, + "name": "subscription name", + "status": "active", + "deploymentType": "single-region", + "paymentMethodId": 123, + "publicEndpointAccess": true, + "memoryStorage": "ram", + "numberOfDatabases": 6, + "paymentMethodType": "credit-card", + "storageEncryption": false, + "subscriptionPricing": [ + { + "type": "Shards", + "typeDetails": "high-throughput", + "quantity": 7, + "quantityMeasurement": "shards", + "pricePerUnit": 0.124, + "priceCurrency": "USD", + "pricePeriod": "hour" + } + ], + "cloudDetails": [ + { + "provider": "AWS", + "awsAccountId": "550680565604", + "cloudAccountId": 1666, + "totalSizeInGb": 0.0272, + "regions": [ + { + "region": "us-east-1", + "networking": [ + { + "deploymentCIDR": "10.0.0.0/24", + "subnetId": "subnet-009ce004ed90da8a6" + } + ], + "preferredAvailabilityZones": [ + "us-east-1a" + ], + "multipleAvailabilityZones": false + } + ], + "links": [] + } + ], + "links": [] + } + ] + } + }, + "CrdbRegionSpec": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name." + }, + "localThroughputMeasurement": { + "$ref": "#/components/schemas/LocalThroughput" + } + }, + "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database" + }, + "VpcPeeringCreateAwsRequest": { + "required": [ + "awsAccountId", + "region", + "vpcId" + ], + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "region": { + "type": "string", + "description": "Deployment region as defined by the cloud provider.", + "example": "us-east-1" + }, + "awsAccountId": { + "type": "string", + "description": "AWS Account ID.", + "example": "" + }, + "vpcId": { + "type": "string", + "description": "VPC ID.", + "example": "" + }, + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" + }, + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "VPC peering creation request message" + }, + "FixedDatabaseUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Updated database name.", + "example": "Redis-Essentials-database-example" + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", + "example": true + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", + "example": true + }, + "enableDatabaseClustering": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances.", + "example": false + }, + "numberOfShards": { + "type": "integer", + "description": "(Pay-as-you-go subscriptions only) Optional. Changes the number of master shards.", + "format": "int32", + "example": 2 + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Turns database replication on or off.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "replication": { + "type": "boolean", + "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." + }, + "periodicBackupPath": { + "type": "string", + "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups. If set to an empty string, the backup path will be removed.", + "example": "s3://" + }, + "sourceIps": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + } + }, + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." + } + }, + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" + }, + "regexRules": { + "type": "array", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", + "items": { + "type": "string", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." + } + }, + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "deprecated": true + }, + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." + }, + "password": { + "type": "string", + "description": "Optional. Changes the password used to access the database with the 'default' user." + }, + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database." + }, + "alerts": { + "type": "array", + "description": "Optional. Changes Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials database update request" + }, + "CloudAccountCreateRequest": { + "required": [ + "accessKeyId", + "accessSecretKey", + "consolePassword", + "consoleUsername", + "name", + "signInLoginUrl" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Cloud account display name.", + "example": "My new Cloud Account" + }, + "provider": { + "type": "string", + "description": "Optional. Cloud provider. Default: 'AWS'", + "example": "AWS", + "enum": [ + "AWS", + "GCP" + ] + }, + "accessKeyId": { + "type": "string", + "description": "Cloud provider access key.", + "example": "****" + }, + "accessSecretKey": { + "type": "string", + "description": "Cloud provider secret key.", + "example": "****" + }, + "consoleUsername": { + "type": "string", + "description": "Cloud provider management console username.", + "example": "me@mycompany.com" + }, + "consolePassword": { + "type": "string", + "description": "Cloud provider management console password.", + "example": "****" + }, + "signInLoginUrl": { + "type": "string", + "description": "Cloud provider management console login URL.", + "example": "https://.signin.aws.amazon.com/console" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cloud Account definition" + }, + "ModulesData": { + "type": "object", + "properties": { + "modules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Module" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "modules": [ + { + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "name": "RedisJSON", + "capabilityName": "JSON", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "name": "RediSearch", + "capabilityName": "Search and query", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [ + { + "name": "number-of-documents", + "description": "Expected number of documents the database module will be indexing", + "type": "integer", + "defaultValue": 1000000, + "required": false + } + ] + }, + { + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "description": "Time-Series data structure for redis", + "parameters": [] + } + ] + } + }, + "ActiveActiveRegionDeleteRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regions": { + "type": "array", + "description": "The names of the regions to delete.", + "items": { + "$ref": "#/components/schemas/ActiveActiveRegionToDelete" + } + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, deleting any resources required by the plan. When 'true': creates a read-only deployment plan and does not delete or modify any resources. Default: 'false'", + "example": false + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active active region deletion request message" + }, + "AccountACLUsers": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of ACL users in current account", + "example": { + "accountId": 1001, + "users": [ + { + "id": 1, + "name": "user", + "role": "role-name", + "status": "active", + "links": [] + } + ] + } + }, + "AclRoleRedisRuleSpec": { + "required": [ + "databases", + "ruleName" + ], + "type": "object", + "properties": { + "ruleName": { + "type": "string", + "description": "The name of a Redis ACL rule to assign to the role. Use 'GET /acl/redisRules' to get a list of available rules for your account.", + "example": "Read-Only" + }, + "databases": { + "type": "array", + "description": "A list of databases where the specified rule applies for this role.", + "items": { + "$ref": "#/components/schemas/AclRoleDatabaseSpec" + } + } + }, + "description": "Optional. Changes the Redis ACL rules to assign to this database access role." + }, + "ActiveActiveSubscriptionRegions": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "List of active-active subscription regions", + "example": { + "subscriptionId": 126, + "regions": [ + { + "regionId": 1, + "region": "us-east-1", + "deploymentCidr": "10.0.0.0/24", + "vpcId": "vpc-0bf863584c46321e4", + "databases": [ + { + "databaseId": 862, + "databaseName": "Bdb", + "readOperationsPerSecond": 500, + "writeOperationsPerSecond": 500, + "respVersion": "resp3", + "links": [] + }, + { + "databaseId": 864, + "databaseName": "Bdb2", + "readOperationsPerSecond": 1000, + "writeOperationsPerSecond": 1000, + "respVersion": "resp3", + "links": [] + } + ], + "links": [] + }, + { + "regionId": 4, + "region": "eu-west-1", + "deploymentCidr": "10.0.1.0/24", + "vpcId": "vpc-0108fb753063ecf8b", + "databases": [ + { + "databaseId": 862, + "databaseName": "Bdb", + "readOperationsPerSecond": 500, + "writeOperationsPerSecond": 500, + "respVersion": "resp3", + "links": [] + }, + { + "databaseId": 864, + "databaseName": "Bdb2", + "readOperationsPerSecond": 1000, + "writeOperationsPerSecond": 1000, + "respVersion": "resp3", + "links": [] + } + ], + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/133876/regions", + "type": "GET" + } + ] + } + }, + "AccountFixedSubscriptionDatabases": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs Account Subscription Databases information", + "example": { + "accountId": 40131, + "subscription": { + "subscriptionId": 154714, + "numberOfDatabases": 2, + "databases": [ + { + "databaseId": 51324587, + "name": "bdb", + "protocol": "stack", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "draft", + "planMemoryLimit": 250, + "respVersion": "resp2", + "memoryLimitMeasurementUnit": "MB", + "memoryUsedInMb": 1, + "memoryStorage": "ram", + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "noeviction", + "clustering": { + "enabled": false, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "defaultUserEnabled": true, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18534, + "name": "searchlight", + "capabilityName": "Search and query", + "version": "2.2.6", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + }, + { + "id": 18535, + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "version": "2.2.12", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "id": 18537, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.6.8", + "description": "Time-Series data structure for Redis", + "parameters": [] + } + ], + "alerts": [ + { + "name": "connections-limit", + "value": 80, + "defaultValue": 80 + } + ], + "backup": { + "remoteBackupEnabled": false + }, + "links": [] + }, + { + "databaseId": 51324586, + "name": "firstDB", + "protocol": "stack", + "provider": "AWS", + "region": "us-east-1", + "status": "draft", + "planMemoryLimit": 250, + "memoryLimitMeasurementUnit": "MB", + "memoryUsedInMb": 1, + "memoryStorage": "ram", + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "noeviction", + "clustering": { + "enabled": false, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "defaultUserEnabled": true, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18529, + "name": "searchlight", + "capabilityName": "Search and query", + "version": "2.2.6", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + }, + { + "id": 18530, + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "version": "2.2.12", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "id": 18531, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "id": 18532, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.6.8", + "description": "Time-Series data structure for Redis", + "parameters": [] + } + ], + "alerts": [ + { + "name": "connections-limit", + "value": 80, + "defaultValue": 80 + } + ], + "backup": { + "remoteBackupEnabled": false + }, + "links": [] + } + ], + "links": [] + }, + "links": [] + } + }, + "DatabaseAlertSpec": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Alert type. Available options depend on Plan type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", + "example": "dataset-size", + "enum": [ + "dataset-size", + "datasets-size", + "throughput-higher-than", + "throughput-lower-than", + "latency", + "syncsource-error", + "syncsource-lag", + "connections-limit" + ] + }, + "value": { + "type": "integer", + "description": "Value over which an alert will be sent. Default values and range depend on the alert type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", + "format": "int32", + "example": 80 + } + }, + "description": "Optional. Changes Redis database alert details." + }, + "LocalThroughput": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "Specify one of the selected cloud provider regions for the subscription." + }, + "writeOperationsPerSecond": { + "type": "integer", + "description": "Write operations for this region per second. Default: 1000 ops/sec", + "format": "int64", + "example": 1000 + }, + "readOperationsPerSecond": { + "type": "integer", + "description": "Read operations for this region per second. Default: 1000 ops/sec", + "format": "int64", + "example": 1000 + } + }, + "description": "Optional. Expected read and write throughput for this region." + }, + "PscEndpointUpdateRequest": { + "required": [ + "endpointId", + "pscServiceId", + "subscriptionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "endpointId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "gcpProjectId": { + "type": "string", + "description": "Google Cloud project ID.", + "example": "my-gcp-project" + }, + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" + }, + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" + }, + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" + }, + "action": { + "type": "string", + "description": "Action to perform on the endpoint.", + "enum": [ + "accept", + "reject" + ] + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Service Connect endpoint update request" + }, + "DatabaseSlowLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DatabaseSlowLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "DatabaseSlowLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "duration": { + "type": "integer", + "format": "int32" + }, + "arguments": { + "type": "string" + } + }, + "description": "Database slowlog entry" + }, + "ActiveActivePscEndpointUpdateRequest": { + "required": [ + "endpointId", + "pscServiceId", + "regionId", + "subscriptionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "endpointId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 + }, + "gcpProjectId": { + "type": "string", + "description": "Google Cloud project ID.", + "example": "my-gcp-project" + }, + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" + }, + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" + }, + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" + }, + "action": { + "type": "string", + "description": "Action to perform on the endpoint.", + "enum": [ + "accept", + "reject" + ] + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Service Connect endpoint update request" + }, + "SubscriptionMaintenanceWindows": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "enum": [ + "manual", + "automatic" + ] + }, + "timeZone": { + "type": "string" + }, + "windows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MaintenanceWindow" + } + }, + "skipStatus": { + "$ref": "#/components/schemas/MaintenanceWindowSkipStatus" + } + } + }, + "FixedSubscriptionsPlan": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "size": { + "type": "number", + "format": "double" + }, + "datasetSize": { + "type": "number", + "format": "double" + }, + "sizeMeasurementUnit": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "region": { + "type": "string" + }, + "regionId": { + "type": "integer", + "format": "int32" + }, + "price": { + "type": "integer", + "format": "int32" + }, + "priceCurrency": { + "type": "string" + }, + "pricePeriod": { + "type": "string" + }, + "maximumDatabases": { + "type": "integer", + "format": "int32" + }, + "maximumThroughput": { + "type": "integer", + "format": "int32" + }, + "maximumBandwidthGB": { + "type": "integer", + "format": "int32" + }, + "availability": { + "type": "string" + }, + "connections": { + "type": "string" + }, + "cidrAllowRules": { + "type": "integer", + "format": "int32" + }, + "supportDataPersistence": { + "type": "boolean" + }, + "redisFlex": { + "type": "boolean" + }, + "supportInstantAndDailyBackups": { + "type": "boolean" + }, + "supportReplication": { + "type": "boolean" + }, + "supportClustering": { + "type": "boolean" + }, + "supportSsl": { + "type": "boolean" + }, + "customerSupport": { + "type": "string" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis Essentials subscription plan information", + "example": { + "id": 98273, + "name": "Cache 5GB", + "size": 5, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "eu-west-1", + "regionId": 4, + "price": 77, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "No replication", + "connections": "unlimited", + "cidrAllowRules": 4, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": false, + "supportClustering": true, + "supportSsl": false, + "supportedAlerts": [ + "throughput-higher-than" + ], + "customerSupport": "Standard", + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/plans/16583", + "type": "GET" + } + ] + } + }, + "AccountACLRoles": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of ACL roles in current account", + "example": { + "accountId": 1001, + "roles": [ + { + "id": 395, + "name": "role-name", + "redisRules": [ + { + "ruleId": 7, + "ruleName": "Full-Access", + "databases": [ + { + "subscriptionId": 126, + "databaseId": 1, + "databaseName": "DB-RCP-2-81-7" + } + ] + } + ], + "users": [], + "status": "error" + } + ] + } + }, + "tag": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Database tag key.", + "example": "environment" + }, + "value": { + "type": "string", + "description": "Database tag value.", + "example": "production" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database tag" + }, + "SubscriptionSpec": { + "required": [ + "regions" + ], + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Optional. Cloud provider. Default: 'AWS'", + "example": "AWS", + "enum": [ + "AWS", + "GCP" + ] + }, + "cloudAccountId": { + "type": "integer", + "description": "Optional. Cloud account identifier. Default: Redis internal cloud account (Cloud Account ID = 1). Use GET /cloud-accounts to list all available cloud accounts. Note: A subscription on Google Cloud can be created only with Redis internal cloud account.", + "format": "int32", + "example": 1 + }, + "regions": { + "type": "array", + "description": "The cloud provider region or list of regions (Active-Active only) and networking details.", + "items": { + "$ref": "#/components/schemas/SubscriptionRegionSpec" + } + }, + "resourceTags": { + "type": "array", + "description": "Optional. A list of resource tags to apply to the subscription. (max. 30 tags).", + "items": { + "$ref": "#/components/schemas/ResourceTag" + } + } + }, + "description": "Cloud provider, region, and networking details." + }, + "FixedDatabaseBackupRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "adhocBackupPath": { + "type": "string", + "description": "Optional. Manually backs up data to this location, instead of the set 'periodicBackupPath' location.", + "example": "s3://" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials database backup request message" + }, + "DatabaseVersionUpgradeStatus": { + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32" + }, + "targetRedisVersion": { + "type": "string" + }, + "progress": { + "type": "number", + "format": "double" + }, + "upgradeStatus": { + "type": "string", + "enum": [ + "in-progress", + "in-progress-recovery-pending", + "done", + "failed" + ] + } + } + }, + "DatabaseModuleSpec": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Redis advanced capability name. Use GET /database-modules for a list of available capabilities." + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "object", + "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", + "example": {} + }, + "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", + "example": {} + } + }, + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default." + }, + "FixedSubscriptionCreateRequest": { + "required": [ + "name", + "planId" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "New Essentials subscription name.", + "example": "My new subscription" + }, + "planId": { + "type": "integer", + "description": "An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans to get a list of available options.", + "format": "int32" + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", + "format": "int32" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials subscription create request" + }, + "SubscriptionRegionNetworkingSpec": { + "type": "object", + "properties": { + "deploymentCIDR": { + "type": "string", + "description": "Optional. Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses. Default for single-region subscriptions: If using Redis internal cloud account, 192.168.0.0/24", + "example": "10.0.0.0/24" + }, + "vpcId": { + "type": "string", + "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format (for example: 'vpc-0125be68a4625884ad') and must exist within the hosting account.", + "example": "" + }, + "subnetIds": { + "type": "array", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "items": { + "type": "string", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account." + } + }, + "securityGroupId": { + "type": "string", + "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account." + } + }, + "description": "Optional. Cloud networking details, per region. Required if creating an Active-Active subscription." + }, + "SubscriptionResourceTagsUpdateRequest": { + "required": [ + "resourceTags" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "resourceTags": { + "type": "array", + "description": "List of resource tags to apply to the subscription. This will replace all existing tags.", + "items": { + "$ref": "#/components/schemas/ResourceTag" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Resource tags update request" + }, + "DatabaseTagsUpdateRequest": { + "required": [ + "tags" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "tags": { + "type": "array", + "description": "List of database tags.", + "items": { + "$ref": "#/components/schemas/tag" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database tags update request message" + }, + "PrivateLinkConnectionsDisassociateRequest": { + "required": [ + "connections" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "connections": { + "type": "array", + "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", + "items": { + "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link connections disassociate request" + }, + "AccountUsers": { + "type": "object", + "properties": { + "account": { + "type": "integer", + "format": "int32" + } + }, + "description": "RedisLabs list of users in current account", + "example": { + "account": 1001, + "users": [ + { + "id": 60192, + "name": "Clifford O'neill", + "email": "clifford.mail@gmail.com", + "role": "Viewer", + "userType": "Local", + "hasApiKey": false, + "options": { + "billing": false, + "emailAlerts": false, + "operationalEmails": false, + "mfaEnabled": false + } + } + ] + } + }, + "FixedDatabaseUpgradeRedisVersionRequest": { + "required": [ + "targetRedisVersion" + ], + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "targetRedisVersion": { + "type": "string", + "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", + "example": "7.4" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Upgrades the specified Essentials database to a later Redis version." + }, + "CrdbUpdatePropertiesRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Updated database name. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-database-example" + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", + "example": false + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'" + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", + "example": false + }, + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "deprecated": true + }, + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." + }, + "globalDataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in all regions that don't set local 'dataPersistence'.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "globalPassword": { + "type": "string", + "description": "Optional. Changes the password used to access the database in all regions that don't set a local 'password'." + }, + "globalEnableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user in all regions that don't set local 'enableDefaultUser'. When 'false', only defined access control users can connect to the database." + }, + "globalSourceIp": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']" + } + }, + "globalAlerts": { + "type": "array", + "description": "Optional. Redis database alert settings in all regions that don't set local 'alerts'.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "regions": { + "type": "array", + "description": "Optional. A list of regions and local settings to update.", + "items": { + "$ref": "#/components/schemas/LocalRegionProperties" + } + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", "volatile-ttl", "noeviction" ] @@ -19307,14 +27294,852 @@ "COST_REPORT_FUTURE_DATES_NOT_ALLOWED" ] }, - "additionalInfo": { + "additionalInfo": { + "type": "string" + } + } + }, + "CloudTags": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "accountId": { + "type": "integer", + "format": "int32" + } + }, + "description": "Redis list of database tags", + "example": { + "accountId": 40131, + "tags": [ + { + "key": "environment", + "value": "production", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [] + }, + { + "key": "owner", + "value": "Clifford O'neill", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags", + "type": "GET" + } + ] + } + }, + "RedisVersion": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "eolDate": { + "type": "string", + "format": "date" + }, + "isPreview": { + "type": "boolean" + }, + "isDefault": { + "type": "boolean" + } + } + }, + "AclRoleCreateRequest": { + "required": [ + "name", + "redisRules" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database access role name.", + "example": "ACL-role-example" + }, + "redisRules": { + "type": "array", + "description": "A list of Redis ACL rules to assign to this database access role.", + "items": { + "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL role create request" + }, + "DatabaseBackupRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionName": { + "type": "string", + "description": "Required for Active-Active databases. Name of the cloud provider region to back up. When backing up an Active-Active database, you must back up each region separately." + }, + "adhocBackupPath": { + "type": "string", + "description": "Optional. Manually backs up data to this location, instead of the set 'remoteBackup' location.", + "example": "s3://" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database backup request message" + }, + "ReplicaAsSourceEndpoints": { + "type": "object", + "properties": { + "public": { + "type": "string", + "description": "Public cluster endpoint that can be used as source for replication" + }, + "private": { + "type": "string", + "description": "Private cluster endpoint that can be used as source for replication" + } + }, + "description": "Endpoints to use when configuring another database to replicate from this database (Make sure to use this instead of the dynamic endpoints)." + }, + "DataPersistenceOptions": { + "type": "object", + "properties": { + "dataPersistence": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataPersistenceEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "dataPersistence": [ + { + "name": "none", + "description": "None" + }, + { + "name": "aof-every-1-second", + "description": "Append only file (AOF) - fsync every 1 second" + }, + { + "name": "aof-every-write", + "description": "Append only file (AOF) - fsync every write" + }, + { + "name": "snapshot-every-1-hour", + "description": "Snapshot every 1 hour" + }, + { + "name": "snapshot-every-6-hours", + "description": "Snapshot every 6 hour" + }, + { + "name": "snapshot-every-12-hours", + "description": "Snapshot every 12 hour" + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/data-persistence", + "type": "GET" + } + ] + } + }, + "DatabaseTagCreateRequest": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Database tag key.", + "example": "environment" + }, + "value": { + "type": "string", + "description": "Database tag value.", + "example": "production" + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database tag" + }, + "DatabaseBackupConfig": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Optional. Determine if backup should be active. Default: null" + }, + "interval": { + "type": "string", + "description": "Required when active is 'true'. Defines the interval between backups. Format: 'every-x-hours', where x is one of 24, 12, 6, 4, 2, or 1. Example: \"every-4-hours\"" + }, + "backupInterval": { + "type": "string", + "readOnly": true, + "enum": [ + "EVERY_24_HOURS", + "EVERY_12_HOURS", + "EVERY_6_HOURS", + "EVERY_4_HOURS", + "EVERY_2_HOURS", + "EVERY_1_HOURS" + ] + }, + "timeUTC": { + "type": "string", + "description": "Optional. Hour when the backup starts. Available only for \"every-12-hours\" and \"every-24-hours\" backup intervals. Specified as an hour in 24-hour UTC time. Example: \"14:00\" is 2 PM UTC." + }, + "databaseBackupTimeUTC": { + "type": "string", + "readOnly": true, + "enum": [ + "HOUR_ONE", + "HOUR_TWO", + "HOUR_THREE", + "HOUR_FOUR", + "HOUR_FIVE", + "HOUR_SIX", + "HOUR_SEVEN", + "HOUR_EIGHT", + "HOUR_NINE", + "HOUR_TEN", + "HOUR_ELEVEN", + "HOUR_TWELVE" + ] + }, + "storageType": { + "type": "string", + "description": "Required when active is 'true'. Type of storage to host backup files. Can be \"aws-s3\", \"google-blob-storage\", \"azure-blob-storage\", or \"ftp\". See [Set up backup storage locations](https://redis.io/docs/latest/operate/rc/databases/back-up-data/#set-up-backup-storage-locations) to learn how to set up backup storage locations." + }, + "backupStorageType": { + "type": "string", + "readOnly": true, + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] + }, + "storagePath": { + "type": "string", + "description": "Required when active is 'true'. Path to the backup storage location." + } + }, + "description": "Optional. Changes Remote backup configuration details." + }, + "DynamicEndpoints": { + "type": "object", + "properties": { + "public": { + "type": "string" + }, + "private": { + "type": "string" + } + } + }, + "CrdbFlushRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active-Active database flush request message" + }, + "MaintenanceWindowSpec": { + "required": [ + "days", + "durationInHours", + "startHour" + ], + "type": "object", + "properties": { + "startHour": { + "type": "integer", + "description": "Starting hour of the maintenance window. Can be between '0' (12 AM in the deployment region's local time) and '23' (11 PM in the deployment region's local time).", + "format": "int32", + "example": 12 + }, + "durationInHours": { + "type": "integer", + "description": "The duration of the maintenance window in hours. Can be between 4-24 hours (or 8-24 hours if using 'ram-and-flash').", + "format": "int32", + "example": 8 + }, + "days": { + "type": "array", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", + "example": [ + "Monday", + "Wednesday" + ], + "items": { + "type": "string", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", + "example": "[\"Monday\",\"Wednesday\"]" + } + } + }, + "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided." + }, + "ActiveActiveVpcPeeringCreateGcpRequest": { + "required": [ + "sourceRegion", + "vpcNetworkName", + "vpcProjectUid" + ], + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceRegion": { + "type": "string", + "description": "Name of region to create a VPC peering from." + }, + "vpcProjectUid": { + "type": "string", + "description": "VPC project ID.", + "example": "" + }, + "vpcNetworkName": { + "type": "string", + "description": "VPC network name.", + "example": "" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "VPC peering creation request message" + }, + "SubscriptionCreateRequest": { + "required": [ + "cloudProviders", + "databases" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Optional. New subscription name.", + "example": "My new subscription" + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", + "example": false + }, + "deploymentType": { + "type": "string", + "description": "Optional. When 'single-region' or not set: Creates a single region subscription. When 'active-active': creates an Active-Active (multi-region) subscription.", + "example": "single-region", + "enum": [ + "single-region", + "active-active" + ] + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", + "format": "int32" + }, + "memoryStorage": { + "type": "string", + "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash' (also known as Auto Tiering). Default: 'ram'", + "example": "ram", + "enum": [ + "ram", + "ram-and-flash" + ] + }, + "persistentStorageEncryptionType": { + "type": "string", + "description": "Optional. Persistent storage encryption secures data at rest for database persistence. By default, disk storage is encrypted by keys managed by the cloud provider. Use 'customer-managed-key' if you want to use self-managed persistent storage encryption keys. Default: 'cloud-provider-managed-key'", + "example": "cloud-provider-managed-key", + "enum": [ + "cloud-provider-managed-key", + "customer-managed-key" + ] + }, + "persistentStorageEncryptionKeys": { + "$ref": "#/components/schemas/CustomerManagedKeyProperties" + }, + "cloudProviders": { + "type": "array", + "description": "Cloud provider, region, and networking details.", + "items": { + "$ref": "#/components/schemas/SubscriptionSpec" + } + }, + "databases": { + "type": "array", + "description": "One or more database specification(s) to create in this subscription.", + "items": { + "$ref": "#/components/schemas/SubscriptionDatabaseSpec" + } + }, + "redisVersion": { + "type": "string", + "description": "Optional. Defines the Redis version of the databases created in this specific request. It doesn't determine future databases associated with this subscription. If not set, databases will use the default Redis version. This field is deprecated and will be removed in a future API version - use the database-level redisVersion property instead.", + "example": "7.2", + "deprecated": true + }, + "publicEndpointAccess": { + "type": "boolean", + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint. Default: 'true'." + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Subscription create request" + }, + "RedisVersions": { + "type": "object", + "properties": { + "redisVersions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RedisVersion" + } + } + } + }, + "CloudAccountUpdateRequest": { + "required": [ + "accessKeyId", + "accessSecretKey", + "consolePassword", + "consoleUsername" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name", + "example": "My new Cloud Account" + }, + "cloudAccountId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "accessKeyId": { + "type": "string", + "description": "Cloud provider access key.", + "example": "****" + }, + "accessSecretKey": { + "type": "string", + "description": "Cloud provider secret key.", + "example": "****" + }, + "consoleUsername": { + "type": "string", + "description": "Cloud provider management console username.", + "example": "me@mycompany.com" + }, + "consolePassword": { + "type": "string", + "description": "Cloud provider management console password.", + "example": "****" + }, + "signInLoginUrl": { + "type": "string", + "description": "Optional. Cloud provider management console login URL.", + "example": "https://.signin.aws.amazon.com/console" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cloud Account definition" + }, + "PrivateLinkCreateRequest": { + "required": [ + "principal", + "shareName", + "type" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "shareName": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "Name of the resource share", + "example": "my-redis-share" + }, + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" + }, + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] + }, + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link create request" + }, + "SubscriptionPricings": { + "type": "object", + "properties": { + "pricing": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubscriptionPricing" + } + } + } + }, + "SubscriptionPricing": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "typeDetails": { + "type": "string" + }, + "quantity": { + "type": "integer", + "format": "int32" + }, + "quantityMeasurement": { + "type": "string" + }, + "pricePerUnit": { + "type": "number", + "format": "double" + }, + "priceCurrency": { + "type": "string" + }, + "pricePeriod": { + "type": "string" + }, + "region": { "type": "string" } } }, - "CloudTags": { + "ReplicaOfSpec": { + "required": [ + "syncSources" + ], + "type": "object", + "properties": { + "syncSources": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details.", + "items": { + "$ref": "#/components/schemas/DatabaseSyncSourceSpec" + } + } + }, + "description": "Optional. Changes Replica Of (also known as Active-Passive) configuration details." + }, + "PrivateLinkActiveActivePrincipalsDeleteRequest": { + "required": [ + "principal", + "regionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, + "principal": { + "type": "string", + "description": "An AWS account ID or ARN to remove from the private link", + "example": "123456789012" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Request to remove principals from private link for Active-Active subscription" + }, + "DatabaseThroughputSpec": { + "required": [ + "by", + "value" + ], + "type": "object", + "properties": { + "by": { + "type": "string", + "description": "Throughput measurement method. Use 'operations-per-second' for all new databases.", + "enum": [ + "operations-per-second", + "number-of-shards" + ] + }, + "value": { + "type": "integer", + "description": "Throughput value in the selected measurement method.", + "format": "int64", + "example": 10000 + } + }, + "description": "Optional. Throughput measurement method." + }, + "FixedDatabase": { "type": "object", "properties": { + "databaseId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "protocol": { + "type": "string", + "enum": [ + "redis", + "memcached", + "stack" + ] + }, + "provider": { + "type": "string" + }, + "region": { + "type": "string" + }, + "redisVersion": { + "type": "string" + }, + "redisVersionCompliance": { + "type": "string", + "deprecated": true + }, + "respVersion": { + "type": "string", + "enum": [ + "resp2", + "resp3" + ] + }, + "status": { + "type": "string" + }, + "planMemoryLimit": { + "type": "number", + "format": "double" + }, + "planDatasetSize": { + "type": "number", + "format": "double" + }, + "memoryLimitMeasurementUnit": { + "type": "string" + }, + "memoryLimitInGb": { + "type": "number", + "format": "double" + }, + "datasetSizeInGb": { + "type": "number", + "format": "double" + }, + "memoryUsedInMb": { + "type": "number", + "format": "double" + }, + "networkMonthlyUsageInByte": { + "type": "number", + "format": "double" + }, + "memoryStorage": { + "type": "string", + "enum": [ + "ram", + "ram-and-flash" + ] + }, + "redisFlex": { + "type": "boolean" + }, + "supportOSSClusterApi": { + "type": "boolean" + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean" + }, + "dataPersistence": { + "type": "string", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "replication": { + "type": "boolean" + }, + "dataEvictionPolicy": { + "type": "string", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "activatedOn": { + "type": "string", + "format": "date-time" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "publicEndpoint": { + "type": "string" + }, + "privateEndpoint": { + "type": "string" + }, + "dynamicEndpoints": { + "$ref": "#/components/schemas/DynamicEndpoints" + }, + "replicaAsSourceEndpoints": { + "$ref": "#/components/schemas/ReplicaAsSourceEndpoints" + }, "links": { "type": "array", "items": { @@ -19323,75 +28148,127 @@ "type": "string" } } - }, - "accountId": { - "type": "integer", - "format": "int32" } }, - "description": "Redis list of database tags", "example": { - "accountId": 40131, - "tags": [ + "databaseId": 51324587, + "name": "bdb", + "protocol": "stack", + "provider": "AWS", + "region": "us-east-1", + "status": "draft", + "planMemoryLimit": 250, + "respVersion": "resp2", + "memoryLimitMeasurementUnit": "MB", + "memoryUsedInMb": 7, + "memoryStorage": "ram", + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "noeviction", + "clustering": { + "enabled": false, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "defaultUserEnabled": true, + "password": "myCustomPassword", + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18534, + "name": "RediSearch", + "capabilityName": "Search and query", + "version": "2.2.6", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + }, { - "key": "environment", - "value": "production", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [] + "id": 18535, + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "version": "2.2.12", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] }, { - "key": "owner", - "value": "Clifford O'neill", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [] + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "id": 18537, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.6.8", + "description": "Time-Series data structure for Redis", + "parameters": [] } ], - "links": [ + "alerts": [ { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags", - "type": "GET" + "name": "connections-limit", + "value": 80, + "defaultValue": 80 } - ] - } - }, - "RedisVersion": { - "type": "object", - "properties": { - "version": { - "type": "string" - }, - "eolDate": { - "type": "string", - "format": "date" - }, - "isPreview": { - "type": "boolean" + ], + "backup": { + "remoteBackupEnabled": false }, - "isDefault": { - "type": "boolean" - } + "links": [] } }, - "AclRoleCreateRequest": { + "DatabaseImportRequest": { "required": [ - "name", - "redisRules" + "importFromUri", + "sourceType" ], "type": "object", "properties": { - "name": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceType": { "type": "string", - "description": "Database access role name.", - "example": "ACL-role-example" + "description": "Type of storage from which to import the database RDB file or Redis data.", + "example": "http", + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] }, - "redisRules": { + "importFromUri": { "type": "array", - "description": "A list of Redis ACL rules to assign to this database access role.", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", "items": { - "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + "type": "string", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." } }, "commandType": { @@ -19399,123 +28276,145 @@ "readOnly": true } }, - "description": "ACL role create request" + "description": "Database import request" }, - "DatabaseBackupRequest": { + "DatabaseUpgradeRedisVersionRequest": { + "required": [ + "targetRedisVersion" + ], "type": "object", "properties": { - "subscriptionId": { + "databaseId": { "type": "integer", "format": "int32", "readOnly": true }, - "databaseId": { + "subscriptionId": { "type": "integer", "format": "int32", "readOnly": true }, - "regionName": { - "type": "string", - "description": "Required for Active-Active databases. Name of the cloud provider region to back up. When backing up an Active-Active database, you must back up each region separately." - }, - "adhocBackupPath": { + "targetRedisVersion": { "type": "string", - "description": "Optional. Manually backs up data to this location, instead of the set 'remoteBackup' location.", - "example": "s3://" + "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", + "example": "7.4" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Database backup request message" + "description": "Upgrades the specified Pro database to a later Redis version." }, - "ReplicaAsSourceEndpoints": { + "CustomerManagedKey": { + "required": [ + "resourceName" + ], "type": "object", "properties": { - "public": { + "resourceName": { "type": "string", - "description": "Public cluster endpoint that can be used as source for replication" + "description": "The resource name of the customer managed key.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" }, - "private": { + "region": { "type": "string", - "description": "Private cluster endpoint that can be used as source for replication" + "description": "(Required for Active-Active subscriptions only) Region for the customer managed key as defined by the cloud provider." } }, - "description": "Endpoints to use when configuring another database to replicate from this database (Make sure to use this instead of the dynamic endpoints)." + "description": "Object representing a customer managed key (CMK), along with the region it is associated to." }, - "DataPersistenceOptions": { + "ActiveActiveRegionCreateRequest": { "type": "object", "properties": { - "dataPersistence": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "region": { + "type": "string", + "description": "Name of region to add as defined by the cloud provider." + }, + "vpcId": { + "type": "string", + "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format and must exist within the hosting account.", + "example": "vpc-0125be68a4625884ad" + }, + "deploymentCIDR": { + "type": "string", + "description": "Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses.", + "example": "10.0.0.0/24" + }, + "subnetIds": { "type": "array", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']", "items": { - "$ref": "#/components/schemas/DataPersistenceEntry" + "type": "string", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']" } }, - "links": { + "securityGroupId": { + "type": "string", + "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account.", + "example": "sg-0125be68a4625884ad" + }, + "multipleAvailabilityZones": { + "type": "boolean", + "description": "Optional. Support deployment on multiple availability zones within the selected region. When omitted, defaults to true unless the region is explicitly marked as not supporting multi-AZ.", + "example": false + }, + "preferredAvailabilityZones": { "type": "array", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region.", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "string", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region." + } + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan, and does not create any resources. Default: 'false'", + "example": false + }, + "databases": { + "type": "array", + "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database", + "items": { + "$ref": "#/components/schemas/CrdbRegionSpec" } + }, + "respVersion": { + "type": "string", + "description": "Optional. RESP version must be compatible with Redis version.", + "example": "resp3", + "deprecated": true, + "enum": [ + "resp2", + "resp3" + ] + }, + "customerManagedKeyResourceName": { + "type": "string", + "description": "Required for subscriptions where 'persistentStorageEncryptionType' is 'customer-managed-key'. The resource name of the customer-managed encryption key for the region.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "example": { - "dataPersistence": [ - { - "name": "none", - "description": "None" - }, - { - "name": "aof-every-1-second", - "description": "Append only file (AOF) - fsync every 1 second" - }, - { - "name": "aof-every-write", - "description": "Append only file (AOF) - fsync every write" - }, - { - "name": "snapshot-every-1-hour", - "description": "Snapshot every 1 hour" - }, - { - "name": "snapshot-every-6-hours", - "description": "Snapshot every 6 hour" - }, - { - "name": "snapshot-every-12-hours", - "description": "Snapshot every 12 hour" - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/data-persistence", - "type": "GET" - } - ] - } + "description": "Active active region creation request message" }, - "DatabaseTagCreateRequest": { + "FixedDatabaseImportRequest": { "required": [ - "key", - "value" + "importFromUri", + "sourceType" ], "type": "object", "properties": { - "key": { - "type": "string", - "description": "Database tag key.", - "example": "environment" - }, - "value": { - "type": "string", - "description": "Database tag value.", - "example": "production" - }, "subscriptionId": { "type": "integer", "format": "int32", @@ -19526,65 +28425,10 @@ "format": "int32", "readOnly": true }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Database tag" - }, - "DatabaseBackupConfig": { - "type": "object", - "properties": { - "active": { - "type": "boolean", - "description": "Optional. Determine if backup should be active. Default: null" - }, - "interval": { - "type": "string", - "description": "Required when active is 'true'. Defines the interval between backups. Format: 'every-x-hours', where x is one of 24, 12, 6, 4, 2, or 1. Example: \"every-4-hours\"" - }, - "backupInterval": { - "type": "string", - "readOnly": true, - "enum": [ - "EVERY_24_HOURS", - "EVERY_12_HOURS", - "EVERY_6_HOURS", - "EVERY_4_HOURS", - "EVERY_2_HOURS", - "EVERY_1_HOURS" - ] - }, - "timeUTC": { - "type": "string", - "description": "Optional. Hour when the backup starts. Available only for \"every-12-hours\" and \"every-24-hours\" backup intervals. Specified as an hour in 24-hour UTC time. Example: \"14:00\" is 2 PM UTC." - }, - "databaseBackupTimeUTC": { - "type": "string", - "readOnly": true, - "enum": [ - "HOUR_ONE", - "HOUR_TWO", - "HOUR_THREE", - "HOUR_FOUR", - "HOUR_FIVE", - "HOUR_SIX", - "HOUR_SEVEN", - "HOUR_EIGHT", - "HOUR_NINE", - "HOUR_TEN", - "HOUR_ELEVEN", - "HOUR_TWELVE" - ] - }, - "storageType": { - "type": "string", - "description": "Required when active is 'true'. Type of storage to host backup files. Can be \"aws-s3\", \"google-blob-storage\", \"azure-blob-storage\", or \"ftp\". See [Set up backup storage locations](https://redis.io/docs/latest/operate/rc/databases/back-up-data/#set-up-backup-storage-locations) to learn how to set up backup storage locations." - }, - "backupStorageType": { + "sourceType": { "type": "string", - "readOnly": true, + "description": "Type of storage from which to import the database RDB file or Redis data.", + "example": "http", "enum": [ "http", "redis", @@ -19594,25 +28438,25 @@ "google-blob-storage" ] }, - "storagePath": { + "importFromUri": { + "type": "array", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "items": { + "type": "string", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + } + }, + "commandType": { "type": "string", - "description": "Required when active is 'true'. Path to the backup storage location." + "readOnly": true } }, - "description": "Optional. Changes Remote backup configuration details." - }, - "DynamicEndpoints": { - "type": "object", - "properties": { - "public": { - "type": "string" - }, - "private": { - "type": "string" - } - } + "description": "Database import request" }, - "CrdbFlushRequest": { + "PrivateLinkPrincipalsDeleteRequest": { + "required": [ + "principal" + ], "type": "object", "properties": { "subscriptionId": { @@ -19620,2392 +28464,3649 @@ "format": "int32", "readOnly": true }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "principal": { + "type": "string", + "description": "An AWS account ID or ARN to remove from the private link", + "example": "123456789012" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Active-Active database flush request message" + "description": "Private Link principals delete request" }, - "MaintenanceWindowSpec": { + "CustomerManagedKeyProperties": { "required": [ - "days", - "durationInHours", - "startHour" + "customerManagedKeys" ], "type": "object", "properties": { - "startHour": { - "type": "integer", - "description": "Starting hour of the maintenance window. Can be between '0' (12 AM in the deployment region's local time) and '23' (11 PM in the deployment region's local time).", - "format": "int32", - "example": 12 - }, - "durationInHours": { - "type": "integer", - "description": "The duration of the maintenance window in hours. Can be between 4-24 hours (or 8-24 hours if using 'ram-and-flash').", - "format": "int32", - "example": 8 - }, - "days": { + "customerManagedKeys": { "type": "array", - "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", - "example": [ - "Monday", - "Wednesday" - ], + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", "items": { - "type": "string", - "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", - "example": "[\"Monday\",\"Wednesday\"]" + "$ref": "#/components/schemas/CustomerManagedKey" } + }, + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] } }, - "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided." + "description": "Optional. Contains information about the keys used for each region. Can be used only with external cloud account" }, - "ActiveActiveVpcPeeringCreateGcpRequest": { - "required": [ - "sourceRegion", - "vpcNetworkName", - "vpcProjectUid" - ], + "VpcPeeringCreateBaseRequest": { "type": "object", "properties": { "provider": { "type": "string" }, - "subscriptionId": { - "type": "integer", - "format": "int32", + "commandType": { + "type": "string", "readOnly": true + } + }, + "description": "Vpc peering creation request message", + "oneOf": [ + { + "$ref": "#/components/schemas/VpcPeeringCreateAwsRequest" }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." + { + "$ref": "#/components/schemas/VpcPeeringCreateGcpRequest" + } + ] + }, + "ComposeDraftAdvanced": { + "example": { + "processor": "{}" + }, + "properties": { + "processor": { + "type": "object" + } + }, + "type": "object" + }, + "ComposeDraftSource": { + "oneOf": [ + { + "$ref": "#/components/schemas/PostgresqlSource" }, - "vpcProjectUid": { - "type": "string", - "description": "VPC project ID.", - "example": "" + { + "$ref": "#/components/schemas/MySqlSource" }, - "vpcNetworkName": { - "type": "string", - "description": "VPC network name.", - "example": "" + { + "$ref": "#/components/schemas/MariaDbSource" + }, + { + "$ref": "#/components/schemas/OracleSource" + }, + { + "$ref": "#/components/schemas/SqlServerSource" + }, + { + "$ref": "#/components/schemas/MongodbSource" + }, + { + "$ref": "#/components/schemas/SnowflakeSource" + } + ], + "type": "object" + }, + "ComposeDraftSourceBase": { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" }, - "commandType": { - "type": "string", - "readOnly": true + "sourceAdvanced": { + "type": "object" + }, + "sinkAdvanced": { + "type": "object" } }, - "description": "VPC peering creation request message" + "type": "object" }, - "SubscriptionCreateRequest": { - "required": [ - "cloudProviders", - "databases" - ], - "type": "object", + "ComposeDraftTarget": { + "example": { + "targetBdbId": 1 + }, "properties": { - "name": { - "type": "string", - "description": "Optional. New subscription name.", - "example": "My new subscription" + "targetBdbId": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ComposeDraftUpsertRequest": { + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", - "example": false + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null }, - "deploymentType": { - "type": "string", - "description": "Optional. When 'single-region' or not set: Creates a single region subscription. When 'active-active': creates an Active-Active (multi-region) subscription.", - "example": "single-region", - "enum": [ - "single-region", - "active-active" - ] + "sourceName": "sourceName", + "clientData": { + "key": "{}" }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "target": { + "targetBdbId": 1 + } + }, + "properties": { + "targetDataType": { "enum": [ - "credit-card", - "marketplace" - ] + "hash", + "json" + ], + "type": "string" }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", - "format": "int32" + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" }, - "memoryStorage": { - "type": "string", - "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash' (also known as Auto Tiering). Default: 'ram'", - "example": "ram", - "enum": [ - "ram", - "ram-and-flash" - ] + "sourceName": { + "type": "string" }, - "persistentStorageEncryptionType": { - "type": "string", - "description": "Optional. Persistent storage encryption secures data at rest for database persistence. By default, disk storage is encrypted by keys managed by the cloud provider. Use 'customer-managed-key' if you want to use self-managed persistent storage encryption keys. Default: 'cloud-provider-managed-key'", - "example": "cloud-provider-managed-key", - "enum": [ - "cloud-provider-managed-key", - "customer-managed-key" - ] + "pipelineName": { + "type": "string" }, - "persistentStorageEncryptionKeys": { - "$ref": "#/components/schemas/CustomerManagedKeyProperties" + "pipelineDescription": { + "type": "string" }, - "cloudProviders": { - "type": "array", - "description": "Cloud provider, region, and networking details.", - "items": { - "$ref": "#/components/schemas/SubscriptionSpec" - } + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" }, - "databases": { - "type": "array", - "description": "One or more database specification(s) to create in this subscription.", - "items": { - "$ref": "#/components/schemas/SubscriptionDatabaseSpec" - } + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" }, - "redisVersion": { - "type": "string", - "description": "Optional. Defines the Redis version of the databases created in this specific request. It doesn't determine future databases associated with this subscription. If not set, databases will use the default Redis version. This field is deprecated and will be removed in a future API version - use the database-level redisVersion property instead.", - "example": "7.2", - "deprecated": true + "schemas": { + "items": { + "$ref": "#/components/schemas/Schema" + }, + "type": "array" }, - "publicEndpointAccess": { - "type": "boolean", - "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint. Default: 'true'." + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" + }, + "type": "array" }, - "commandType": { - "type": "string", - "readOnly": true + "clientData": { + "additionalProperties": { + "type": "object" + }, + "type": "object" } }, - "description": "Subscription create request" + "type": "object" }, - "RedisVersions": { - "type": "object", - "properties": { - "redisVersions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RedisVersion" - } + "Job": { + "example": { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" } - } - }, - "CloudAccountUpdateRequest": { - "required": [ - "accessKeyId", - "accessSecretKey", - "consolePassword", - "consoleUsername" - ], - "type": "object", + }, "properties": { "name": { - "type": "string", - "description": "name", - "example": "My new Cloud Account" - }, - "cloudAccountId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "accessKeyId": { - "type": "string", - "description": "Cloud provider access key.", - "example": "****" - }, - "accessSecretKey": { - "type": "string", - "description": "Cloud provider secret key.", - "example": "****" - }, - "consoleUsername": { - "type": "string", - "description": "Cloud provider management console username.", - "example": "me@mycompany.com" + "type": "string" }, - "consolePassword": { - "type": "string", - "description": "Cloud provider management console password.", - "example": "****" + "file": { + "type": "string" }, - "signInLoginUrl": { - "type": "string", - "description": "Optional. Cloud provider management console login URL.", - "example": "https://.signin.aws.amazon.com/console" + "error": { + "$ref": "#/components/schemas/WebError" }, - "commandType": { - "type": "string", - "readOnly": true + "rdiJob": { + "additionalProperties": true, + "type": "object" } }, - "description": "Cloud Account definition" - }, - "PrivateLinkCreateRequest": { "required": [ - "principal", - "shareName", - "type" + "file", + "name" ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "type": "object" + }, + "MariaDbSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "shareName": { - "maxLength": 64, - "minLength": 0, - "type": "string", - "description": "Name of the resource share", - "example": "my-redis-share" + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "serverId": { + "format": "int32", + "type": "integer" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "MongodbSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "connectionString": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "MySqlSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "serverId": { + "format": "int32", + "type": "integer" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "OracleSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "pdb": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "PostgresqlSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "commandType": { - "type": "string", - "readOnly": true + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" } + ], + "example": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null }, - "description": "Private Link create request" + "type": "object" }, - "SubscriptionPricings": { - "type": "object", - "properties": { - "pricing": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriptionPricing" - } - } - } + "Properties": { + "type": "object" }, - "SubscriptionPricing": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "typeDetails": { - "type": "string" - }, - "quantity": { - "type": "integer", - "format": "int32" - }, - "quantityMeasurement": { - "type": "string" - }, - "pricePerUnit": { - "type": "number", - "format": "double" + "RdiPipelineError": { + "example": { + "code": "code", + "details": { + "key": "{}" }, - "priceCurrency": { + "message": "message" + }, + "properties": { + "code": { "type": "string" }, - "pricePeriod": { + "message": { "type": "string" }, - "region": { - "type": "string" + "details": { + "additionalProperties": { + "type": "object" + }, + "type": "object" } - } + }, + "type": "object" }, - "ReplicaOfSpec": { - "required": [ - "syncSources" - ], - "type": "object", - "properties": { - "syncSources": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details.", - "items": { - "$ref": "#/components/schemas/DatabaseSyncSourceSpec" + "Schema": { + "example": { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" } - } + ], + "name": "name" }, - "description": "Optional. Changes Replica Of (also known as Active-Passive) configuration details." - }, - "PrivateLinkActiveActivePrincipalsDeleteRequest": { - "required": [ - "principal", - "regionId" - ], - "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true - }, - "principal": { - "type": "string", - "description": "An AWS account ID or ARN to remove from the private link", - "example": "123456789012" + "name": { + "type": "string" }, - "commandType": { - "type": "string", - "readOnly": true + "tables": { + "items": { + "$ref": "#/components/schemas/Table" + }, + "type": "array" } }, - "description": "Request to remove principals from private link for Active-Active subscription" - }, - "DatabaseThroughputSpec": { "required": [ - "by", - "value" + "name" ], - "type": "object", - "properties": { - "by": { - "type": "string", - "description": "Throughput measurement method. Use 'operations-per-second' for all new databases.", - "enum": [ - "operations-per-second", - "number-of-shards" - ] + "type": "object" + }, + "SnowflakeSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "value": { - "type": "integer", - "description": "Throughput value in the selected measurement method.", - "format": "int64", - "example": 10000 + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "accountIdentifier": { + "type": "string" + }, + "warehouse": { + "type": "string" + }, + "role": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" } - }, - "description": "Optional. Throughput measurement method." + ], + "type": "object" }, - "FixedDatabase": { - "type": "object", - "properties": { - "databaseId": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "protocol": { - "type": "string", - "enum": [ - "redis", - "memcached", - "stack" - ] - }, - "provider": { - "type": "string" - }, - "region": { - "type": "string" + "SqlServerSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "redisVersion": { + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "Table": { + "example": { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + "properties": { + "name": { "type": "string" }, - "redisVersionCompliance": { - "type": "string", - "deprecated": true - }, - "respVersion": { - "type": "string", - "enum": [ - "resp2", - "resp3" - ] + "columns": { + "items": { + "$ref": "#/components/schemas/TableColumn" + }, + "type": "array" }, - "status": { + "snapshot_sql": { "type": "string" - }, - "planMemoryLimit": { - "type": "number", - "format": "double" - }, - "planDatasetSize": { - "type": "number", - "format": "double" - }, - "memoryLimitMeasurementUnit": { + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "TableColumn": { + "example": { + "name": "name", + "uniqueConstraint": true + }, + "properties": { + "name": { "type": "string" }, - "memoryLimitInGb": { - "type": "number", - "format": "double" - }, - "datasetSizeInGb": { - "type": "number", - "format": "double" - }, - "memoryUsedInMb": { - "type": "number", - "format": "double" - }, - "networkMonthlyUsageInByte": { - "type": "number", - "format": "double" - }, - "memoryStorage": { - "type": "string", - "enum": [ - "ram", - "ram-and-flash" - ] - }, - "redisFlex": { - "type": "boolean" - }, - "supportOSSClusterApi": { - "type": "boolean" - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean" - }, - "dataPersistence": { - "type": "string", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "replication": { + "uniqueConstraint": { "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "WebError": { + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "properties": { + "timestamp": { + "format": "int64", + "type": "integer" }, - "dataEvictionPolicy": { - "type": "string", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "activatedOn": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" + "status": { + "format": "int32", + "type": "integer" }, - "publicEndpoint": { + "code": { "type": "string" }, - "privateEndpoint": { + "message": { "type": "string" }, - "dynamicEndpoints": { - "$ref": "#/components/schemas/DynamicEndpoints" - }, - "replicaAsSourceEndpoints": { - "$ref": "#/components/schemas/ReplicaAsSourceEndpoints" + "params": { + "type": "string" }, - "links": { - "type": "array", + "errors": { "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } + "$ref": "#/components/schemas/RdiPipelineError" + }, + "type": "array" } }, + "type": "object" + }, + "ComposeDraftResponse": { "example": { - "databaseId": 51324587, - "name": "bdb", - "protocol": "stack", - "provider": "AWS", - "region": "us-east-1", - "status": "draft", - "planMemoryLimit": 250, - "respVersion": "resp2", - "memoryLimitMeasurementUnit": "MB", - "memoryUsedInMb": 7, - "memoryStorage": "ram", - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "noeviction", - "clustering": { - "enabled": false, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" + "draftId": "draftId", + "advanced": { + "processor": "{}" + }, + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 }, - { - "ordinal": 1, - "pattern": "(?.*)" + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "target": { + "targetBdbId": 1 + }, + "pipelineName": "pipelineName", + "createdAt": "2000-01-23T04:56:07.000+00:00", + "pipelineDescription": "pipelineDescription", + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "properties": { + "draftId": { + "type": "string" + }, + "targetDataType": { + "enum": [ + "hash", + "json" ], - "hashingPolicy": "standard" + "type": "string" }, - "security": { - "defaultUserEnabled": true, - "password": "myCustomPassword", - "sourceIps": [ - "0.0.0.0/0" - ] + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" }, - "modules": [ - { - "id": 18534, - "name": "RediSearch", - "capabilityName": "Search and query", - "version": "2.2.6", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] + "sourceName": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "pipelineDescription": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "items": { + "$ref": "#/components/schemas/Schema" }, - { - "id": 18535, - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "version": "2.2.12", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] + "type": "array" + }, + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" }, - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] + "type": "array" + }, + "clientData": { + "additionalProperties": { + "type": "object" }, - { - "id": 18537, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.6.8", - "description": "Time-Series data structure for Redis", - "parameters": [] - } - ], - "alerts": [ - { - "name": "connections-limit", - "value": 80, - "defaultValue": 80 - } - ], - "backup": { - "remoteBackupEnabled": false + "type": "object" }, - "links": [] - } + "createdAt": { + "format": "date-time", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" }, - "DatabaseImportRequest": { - "required": [ - "importFromUri", - "sourceType" - ], - "type": "object", + "Advanced": { + "example": { + "sink": "{}", + "source": "{}" + }, "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "source": { + "type": "object" }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "sink": { + "type": "object" + } + }, + "type": "object" + }, + "Aws": { + "example": { + "privateLink": { + "endpoint": { + "vpceId": "vpceId" + }, + "serviceName": "serviceName" + } + }, + "properties": { + "privateLink": { + "$ref": "#/components/schemas/PrivateLink" + } + }, + "type": "object" + }, + "Endpoint": { + "example": { + "vpceId": "vpceId" + }, + "properties": { + "vpceId": { + "type": "string" + } + }, + "type": "object" + }, + "Pipeline": { + "example": { + "name": "name", + "deploymentCIDR": "deploymentCIDR" + }, + "properties": { + "name": { + "type": "string" }, - "sourceType": { - "type": "string", - "description": "Type of storage from which to import the database RDB file or Redis data.", - "example": "http", - "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" - ] + "deploymentCIDR": { + "type": "string" + } + }, + "type": "object" + }, + "PipelineInfraDto": { + "example": { + "pipeline": { + "name": "name", + "deploymentCIDR": "deploymentCIDR" }, - "importFromUri": { - "type": "array", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", - "items": { - "type": "string", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." - } + "source": { + "dbPass": "dbPass", + "databases": "databases", + "connectivityMode": "privateLink", + "advanced": { + "sink": "{}", + "source": "{}" + }, + "dbUseMTLS": true, + "dbType": "mysql", + "datasetSizeGB": 0, + "dbHost": "dbHost", + "dbServerId": 1, + "pdb": "pdb", + "dbPort": 6, + "dbSecretsARN": "dbSecretsARN", + "dbUseTLS": true, + "dbClientCertARN": "dbClientCertARN", + "dbCaCertARN": "dbCaCertARN", + "dbUser": "dbUser", + "dbConnectionString": "dbConnectionString", + "id": "id", + "dbClientKeyARN": "dbClientKeyARN", + "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" }, - "commandType": { - "type": "string", - "readOnly": true + "aws": { + "privateLink": { + "endpoint": { + "vpceId": "vpceId" + }, + "serviceName": "serviceName" + } } }, - "description": "Database import request" - }, - "DatabaseUpgradeRedisVersionRequest": { - "required": [ - "targetRedisVersion" - ], - "type": "object", "properties": { - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "pipeline": { + "$ref": "#/components/schemas/Pipeline" }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "aws": { + "$ref": "#/components/schemas/Aws" }, - "targetRedisVersion": { - "type": "string", - "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", - "example": "7.4" + "source": { + "$ref": "#/components/schemas/Source" + } + }, + "type": "object" + }, + "PrivateLink": { + "example": { + "endpoint": { + "vpceId": "vpceId" }, - "commandType": { - "type": "string", - "readOnly": true + "serviceName": "serviceName" + }, + "properties": { + "serviceName": { + "type": "string" + }, + "endpoint": { + "$ref": "#/components/schemas/Endpoint" } }, - "description": "Upgrades the specified Pro database to a later Redis version." + "type": "object" }, - "CustomerManagedKey": { - "required": [ - "resourceName" - ], - "type": "object", + "Source": { + "example": { + "dbPass": "dbPass", + "databases": "databases", + "connectivityMode": "privateLink", + "advanced": { + "sink": "{}", + "source": "{}" + }, + "dbUseMTLS": true, + "dbType": "mysql", + "datasetSizeGB": 0, + "dbHost": "dbHost", + "dbServerId": 1, + "pdb": "pdb", + "dbPort": 6, + "dbSecretsARN": "dbSecretsARN", + "dbUseTLS": true, + "dbClientCertARN": "dbClientCertARN", + "dbCaCertARN": "dbCaCertARN", + "dbUser": "dbUser", + "dbConnectionString": "dbConnectionString", + "id": "id", + "dbClientKeyARN": "dbClientKeyARN", + "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" + }, "properties": { - "resourceName": { - "type": "string", - "description": "The resource name of the customer managed key.", - "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + "connectivityMode": { + "enum": [ + "privateLink", + "publicEndpoint" + ], + "type": "string" + }, + "id": { + "type": "string" + }, + "dbType": { + "enum": [ + "mysql", + "mariadb", + "oracle", + "sqlserver", + "postgresql", + "mongodb", + "snowflake" + ], + "type": "string" }, - "region": { - "type": "string", - "description": "(Required for Active-Active subscriptions only) Region for the customer managed key as defined by the cloud provider." - } - }, - "description": "Object representing a customer managed key (CMK), along with the region it is associated to." - }, - "ActiveActiveRegionCreateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", + "datasetSizeGB": { "format": "int32", - "readOnly": true + "type": "integer" }, - "region": { - "type": "string", - "description": "Name of region to add as defined by the cloud provider." + "dbSecretsARN": { + "type": "string" }, - "vpcId": { - "type": "string", - "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format and must exist within the hosting account.", - "example": "vpc-0125be68a4625884ad" + "dbUseTLS": { + "type": "boolean" }, - "deploymentCIDR": { - "type": "string", - "description": "Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses.", - "example": "10.0.0.0/24" + "dbUseMTLS": { + "type": "boolean" }, - "subnetIds": { - "type": "array", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']", - "items": { - "type": "string", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']" - } + "dbCaCertARN": { + "type": "string" }, - "securityGroupId": { - "type": "string", - "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account.", - "example": "sg-0125be68a4625884ad" + "dbClientCertARN": { + "type": "string" }, - "multipleAvailabilityZones": { - "type": "boolean", - "description": "Optional. Support deployment on multiple availability zones within the selected region. When omitted, defaults to true unless the region is explicitly marked as not supporting multi-AZ.", - "example": false + "dbClientKeyARN": { + "type": "string" }, - "preferredAvailabilityZones": { - "type": "array", - "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region.", - "items": { - "type": "string", - "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region." - } + "dbClientKeyPasswordARN": { + "type": "string" }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan, and does not create any resources. Default: 'false'", - "example": false + "dbPort": { + "format": "int32", + "type": "integer" + }, + "dbServerId": { + "format": "int32", + "type": "integer" + }, + "dbConnectionString": { + "type": "string" }, "databases": { - "type": "array", - "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database", - "items": { - "$ref": "#/components/schemas/CrdbRegionSpec" - } + "type": "string" }, - "respVersion": { - "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", - "example": "resp3", - "deprecated": true, - "enum": [ - "resp2", - "resp3" - ] + "pdb": { + "type": "string" }, - "customerManagedKeyResourceName": { - "type": "string", - "description": "Required for subscriptions where 'persistentStorageEncryptionType' is 'customer-managed-key'. The resource name of the customer-managed encryption key for the region.", - "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + "advanced": { + "$ref": "#/components/schemas/Advanced" }, - "commandType": { - "type": "string", - "readOnly": true + "dbHost": { + "type": "string" + }, + "dbUser": { + "type": "string" + }, + "dbPass": { + "type": "string" } }, - "description": "Active active region creation request message" + "type": "object" }, - "FixedDatabaseImportRequest": { - "required": [ - "importFromUri", - "sourceType" - ], - "type": "object", + "PipelineConfigAdvanced": { + "example": { + "processor": "{}" + }, "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "processor": { + "type": "object" + } + }, + "type": "object" + }, + "PipelineConfigDto": { + "example": { + "advanced": { + "processor": "{}" }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "definitionType": "predefined" + }, + "properties": { + "targetDataType": { + "enum": [ + "hash", + "json" + ], + "type": "string" }, - "sourceType": { - "type": "string", - "description": "Type of storage from which to import the database RDB file or Redis data.", - "example": "http", + "definitionType": { "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" - ] + "predefined", + "manual" + ], + "type": "string" }, - "importFromUri": { - "type": "array", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "schemas": { "items": { - "type": "string", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + "$ref": "#/components/schemas/Schema" + }, + "type": "array" + }, + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" + }, + "type": "array" + }, + "advanced": { + "$ref": "#/components/schemas/PipelineConfigAdvanced" + } + }, + "required": [ + "definitionType", + "targetDataType" + ], + "type": "object" + }, + "PipelineConfigJobsResponseDto": { + "example": { + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } } - }, - "commandType": { - "type": "string", - "readOnly": true + ] + }, + "properties": { + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" + }, + "type": "array" } }, - "description": "Database import request" + "type": "object" }, - "PrivateLinkPrincipalsDeleteRequest": { - "required": [ - "principal" - ], - "type": "object", + "EulaAcceptanceResponseDto": { + "example": { + "accepted": true, + "acceptedAt": "2000-01-23T04:56:07.000+00:00" + }, "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "principal": { - "type": "string", - "description": "An AWS account ID or ARN to remove from the private link", - "example": "123456789012" + "accepted": { + "type": "boolean" }, - "commandType": { - "type": "string", - "readOnly": true + "acceptedAt": { + "format": "date-time", + "type": "string" } }, - "description": "Private Link principals delete request" + "type": "object" }, - "CustomerManagedKeyProperties": { - "required": [ - "customerManagedKeys" - ], - "type": "object", + "WorkspaceCreateRequest": { + "example": { + "cidr": "cidr" + }, "properties": { - "customerManagedKeys": { - "type": "array", - "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", - "items": { - "$ref": "#/components/schemas/CustomerManagedKey" - } - }, - "deletionGracePeriod": { - "type": "string", - "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", - "example": "alerts-only", - "enum": [ - "alerts-only", - "immediate", - "15-minutes", - "30-minutes", - "1-hour", - "4-hours", - "8-hours", - "12-hours", - "24-hours" - ] + "cidr": { + "type": "string" } }, - "description": "Optional. Contains information about the keys used for each region. Can be used only with external cloud account" + "type": "object" }, - "VpcPeeringCreateBaseRequest": { - "type": "object", + "TaskLink": { + "example": { + "href": "href", + "type": "type" + }, "properties": { - "provider": { + "href": { "type": "string" }, - "commandType": { - "type": "string", - "readOnly": true + "type": { + "type": "string" } }, - "description": "Vpc peering creation request message", - "oneOf": [ - { - "$ref": "#/components/schemas/VpcPeeringCreateAwsRequest" + "type": "object" + }, + "TaskLinks": { + "example": { + "task": { + "href": "href", + "type": "type" }, - { - "$ref": "#/components/schemas/VpcPeeringCreateGcpRequest" + "resource": { + "href": "href", + "type": "type" } - ] - }, - "ComposeDraftAdvanced": { - "type": "object", + }, "properties": { - "processor": { - "$ref": "#/components/schemas/Properties" - } - } - }, - "ComposeDraftSource": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/PostgresqlSource" - }, - { - "$ref": "#/components/schemas/MySqlSource" - }, - { - "$ref": "#/components/schemas/MariaDbSource" - }, - { - "$ref": "#/components/schemas/OracleSource" - }, - { - "$ref": "#/components/schemas/SqlServerSource" - }, - { - "$ref": "#/components/schemas/MongodbSource" + "task": { + "$ref": "#/components/schemas/TaskLink" }, - { - "$ref": "#/components/schemas/SnowflakeSource" + "resource": { + "$ref": "#/components/schemas/TaskLink" } - ] + }, + "type": "object" }, - "ComposeDraftSourceBase": { - "type": "object", + "WorkspaceTaskResponse": { + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, "properties": { - "name": { + "taskId": { "type": "string" }, - "endpointId": { + "commandType": { "type": "string" }, - "host": { + "status": { "type": "string" }, - "databaseType": { + "description": { "type": "string" }, - "database": { + "timestamp": { + "format": "date-time", "type": "string" }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" + "response": { + "type": "object" }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } - }, - "ComposeDraftTarget": { - "type": "object", - "properties": { - "targetBdbId": { - "type": "integer", - "format": "int64" + "_links": { + "$ref": "#/components/schemas/TaskLinks" } - } + }, + "type": "object" }, - "ComposeDraftUpsertRequest": { - "type": "object", + "SecretValidationRequestDto": { + "example": { + "credentialsSecretArn": "credentialsSecretArn", + "clientCertSecretArn": "clientCertSecretArn", + "clientKeySecretArn": "clientKeySecretArn", + "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", + "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", + "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", + "caCertSecretArn": "caCertSecretArn", + "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" + }, "properties": { - "targetDataType": { - "type": "string", - "enum": [ - "hash", - "json" - ] - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSource" - }, - "sourceName": { - "type": "string" - }, - "pipelineName": { - "type": "string" - }, - "pipelineDescription": { + "credentialsSecretArn": { "type": "string" }, - "target": { - "$ref": "#/components/schemas/ComposeDraftTarget" - }, - "advanced": { - "$ref": "#/components/schemas/ComposeDraftAdvanced" - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Schema" - } - }, - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Job" - } - }, - "clientData": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, - "Job": { - "required": [ - "file", - "name" - ], - "type": "object", - "properties": { - "name": { + "caCertSecretArn": { "type": "string" }, - "file": { + "clientCertSecretArn": { "type": "string" }, - "error": { - "$ref": "#/components/schemas/WebError" + "clientKeySecretArn": { + "type": "string" }, - "rdiJob": { - "type": "object", - "additionalProperties": { - "type": "object" - } + "clientKeyPassphraseSecretArn": { + "type": "string" + }, + "snowflakeCredentialsSecretArn": { + "type": "string" + }, + "snowflakePrivateKeySecretArn": { + "type": "string" + }, + "snowflakePrivateKeyPassphraseSecretArn": { + "type": "string" } - } + }, + "type": "object" }, - "MariaDbSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "SecretError": { + "example": { + "code": "code", + "message": "message" + }, + "properties": { + "code": { + "type": "string" }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "serverId": { - "type": "integer", - "format": "int32" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } + "message": { + "type": "string" } - ] + }, + "type": "object" }, - "MongodbSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "connectionString": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } + "SecretValidationResponseDto": { + "example": { + "success": true, + "errors": [ + { + "code": "code", + "message": "message" + }, + { + "code": "code", + "message": "message" } + ] + }, + "properties": { + "success": { + "type": "boolean" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/SecretError" + }, + "type": "array" } - ] + }, + "type": "object" }, - "MySqlSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "SingleSecretValidationRequestDto": { + "example": { + "purpose": "source-credentials", + "secretArn": "secretArn" + }, + "properties": { + "secretArn": { + "type": "string" }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "serverId": { - "type": "integer", - "format": "int32" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } + "purpose": { + "enum": [ + "source-credentials", + "source-tls-ca", + "source-mtls-client-cert", + "source-mtls-client-key", + "source-mtls-key-password", + "source-snowflake-credentials", + "source-snowflake-private-key", + "source-snowflake-key-password" + ], + "type": "string" } - ] + }, + "required": [ + "purpose", + "secretArn" + ], + "type": "object" }, - "OracleSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "SingleSecretValidationResponseDto": { + "example": { + "success": true, + "errorCode": "errorCode", + "error": "error" + }, + "properties": { + "success": { + "type": "boolean" }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "pdb": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } + "errorCode": { + "type": "string" + }, + "error": { + "type": "string" } - ] + }, + "type": "object" + }, + "CreatePrivateLinkEndpointRequest": { + "example": { + "serviceName": "serviceName" + }, + "properties": { + "serviceName": { + "type": "string" + } + }, + "required": [ + "serviceName" + ], + "type": "object" }, - "PostgresqlSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "PrivateLinkValidationResponse": { + "example": { + "success": true, + "error": "error" + }, + "properties": { + "success": { + "type": "boolean" }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } + "error": { + "type": "string" } - ] - }, - "Properties": { + }, "type": "object" }, - "Schema": { + "PrivateLinkValidationRequest": { + "example": { + "serviceName": "serviceName" + }, + "properties": { + "serviceName": { + "type": "string" + } + }, "required": [ - "name" + "serviceName" ], - "type": "object", + "type": "object" + }, + "ComposeDraftCreatedResponse": { + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "draftId": "draftId", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, "properties": { - "name": { + "draftId": { "type": "string" }, - "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Table" - } + "createdAt": { + "format": "date-time", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" } - } + }, + "type": "object" }, - "SnowflakeSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "PipelineComponentResponse": { + "example": { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + "properties": { + "name": { + "type": "string" }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "accountIdentifier": { - "type": "string" - }, - "warehouse": { - "type": "string" - }, - "role": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - } + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "status": { + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "type": "string" + }, + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metricCollections": { + "items": { + "type": "string" + }, + "type": "array" } - ] + }, + "type": "object" }, - "SqlServerSource": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "RdiPipelineResponse": { + "example": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" }, - { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "secretArns": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "errors": [ + { + "code": "code", + "details": { + "key": "{}" }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } + "message": "message" } - } - ] - }, - "Table": { - "required": [ - "name" - ], - "type": "object", + ], + "status": "started" + }, "properties": { + "errorOtherThanJobValidationError": { + "type": "boolean" + }, "name": { "type": "string" }, - "columns": { - "type": "array", + "active": { + "type": "boolean" + }, + "config": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "status": { + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "type": "string" + }, + "errors": { "items": { - "$ref": "#/components/schemas/TableColumn" - } + "$ref": "#/components/schemas/RdiPipelineError" + }, + "type": "array" }, - "snapshot_sql": { - "type": "string" - } - } - }, - "TableColumn": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string" + "components": { + "items": { + "$ref": "#/components/schemas/PipelineComponentResponse" + }, + "type": "array" }, - "uniqueConstraint": { + "current": { "type": "boolean" } - } + }, + "type": "object" }, - "WebError": { - "type": "object", - "properties": { - "timestamp": { - "type": "integer", - "format": "int64" - }, - "status": { - "type": "integer", - "format": "int32" - }, - "code": { - "type": "string" + "ComposeTranslateRequest": { + "example": { + "cloud": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } }, - "message": { - "type": "string" + "rdi": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" + }, + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "status": "started" }, - "params": { - "type": "string" - } - } - }, - "ComposeDraftResponse": { - "type": "object", + "direction": "cloud-to-rdi" + }, "properties": { - "draftId": { - "type": "string" - }, - "targetDataType": { - "type": "string", + "direction": { "enum": [ - "hash", - "json" - ] - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSource" - }, - "sourceName": { - "type": "string" - }, - "pipelineName": { - "type": "string" - }, - "pipelineDescription": { + "cloud-to-rdi", + "rdi-to-cloud" + ], "type": "string" }, - "target": { - "$ref": "#/components/schemas/ComposeDraftTarget" - }, - "advanced": { - "$ref": "#/components/schemas/ComposeDraftAdvanced" - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Schema" - } + "cloud": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" }, - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Job" + "rdi": { + "$ref": "#/components/schemas/RdiPipelineResponse" + } + }, + "type": "object" + }, + "ComposeTranslateResponse": { + "example": { + "rdi": { + "active": true, + "config": { + "key": "{}" } }, - "clientData": { - "type": "object", - "additionalProperties": { - "type": "object" + "draft": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 } }, - "createdAt": { - "type": "string", - "format": "date-time" + "warnings": [ + "warnings", + "warnings" + ] + }, + "properties": { + "draft": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" }, - "updatedAt": { - "type": "string", - "format": "date-time" + "rdi": { + "$ref": "#/components/schemas/RdiPatchRequest" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" } - } + }, + "type": "object" }, - "Advanced": { - "type": "object", + "RdiPatchRequest": { + "example": { + "active": true, + "config": { + "key": "{}" + } + }, "properties": { - "source": { - "$ref": "#/components/schemas/Properties" + "active": { + "type": "boolean" }, - "sink": { - "$ref": "#/components/schemas/Properties" + "config": { + "additionalProperties": { + "type": "object" + }, + "type": "object" } - } + }, + "type": "object" }, - "Aws": { - "type": "object", + "PipelineCreateRequestDto": { + "example": { + "targetBdbId": 1 + }, "properties": { - "privateLink": { - "$ref": "#/components/schemas/PrivateLink" + "targetBdbId": { + "format": "int64", + "minimum": 1, + "type": "integer" } - } + }, + "required": [ + "targetBdbId" + ], + "type": "object" }, - "Endpoint": { - "type": "object", + "PipelineCreateResponseDto": { + "example": { + "pipelineId": "pipelineId" + }, "properties": { - "vpceId": { + "pipelineId": { "type": "string" } - } + }, + "required": [ + "pipelineId" + ], + "type": "object" }, - "Pipeline": { - "type": "object", + "ResetPipelineRequestDto": { + "example": { + "flush": true + }, "properties": { - "name": { - "type": "string" - }, - "deploymentCIDR": { - "type": "string" + "flush": { + "type": "boolean" } - } + }, + "type": "object" }, - "PipelineInfraDto": { - "type": "object", - "properties": { - "pipeline": { - "$ref": "#/components/schemas/Pipeline" - }, - "aws": { - "$ref": "#/components/schemas/Aws" - }, - "source": { - "$ref": "#/components/schemas/Source" + "DeployPipelineRequestDto": { + "example": { + "reset": { + "flush": true } - } - }, - "PrivateLink": { - "type": "object", + }, "properties": { - "serviceName": { - "type": "string" - }, - "endpoint": { - "$ref": "#/components/schemas/Endpoint" + "reset": { + "$ref": "#/components/schemas/ResetPipelineRequestDto" } - } + }, + "type": "object" }, - "Source": { - "type": "object", + "WorkspaceClusterRef": { + "example": { + "id": 5 + }, "properties": { - "connectivityMode": { - "type": "string", - "enum": [ - "privateLink", - "publicEndpoint" - ] - }, "id": { - "type": "string" - }, - "dbType": { - "type": "string", - "enum": [ - "mysql", - "mariadb", - "oracle", - "sqlserver", - "postgresql", - "mongodb", - "snowflake" - ] - }, - "datasetSizeGB": { - "type": "integer", - "format": "int32" - }, - "dbSecretsARN": { - "type": "string" - }, - "dbUseTLS": { - "type": "boolean" + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "WorkspaceDatabaseResponse": { + "example": { + "cluster": { + "id": 5 }, - "dbUseMTLS": { - "type": "boolean" + "publicDnsAddress": "publicDnsAddress", + "memorySize": 6, + "dnsAddress": "dnsAddress", + "sslEnabled": true, + "name": "name", + "defaultUser": true, + "subscription": { + "id": 1 }, - "dbCaCertARN": { - "type": "string" + "throughput": 5, + "databaseId": 0, + "type": "type", + "status": "status" + }, + "properties": { + "databaseId": { + "format": "int64", + "type": "integer" }, - "dbClientCertARN": { + "name": { "type": "string" }, - "dbClientKeyARN": { + "status": { "type": "string" }, - "dbClientKeyPasswordARN": { + "type": { "type": "string" }, - "dbPort": { - "type": "integer", - "format": "int32" + "memorySize": { + "format": "int64", + "type": "integer" }, - "dbServerId": { - "type": "integer", - "format": "int32" + "subscription": { + "$ref": "#/components/schemas/WorkspaceSubscriptionRef" }, - "dbConnectionString": { - "type": "string" + "cluster": { + "$ref": "#/components/schemas/WorkspaceClusterRef" }, - "databases": { + "dnsAddress": { "type": "string" }, - "pdb": { + "publicDnsAddress": { "type": "string" }, - "advanced": { - "$ref": "#/components/schemas/Advanced" - }, - "dbHost": { - "type": "string" + "sslEnabled": { + "type": "boolean" }, - "dbUser": { - "type": "string" + "throughput": { + "format": "int64", + "type": "integer" }, - "dbPass": { - "type": "string" - } - } - }, - "PipelineConfigAdvanced": { - "type": "object", - "properties": { - "processor": { - "$ref": "#/components/schemas/Properties" + "defaultUser": { + "type": "boolean" } - } + }, + "type": "object" }, - "PipelineConfigDto": { - "required": [ - "definitionType", - "targetDataType" - ], - "type": "object", - "properties": { - "targetDataType": { - "type": "string", - "enum": [ - "hash", - "json" - ] - }, - "definitionType": { - "type": "string", - "enum": [ - "predefined", - "manual" - ] - }, - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Schema" + "WorkspaceDatabasesResponse": { + "example": { + "databases": [ + { + "cluster": { + "id": 5 + }, + "publicDnsAddress": "publicDnsAddress", + "memorySize": 6, + "dnsAddress": "dnsAddress", + "sslEnabled": true, + "name": "name", + "defaultUser": true, + "subscription": { + "id": 1 + }, + "throughput": 5, + "databaseId": 0, + "type": "type", + "status": "status" + }, + { + "cluster": { + "id": 5 + }, + "publicDnsAddress": "publicDnsAddress", + "memorySize": 6, + "dnsAddress": "dnsAddress", + "sslEnabled": true, + "name": "name", + "defaultUser": true, + "subscription": { + "id": 1 + }, + "throughput": 5, + "databaseId": 0, + "type": "type", + "status": "status" } - }, - "jobs": { - "type": "array", + ] + }, + "properties": { + "databases": { "items": { - "$ref": "#/components/schemas/Job" - } - }, - "advanced": { - "$ref": "#/components/schemas/PipelineConfigAdvanced" + "$ref": "#/components/schemas/WorkspaceDatabaseResponse" + }, + "type": "array" } - } + }, + "type": "object" }, - "PipelineConfigJobsResponseDto": { - "type": "object", + "WorkspaceSubscriptionRef": { + "example": { + "id": 1 + }, "properties": { - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Job" - } + "id": { + "format": "int64", + "type": "integer" } - } + }, + "type": "object" }, - "EulaAcceptanceResponseDto": { - "type": "object", + "Capabilities": { + "example": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, "properties": { - "accepted": { + "validateSecrets": { "type": "boolean" }, - "acceptedAt": { - "type": "string", - "format": "date-time" + "validatePrivateLink": { + "type": "boolean" + }, + "readyForPipeline": { + "type": "boolean" + }, + "createPrivateLink": { + "type": "boolean" } - } + }, + "type": "object" }, - "WorkspaceCreateRequest": { - "type": "object", + "InfrastructureError": { + "example": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, "properties": { - "cidr": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "format": "date-time", "type": "string" + }, + "details": { + "additionalProperties": { + "type": "object" + }, + "type": "object" } - } + }, + "type": "object" }, - "TaskLink": { - "type": "object", + "InfrastructureIam": { + "example": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, "properties": { - "href": { + "privateLinkAllowedPrincipal": { "type": "string" }, - "type": { + "secretsRoleArn": { "type": "string" } - } + }, + "type": "object" }, - "TaskLinks": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/TaskLink" + "InfrastructureResponse": { + "example": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" }, - "resource": { - "$ref": "#/components/schemas/TaskLink" + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" } - } - }, - "WorkspaceTaskResponse": { - "type": "object", + }, "properties": { - "taskId": { + "state": { + "enum": [ + "NotProvisioned", + "Provisioning", + "Ready", + "Deleting", + "Failed" + ], "type": "string" }, - "commandType": { + "cidr": { "type": "string" }, - "status": { - "type": "string" + "timestamps": { + "$ref": "#/components/schemas/InfrastructureTimestamps" }, - "description": { - "type": "string" + "iam": { + "$ref": "#/components/schemas/InfrastructureIam" }, - "timestamp": { - "type": "string", - "format": "date-time" + "networking": { + "$ref": "#/components/schemas/NetworkingOutput" }, - "response": { - "type": "object" + "monitoring": { + "$ref": "#/components/schemas/MonitoringOutput" }, - "_links": { - "$ref": "#/components/schemas/TaskLinks" + "error": { + "$ref": "#/components/schemas/InfrastructureError" } - } + }, + "type": "object" }, - "SecretValidationRequestDto": { - "type": "object", + "InfrastructureTimestamps": { + "example": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, "properties": { - "credentialsSecretArn": { + "startedAt": { + "format": "date-time", "type": "string" }, - "caCertSecretArn": { + "updatedAt": { + "format": "date-time", "type": "string" + } + }, + "type": "object" + }, + "MetricsUrls": { + "example": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" }, - "clientCertSecretArn": { + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + }, + "properties": { + "rdiOperatorUrl": { "type": "string" }, - "clientKeySecretArn": { + "rdiProcessorUrl": { "type": "string" }, - "clientKeyPassphraseSecretArn": { - "type": "string" + "collectorSourceUrls": { + "additionalProperties": { + "type": "string" + }, + "type": "object" } - } + }, + "type": "object" }, - "SecretError": { - "type": "object", + "MonitoringOutput": { + "example": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" + "metricsUrls": { + "$ref": "#/components/schemas/MetricsUrls" } - } + }, + "type": "object" }, - "SecretValidationResponseDto": { - "type": "object", + "NetworkingOutput": { + "example": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, "properties": { - "success": { - "type": "boolean" + "egressIps": { + "items": { + "type": "string" + }, + "type": "array" }, - "errors": { - "type": "array", + "availabilityZones": { "items": { - "$ref": "#/components/schemas/SecretError" - } + "type": "string" + }, + "type": "array" } - } + }, + "type": "object" }, - "SingleSecretValidationRequestDto": { - "required": [ - "purpose", - "secretArn" - ], - "type": "object", - "properties": { - "secretArn": { - "type": "string" + "WorkspaceResponse": { + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true }, - "purpose": { - "type": "string", - "enum": [ - "source-credentials", - "source-tls-ca", - "source-mtls-client-cert", - "source-mtls-client-key", - "source-mtls-key-password" - ] - } - } - }, - "SingleSecretValidationResponseDto": { - "type": "object", + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + }, "properties": { - "success": { - "type": "boolean" + "subscriptionId": { + "format": "int64", + "type": "integer" }, - "errorCode": { + "bdbId": { + "format": "int64", + "type": "integer" + }, + "rcpClusterId": { "type": "string" }, - "error": { + "region": { + "type": "string" + }, + "vpcId": { + "type": "string" + }, + "createdAt": { + "format": "date-time", "type": "string" + }, + "infrastructure": { + "$ref": "#/components/schemas/InfrastructureResponse" + }, + "capabilities": { + "$ref": "#/components/schemas/Capabilities" } - } + }, + "type": "object" }, - "CreatePrivateLinkEndpointRequest": { - "required": [ - "serviceName" - ], - "type": "object", + "WorkspaceTasksResponse": { + "example": { + "tasks": [ + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + ] + }, "properties": { - "serviceName": { - "type": "string" + "tasks": { + "items": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "type": "array" } - } + }, + "type": "object" }, - "PrivateLinkValidationResponse": { - "type": "object", + "CidrsInfoResponse": { + "example": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] + }, "properties": { - "success": { - "type": "boolean" + "usedCidrs": { + "items": { + "type": "string" + }, + "type": "array" }, - "error": { + "defaultCidr": { + "type": "string" + }, + "nextFreeCidr": { "type": "string" } - } + }, + "type": "object" }, - "PrivateLinkValidationRequest": { - "required": [ - "serviceName" - ], - "type": "object", + "PrivateLinkEndpointListResponse": { + "example": { + "endpoints": [ + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + }, + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + } + ] + }, "properties": { - "serviceName": { - "type": "string" + "endpoints": { + "items": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + }, + "type": "array" } - } + }, + "type": "object" }, - "ComposeDraftCreatedResponse": { - "type": "object", - "properties": { - "draftId": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" + "PrivateLinkEndpointResponse": { + "example": { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" }, - "updatedAt": { - "type": "string", - "format": "date-time" + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" } - } - }, - "PipelineComponentResponse": { - "type": "object", + }, "properties": { - "name": { + "endpointId": { "type": "string" }, "type": { "type": "string" }, - "version": { + "state": { "type": "string" }, - "status": { - "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ] - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } + "network": { + "$ref": "#/components/schemas/PrivateLinkNetwork" }, - "metricCollections": { - "type": "array", - "items": { - "type": "string" - } + "error": { + "$ref": "#/components/schemas/PrivateLinkError" } - } + }, + "type": "object" }, - "RdiPipelineError": { - "type": "object", + "PrivateLinkError": { + "example": { + "code": "code", + "message": "message" + }, "properties": { "code": { "type": "string" }, "message": { "type": "string" - }, - "details": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, - "RdiPipelineResponse": { - "type": "object", - "properties": { - "errorOtherThanJobValidationError": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "config": { - "type": "object", - "additionalProperties": { - "type": "object" - } - }, - "status": { - "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ] - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiPipelineError" - } - }, - "components": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineComponentResponse" - } - }, - "current": { - "type": "boolean" - } - } - }, - "ComposeTranslateRequest": { - "type": "object", - "properties": { - "direction": { - "type": "string", - "enum": [ - "cloud-to-rdi", - "rdi-to-cloud" - ] - }, - "cloud": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "rdi": { - "$ref": "#/components/schemas/RdiPipelineResponse" - } - } - }, - "ComposeTranslateResponse": { - "type": "object", - "properties": { - "draft": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "rdi": { - "$ref": "#/components/schemas/RdiPatchRequest" - }, - "warnings": { - "type": "array", - "items": { - "type": "string" - } } - } + }, + "type": "object" }, - "RdiPatchRequest": { - "type": "object", + "PrivateLinkNetwork": { + "example": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + }, "properties": { - "active": { - "type": "boolean" + "serviceName": { + "type": "string" }, - "config": { - "type": "object", - "additionalProperties": { - "type": "object" - } + "vpceId": { + "type": "string" + }, + "url": { + "type": "string" } - } + }, + "type": "object" }, - "PipelineCreateRequestDto": { - "required": [ - "targetBdbId" - ], - "type": "object", + "ComposeDraftListResponse": { + "example": { + "items": [ + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + }, + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + } + ] + }, "properties": { - "targetBdbId": { - "minimum": 1, - "type": "integer", - "format": "int64" + "items": { + "items": { + "$ref": "#/components/schemas/ComposeDraftSummaryResponse" + }, + "type": "array" } - } + }, + "type": "object" }, - "PipelineCreateResponseDto": { - "required": [ - "pipelineId" - ], - "type": "object", + "ComposeDraftSourceSummary": { + "example": { + "name": "name" + }, "properties": { - "pipelineId": { + "name": { "type": "string" } - } + }, + "type": "object" }, - "ResetPipelineRequestDto": { - "type": "object", + "ComposeDraftSummaryResponse": { + "example": { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + }, "properties": { - "flush": { - "type": "boolean" + "draftId": { + "type": "string" + }, + "targetDataType": { + "enum": [ + "hash", + "json" + ], + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSourceSummary" } - } + }, + "type": "object" }, - "DeployPipelineRequestDto": { - "type": "object", + "SearchPipeline": { + "example": { + "bdbId": 0, + "id": "id" + }, "properties": { - "reset": { - "$ref": "#/components/schemas/ResetPipelineRequestDto" + "id": { + "type": "string" + }, + "bdbId": { + "format": "int64", + "type": "integer" } - } + }, + "type": "object" }, - "WorkspaceClusterRef": { - "type": "object", + "SearchPipelinesResponseDto": { + "example": { + "pipelines": [ + { + "bdbId": 0, + "id": "id" + }, + { + "bdbId": 0, + "id": "id" + } + ] + }, "properties": { - "id": { - "type": "integer", - "format": "int64" + "pipelines": { + "items": { + "$ref": "#/components/schemas/SearchPipeline" + }, + "type": "array" } - } + }, + "type": "object" }, - "WorkspaceDatabaseResponse": { - "type": "object", + "GetPipelineResponseDto": { + "example": { + "name": "name", + "id": "id", + "error": { + "code": "code", + "id": "id", + "message": "message" + }, + "status": "draft" + }, "properties": { - "databaseId": { - "type": "integer", - "format": "int64" + "id": { + "type": "string" }, "name": { "type": "string" }, "status": { + "enum": [ + "draft", + "pipeline-setup-pending", + "pl-initialized", + "pl-approval-pending", + "pl-failed", + "pl-created", + "infra-provision-initialized", + "infra-provisioned", + "infra-provision-failed", + "rdi-deploy-initialized", + "rdi-deployed", + "rdi-deploy-failed", + "rdi-healthy", + "rdi-health-check-failed", + "target-db-connection-test-initialized", + "target-db-connection-test-failed", + "target-db-connection-test-success", + "source-db-connection-test-initialized", + "source-db-connection-test-failed", + "source-db-connection-test-success", + "pipeline-deploy-initialized", + "pipeline-deploy-failed", + "inactive", + "active", + "delete-pending", + "delete-failed", + "delete-success" + ], "type": "string" }, - "type": { + "error": { + "$ref": "#/components/schemas/PipelineError" + } + }, + "required": [ + "id", + "status" + ], + "type": "object" + }, + "PipelineError": { + "example": { + "code": "code", + "id": "id", + "message": "message" + }, + "properties": { + "id": { "type": "string" }, - "memorySize": { - "type": "integer", - "format": "int64" - }, - "subscription": { - "$ref": "#/components/schemas/WorkspaceSubscriptionRef" - }, - "cluster": { - "$ref": "#/components/schemas/WorkspaceClusterRef" - }, - "dnsAddress": { + "code": { "type": "string" }, - "publicDnsAddress": { + "message": { "type": "string" - }, - "sslEnabled": { - "type": "boolean" - }, - "throughput": { - "type": "integer", - "format": "int64" - }, - "defaultUser": { - "type": "boolean" } - } + }, + "type": "object" }, - "WorkspaceDatabasesResponse": { - "type": "object", - "properties": { - "databases": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WorkspaceDatabaseResponse" + "PipelineRuntimeStatusResponseDto": { + "example": { + "state": "not-running", + "pipelineStatus": "started", + "errors": [ + { + "code": "code", + "message": "message" + }, + { + "code": "code", + "message": "message" } - } - } - }, - "WorkspaceSubscriptionRef": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - } - } - }, - "Capabilities": { - "type": "object", + ], + "status": "validating" + }, "properties": { - "validateSecrets": { - "type": "boolean" + "status": { + "enum": [ + "validating", + "stopping", + "starting", + "resetting", + "ready", + "not-ready", + "stopped" + ], + "type": "string" }, - "validatePrivateLink": { - "type": "boolean" + "state": { + "enum": [ + "not-running", + "cdc", + "initial-sync" + ], + "type": "string" + }, + "pipelineStatus": { + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "type": "string" }, - "readyForPipeline": { - "type": "boolean" + "errors": { + "items": { + "$ref": "#/components/schemas/PipelineStatusErrorDto" + }, + "type": "array" } - } + }, + "type": "object" }, - "InfrastructureError": { - "type": "object", + "PipelineStatusErrorDto": { + "example": { + "code": "code", + "message": "message" + }, "properties": { "code": { "type": "string" }, "message": { "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "details": { - "type": "object", - "additionalProperties": { - "type": "object" - } } - } + }, + "type": "object" }, - "InfrastructureIam": { - "type": "object", + "DataStreamDto": { + "example": { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 + }, "properties": { - "privateLinkAllowedPrincipal": { + "name": { "type": "string" }, - "secretsRoleArn": { - "type": "string" - } - } - }, - "InfrastructureResponse": { - "type": "object", - "properties": { - "state": { - "type": "string", - "enum": [ - "NotProvisioned", - "Provisioning", - "Ready", - "Deleting", - "Failed" - ] + "total": { + "format": "int32", + "type": "integer" }, - "cidr": { - "type": "string" + "pending": { + "format": "int32", + "type": "integer" }, - "timestamps": { - "$ref": "#/components/schemas/InfrastructureTimestamps" + "inserted": { + "format": "int32", + "type": "integer" }, - "iam": { - "$ref": "#/components/schemas/InfrastructureIam" + "updated": { + "format": "int32", + "type": "integer" }, - "networking": { - "$ref": "#/components/schemas/NetworkingOutput" + "deleted": { + "format": "int32", + "type": "integer" }, - "monitoring": { - "$ref": "#/components/schemas/MonitoringOutput" + "filtered": { + "format": "int32", + "type": "integer" }, - "error": { - "$ref": "#/components/schemas/InfrastructureError" - } - } - }, - "InfrastructureTimestamps": { - "type": "object", - "properties": { - "startedAt": { - "type": "string", - "format": "date-time" + "rejected": { + "format": "int32", + "type": "integer" }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - } - }, - "MetricsUrls": { - "type": "object", - "properties": { - "rdiProcessorUrl": { - "type": "string" + "deduplicated": { + "format": "int32", + "type": "integer" }, - "collectorSourceUrl": { + "lastArrival": { "type": "string" } - } - }, - "MonitoringOutput": { - "type": "object", - "properties": { - "metricsUrls": { - "$ref": "#/components/schemas/MetricsUrls" - } - } + }, + "type": "object" }, - "NetworkingOutput": { - "type": "object", - "properties": { - "egressIps": { - "type": "array", - "items": { - "type": "string" - } - }, - "availabilityZones": { - "type": "array", - "items": { - "type": "string" + "PipelineRuntimeStatsResponseDto": { + "example": { + "mode": "mode", + "dataStreams": [ + { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 + }, + { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 } - } - } - }, - "WorkspaceResponse": { - "type": "object", + ], + "sourceType": "sourceType", + "totals": { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 + }, + "lastRetrieved": "lastRetrieved", + "type": "type", + "status": "status" + }, "properties": { - "subscriptionId": { - "type": "integer", - "format": "int64" + "lastRetrieved": { + "type": "string" }, - "rcpClusterId": { + "mode": { "type": "string" }, - "region": { + "type": { "type": "string" }, - "vpcId": { + "status": { "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time" + "sourceType": { + "type": "string" }, - "infrastructure": { - "$ref": "#/components/schemas/InfrastructureResponse" + "totals": { + "$ref": "#/components/schemas/DataStreamDto" }, - "capabilities": { - "$ref": "#/components/schemas/Capabilities" - } - } - }, - "WorkspaceTasksResponse": { - "type": "object", - "properties": { - "tasks": { - "type": "array", + "dataStreams": { "items": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - } + "$ref": "#/components/schemas/DataStreamDto" + }, + "type": "array" } - } + }, + "type": "object" }, - "CidrsInfoResponse": { - "type": "object", + "CidrsInfoDto": { + "example": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] + }, "properties": { "usedCidrs": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "defaultCidr": { "type": "string" @@ -22013,478 +32114,1225 @@ "nextFreeCidr": { "type": "string" } - } + }, + "type": "object" }, - "PrivateLinkEndpointListResponse": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + "GetPipelinePrerequisitesResponseDto": { + "example": { + "sourceDbTypes": [ + { + "code": "code", + "label": "label" + }, + { + "code": "code", + "label": "label" } - } - } - }, - "PrivateLinkEndpointResponse": { - "type": "object", + ], + "pipelineSecretAllowedRole": "pipelineSecretAllowedRole", + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "cidrsInfo": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] + }, + "targetTypes": [ + { + "code": "code", + "label": "label" + }, + { + "code": "code", + "label": "label" + } + ] + }, "properties": { - "endpointId": { + "privateLinkAllowedPrincipal": { "type": "string" }, - "type": { - "type": "string" + "sourceDbTypes": { + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + }, + "type": "array" }, - "state": { - "type": "string" + "targetTypes": { + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + }, + "type": "array" }, - "network": { - "$ref": "#/components/schemas/PrivateLinkNetwork" + "cidrsInfo": { + "$ref": "#/components/schemas/CidrsInfoDto" }, - "error": { - "$ref": "#/components/schemas/PrivateLinkError" + "pipelineSecretAllowedRole": { + "type": "string" } - } + }, + "type": "object" }, - "PrivateLinkError": { - "type": "object", + "TypeResponseDto": { + "example": { + "code": "code", + "label": "label" + }, "properties": { "code": { "type": "string" }, - "message": { + "label": { "type": "string" } - } + }, + "type": "object" }, - "PrivateLinkNetwork": { - "type": "object", + "PipelineMetricsUrlsResponseDto": { + "example": { + "rdiProcessorUrl": "rdiProcessorUrl", + "collectorSourceUrl": "collectorSourceUrl" + }, "properties": { - "serviceName": { - "type": "string" - }, - "vpceId": { + "rdiProcessorUrl": { "type": "string" }, - "url": { + "collectorSourceUrl": { "type": "string" } - } + }, + "type": "object" }, - "ComposeDraftListResponse": { - "type": "object", + "SourceSchemasResponseDto": { + "example": { + "schemas": [ + "schemas", + "schemas" + ] + }, "properties": { - "items": { - "type": "array", + "schemas": { "items": { - "$ref": "#/components/schemas/ComposeDraftSummaryResponse" - } + "type": "string" + }, + "type": "array" } - } + }, + "type": "object" }, - "ComposeDraftSourceSummary": { - "type": "object", + "SchemaDto": { + "example": { + "tables": [ + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + } + ], + "name": "name" + }, "properties": { "name": { "type": "string" + }, + "tables": { + "items": { + "$ref": "#/components/schemas/TableDto" + }, + "type": "array" } - } + }, + "type": "object" }, - "ComposeDraftSummaryResponse": { - "type": "object", + "SourceMetadataResponseDto": { + "example": { + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + } + ], + "name": "name" + } + ] + }, "properties": { - "draftId": { + "schemas": { + "items": { + "$ref": "#/components/schemas/SchemaDto" + }, + "type": "array" + } + }, + "type": "object" + }, + "TableColumnDto": { + "example": { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + "properties": { + "name": { "type": "string" }, - "targetDataType": { - "type": "string", - "enum": [ - "hash", - "json" - ] + "type": { + "type": "string" }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSourceSummary" + "size": { + "format": "int32", + "type": "integer" + }, + "primaryKey": { + "type": "boolean" + }, + "uniqueConstraint": { + "type": "boolean" } - } + }, + "type": "object" }, - "SearchPipeline": { - "type": "object", + "TableDto": { + "example": { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, "properties": { - "id": { + "name": { "type": "string" }, - "bdbId": { - "type": "integer", - "format": "int64" + "cdcReady": { + "type": "boolean" + }, + "columns": { + "items": { + "$ref": "#/components/schemas/TableColumnDto" + }, + "type": "array" } - } + }, + "type": "object" }, - "SearchPipelinesResponseDto": { - "type": "object", + "WorkspacesResponse": { + "example": { + "workspaces": [ + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + }, + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + } + ] + }, "properties": { - "pipelines": { - "type": "array", + "workspaces": { "items": { - "$ref": "#/components/schemas/SearchPipeline" - } + "$ref": "#/components/schemas/WorkspaceResponse" + }, + "type": "array" } - } + }, + "type": "object" }, - "GetPipelineResponseDto": { - "required": [ - "id", - "status" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "draft", - "pipeline-setup-pending", - "pl-initialized", - "pl-approval-pending", - "pl-failed", - "pl-created", - "infra-provision-initialized", - "infra-provisioned", - "infra-provision-failed", - "rdi-deploy-initialized", - "rdi-deployed", - "rdi-deploy-failed", - "rdi-healthy", - "rdi-health-check-failed", - "target-db-connection-test-initialized", - "target-db-connection-test-failed", - "target-db-connection-test-success", - "source-db-connection-test-initialized", - "source-db-connection-test-failed", - "source-db-connection-test-success", - "pipeline-deploy-initialized", - "pipeline-deploy-failed", - "inactive", - "active", - "delete-pending", - "delete-failed", - "delete-success" - ] + "BdbPipelinesResponseDto": { + "example": { + "workspaceIds": [ + "workspaceIds", + "workspaceIds" + ], + "pipelineIds": [ + "pipelineIds", + "pipelineIds" + ] + }, + "properties": { + "pipelineIds": { + "items": { + "type": "string" + }, + "type": "array" }, - "error": { - "$ref": "#/components/schemas/PipelineError" + "workspaceIds": { + "items": { + "type": "string" + }, + "type": "array" } - } + }, + "type": "object" }, - "PipelineError": { - "type": "object", + "putJobsYaml_request": { "properties": { - "id": { - "type": "string" - }, - "code": { - "type": "string" - }, - "message": { - "type": "string" + "files": { + "items": { + "format": "binary", + "type": "string" + }, + "type": "array" } - } + }, + "required": [ + "files" + ], + "type": "object" }, - "PipelineRuntimeStatusResponseDto": { + "RdiCoreInfoResponse": { + "properties": { + "version": { + "type": "string", + "title": "Version" + } + }, "type": "object", + "required": [ + "version" + ], + "title": "InfoResponse", + "description": "Response model containing information about the API." + }, + "RdiCorePipelineCreateRequest": { "properties": { - "status": { + "name": { "type": "string", - "enum": [ - "validating", - "stopping", - "starting", - "resetting", - "ready", - "not-ready", - "stopped" - ] + "title": "Name", + "default": "default" }, - "state": { - "type": "string", - "enum": [ - "not-running", - "cdc", - "initial-sync" - ] + "active": { + "type": "boolean", + "title": "Active", + "default": true }, - "pipelineStatus": { + "config": { + "additionalProperties": true, + "type": "object", + "title": "Config" + } + }, + "additionalProperties": false, + "type": "object", + "title": "PipelineCreateRequest", + "description": "Request model for creating a new pipeline." + }, + "RdiCoreredis_di_api__models__errors__ErrorResponse": { + "properties": { + "detail": { "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" + "title": "Detail", + "examples": [ + "Detailed error message" ] }, "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PipelineStatusErrorDto" - } + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Errors" } - } - }, - "PipelineStatusErrorDto": { + }, "type": "object", + "required": [ + "detail" + ], + "title": "ErrorResponse", + "description": "Generic error response model" + }, + "RdiCoreredis_di_api__models__errors__Error": { "properties": { "code": { - "type": "string" + "$ref": "#/components/schemas/RdiCoreErrorCode" }, "message": { - "type": "string" + "type": "string", + "title": "Message" + }, + "remediation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Remediation" + }, + "details": { + "additionalProperties": true, + "type": "object", + "title": "Details" } - } - }, - "DataStreamDto": { + }, "type": "object", + "required": [ + "code", + "message" + ], + "title": "Error", + "description": "Generic error model" + }, + "RdiCoreErrorCode": { + "type": "string", + "enum": [ + "validation_error", + "job_validation_error", + "request_validation_error", + "cdc_validation_error", + "pipeline_error", + "pipeline_pending", + "pipeline_component_error", + "operation_error" + ], + "title": "ErrorCode", + "description": "Error codes" + }, + "RdiCorePipelineResponse": { "properties": { "name": { - "type": "string" - }, - "total": { - "type": "integer", - "format": "int32" - }, - "pending": { - "type": "integer", - "format": "int32" + "type": "string", + "title": "Name" }, - "inserted": { - "type": "integer", - "format": "int32" + "active": { + "type": "boolean", + "title": "Active" }, - "updated": { - "type": "integer", - "format": "int32" + "config": { + "additionalProperties": true, + "type": "object", + "title": "Config" }, - "deleted": { - "type": "integer", - "format": "int32" + "status": { + "$ref": "#/components/schemas/RdiCoreStatus", + "default": "unknown" }, - "filtered": { - "type": "integer", - "format": "int32" + "status_changed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Status Changed At" }, - "rejected": { - "type": "integer", - "format": "int32" + "errors": { + "items": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" + }, + "type": "array", + "title": "Errors" }, - "deduplicated": { - "type": "integer", - "format": "int32" + "components": { + "items": { + "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" + }, + "type": "array", + "title": "Components" }, - "lastArrival": { - "type": "string" + "current": { + "type": "boolean", + "title": "Current", + "default": false } - } - }, - "PipelineRuntimeStatsResponseDto": { + }, + "additionalProperties": false, "type": "object", + "required": [ + "name", + "active", + "config" + ], + "title": "PipelineResponse", + "description": "Response model containing the details of a pipeline." + }, + "RdiCorePipelineComponentResponse": { "properties": { - "lastRetrieved": { - "type": "string" - }, - "mode": { - "type": "string" + "name": { + "type": "string", + "title": "Name" }, "type": { - "type": "string" + "$ref": "#/components/schemas/RdiCoreComponentType" + }, + "version": { + "type": "string", + "title": "Version" }, "status": { - "type": "string" + "$ref": "#/components/schemas/RdiCoreStatus", + "default": "unknown" }, - "sourceType": { - "type": "string" + "errors": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Errors" }, - "totals": { - "$ref": "#/components/schemas/DataStreamDto" + "metric_collections": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Metric Collections" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "type", + "version" + ], + "title": "PipelineComponentResponse", + "description": "Response model containing the details of a pipeline component." + }, + "RdiCoreStatus": { + "type": "string", + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "title": "Status", + "description": "Pipeline status." + }, + "RdiCoreComponentType": { + "type": "string", + "enum": [ + "debezium-collector", + "collector-api", + "stream-processor", + "metrics-exporter", + "flink-processor-jobmanager", + "flink-processor-taskmanager", + "riotx-collector", + "unknown" + ], + "title": "ComponentType", + "description": "Component types for RDI pipeline components." + }, + "RdiCorePipelinePatchRequest": { + "properties": { + "active": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Active" }, - "dataStreams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataStreamDto" - } + "config": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Config" } - } + }, + "additionalProperties": false, + "type": "object", + "title": "PipelinePatchRequest", + "description": "Request model for updating a pipeline partially." }, - "CidrsInfoDto": { + "RdiCorePipelineUpdateRequest": { + "properties": { + "active": { + "type": "boolean", + "title": "Active", + "default": true + }, + "config": { + "additionalProperties": true, + "type": "object", + "title": "Config" + } + }, + "additionalProperties": false, "type": "object", + "title": "PipelineUpdateRequest", + "description": "Request model for updating a pipeline completely." + }, + "RdiCorePipelineStatusResponse": { "properties": { - "usedCidrs": { - "type": "array", + "status": { + "$ref": "#/components/schemas/RdiCoreStatus", + "default": "unknown" + }, + "status_changed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Status Changed At" + }, + "errors": { "items": { - "type": "string" - } + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" + }, + "type": "array", + "title": "Errors" }, - "defaultCidr": { - "type": "string" + "components": { + "items": { + "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" + }, + "type": "array", + "title": "Components" }, - "nextFreeCidr": { - "type": "string" + "current": { + "type": "boolean", + "title": "Current", + "default": false } - } - }, - "GetPipelinePrerequisitesResponseDto": { + }, + "additionalProperties": false, "type": "object", + "title": "PipelineStatusResponse", + "description": "Response model containing the details of a pipeline status." + }, + "RdiCorePipelineMetricCollectionResponse": { "properties": { - "privateLinkAllowedPrincipal": { - "type": "string" + "name": { + "type": "string", + "title": "Name" }, - "sourceDbTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - } + "component": { + "type": "string", + "title": "Component" }, - "targetTypes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - } + "metrics": { + "additionalProperties": true, + "type": "object", + "title": "Metrics" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "component", + "metrics" + ], + "title": "PipelineMetricCollectionResponse", + "description": "Response model containing the details of a metric collection." + }, + "RdiCorePipelineSecretCreateRequest": { + "properties": { + "key": { + "type": "string", + "title": "Key" }, - "cidrsInfo": { - "$ref": "#/components/schemas/CidrsInfoDto" + "value": { + "type": "string", + "title": "Value" }, - "pipelineSecretAllowedRole": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "simple", + "file" + ], + "title": "Type", + "default": "simple" } - } - }, - "TypeResponseDto": { + }, + "additionalProperties": false, "type": "object", + "required": [ + "key", + "value" + ], + "title": "PipelineSecretCreateRequest", + "description": "Request model for creating a new pipeline secret." + }, + "RdiCorePipelineSecretResponse": { "properties": { - "code": { - "type": "string" + "key": { + "type": "string", + "title": "Key" }, - "label": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "simple", + "file" + ], + "title": "Type" } - } - }, - "PipelineMetricsUrlsResponseDto": { + }, + "additionalProperties": false, "type": "object", + "required": [ + "key", + "type" + ], + "title": "PipelineSecretResponse", + "description": "Response model for a pipeline secret." + }, + "RdiCorePipelineSecretUpdateRequest": { "properties": { - "rdiProcessorUrl": { - "type": "string" + "value": { + "type": "string", + "title": "Value" }, - "collectorSourceUrl": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "simple", + "file" + ], + "title": "Type", + "default": "simple" } - } - }, - "SourceSchemasResponseDto": { + }, + "additionalProperties": false, "type": "object", + "required": [ + "value" + ], + "title": "PipelineSecretUpdateRequest", + "description": "Request model for updating an existing pipeline secret." + }, + "RdiCoreSourceSchemaDetails": { + "type": "string", + "enum": [ + "schemas", + "tables", + "columns" + ], + "title": "SourceSchemaDetails", + "description": "Detail level for source metadata responses." + }, + "RdiCorePipelineSourceSchemaResponse": { "properties": { "schemas": { - "type": "array", - "items": { - "type": "string" - } + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreSourceSchemaResponse" + }, + "type": "object", + "title": "Schemas", + "examples": [ + { + "inventory": { + "tables": { + "addresses": { + "cdc_ready": true, + "columns": { + "zip": { + "primary_key": false, + "size": 255, + "type": "varchar", + "unique_constraint": false + } + } + } + } + } + } + ] } - } - }, - "SchemaDto": { + }, + "additionalProperties": false, "type": "object", + "title": "PipelineSourceSchemaResponse", + "description": "Nested source metadata response for a pipeline source." + }, + "RdiCoreSourceSchemaResponse": { "properties": { - "name": { - "type": "string" - }, "tables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableDto" - } + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreSourceTableResponse" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Tables", + "examples": [ + { + "users": { + "cdc_ready": true, + "columns": { + "id": { + "primary_key": true, + "size": 32, + "type": "int4", + "unique_constraint": true + } + } + } + } + ] } - } - }, - "SourceMetadataResponseDto": { + }, + "additionalProperties": false, "type": "object", + "title": "SourceSchemaResponse", + "description": "Metadata for a single source schema or database." + }, + "RdiCoreSourceTableResponse": { "properties": { - "schemas": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SchemaDto" - } + "cdc_ready": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Cdc Ready", + "examples": [ + true + ] + }, + "columns": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreSourceColumnResponse" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Columns", + "examples": [ + { + "id": { + "primary_key": true, + "size": 32, + "type": "int4", + "unique_constraint": true + } + } + ] } - } - }, - "TableColumnDto": { + }, + "additionalProperties": false, "type": "object", + "title": "SourceTableResponse", + "description": "Metadata for a single source table." + }, + "RdiCoreSourceColumnResponse": { "properties": { - "name": { - "type": "string" - }, "type": { - "type": "string" + "type": "string", + "title": "Type", + "examples": [ + "varchar" + ] }, "size": { - "type": "integer", - "format": "int32" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size", + "examples": [ + 255 + ] }, - "primaryKey": { - "type": "boolean" + "primary_key": { + "type": "boolean", + "title": "Primary Key", + "default": false, + "examples": [ + false + ] }, - "uniqueConstraint": { - "type": "boolean" + "unique_constraint": { + "type": "boolean", + "title": "Unique Constraint", + "default": false, + "examples": [ + false + ] } - } - }, - "TableDto": { + }, + "additionalProperties": false, "type": "object", + "required": [ + "type" + ], + "title": "SourceColumnResponse", + "description": "Metadata for a single source column." + }, + "RdiCoreFlushResponse": { "properties": { - "name": { - "type": "string" - }, - "cdcReady": { - "type": "boolean" + "success": { + "type": "boolean", + "title": "Success", + "description": "Whether the flush operation was successful" }, - "columns": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TableColumnDto" - } + "message": { + "type": "string", + "title": "Message", + "description": "Human-readable result message" } - } + }, + "type": "object", + "required": [ + "success", + "message" + ], + "title": "FlushResponse", + "description": "Response model for the target flush operation." }, - "WorkspacesResponse": { + "RdiCoreDlqListResponse": { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreDlqTableInfo" + }, "type": "object", + "title": "DlqListResponse", + "description": "Response model for listing all DLQ tables with their counts.\n\nReturns a dictionary mapping table names to their DLQ info.\nExample: {\"source.schema.table1\": {\"total_count\": 100}, ...}" + }, + "RdiCoreDlqTableInfo": { "properties": { - "workspaces": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WorkspaceResponse" - } + "total_count": { + "type": "integer", + "minimum": 0.0, + "title": "Total Count", + "description": "Total number of records in the DLQ stream", + "examples": [ + 1500 + ] } - } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "total_count" + ], + "title": "DlqTableInfo", + "description": "Model representing DLQ info for a single table." }, - "BdbPipelinesResponseDto": { + "RdiCoreDlqTableResponse": { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreDlqTableInfo" + }, "type": "object", + "title": "DlqTableResponse", + "description": "Response model for a single DLQ table info.\n\nReturns a dictionary with single table name mapped to its DLQ info.\nExample: {\"source.schema.table\": {\"total_count\": 100}}" + }, + "RdiCoreSortOrder": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "title": "SortOrder", + "description": "Sort order for DLQ records." + }, + "RdiCoreDlqRecordsResponse": { "properties": { - "pipelineIds": { - "type": "array", + "records": { "items": { - "type": "string" - } + "additionalProperties": true, + "type": "object" + }, + "type": "array", + "title": "Records", + "description": "List of DLQ records" } - } + }, + "additionalProperties": false, + "type": "object", + "title": "DlqRecordsResponse", + "description": "Response model for DLQ records." } }, "securitySchemes": { From f3a46cb742c29330dce03f37c18e7adc0b7f5e57 Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Thu, 2 Jul 2026 12:54:57 +0300 Subject: [PATCH 08/10] RDSC-5669 document RDI workspace schemas --- .github/workflows/rc_api_sync.yaml | 64 ++++++ .../operate/rc/api/api-reference/openapi.json | 186 ++++++++++++------ 2 files changed, 188 insertions(+), 62 deletions(-) diff --git a/.github/workflows/rc_api_sync.yaml b/.github/workflows/rc_api_sync.yaml index a2b4a763a9..e220dfd85d 100644 --- a/.github/workflows/rc_api_sync.yaml +++ b/.github/workflows/rc_api_sync.yaml @@ -73,6 +73,69 @@ jobs: | if $idx == null then $base + [$tag] else $base[0:($idx + 1)] + [$tag] + $base[($idx + 1):] end; + def enrich_rdi_workspace_docs: + .components.schemas.WorkspaceCreateRequest.description //= "Request to provision a data integration workspace for a Redis Cloud subscription." + | .components.schemas.WorkspaceCreateRequest.properties.cidr.description //= "CIDR block for the workspace deployment network." + | .components.schemas.WorkspacesResponse.description //= "Response containing data integration workspaces in the Redis Cloud account." + | .components.schemas.WorkspacesResponse.properties.workspaces.description //= "Data integration workspaces." + | .components.schemas.WorkspaceTasksResponse.description //= "Response containing asynchronous workspace tasks." + | .components.schemas.WorkspaceTasksResponse.properties.tasks.description //= "Workspace tasks." + | .components.schemas.WorkspaceTaskResponse.description //= "Asynchronous task created by a workspace operation." + | .components.schemas.WorkspaceTaskResponse.properties.taskId.description //= "Workspace task ID." + | .components.schemas.WorkspaceTaskResponse.properties.commandType.description //= "Workspace operation that created the task." + | .components.schemas.WorkspaceTaskResponse.properties.status.description //= "Current task status." + | .components.schemas.WorkspaceTaskResponse.properties.description.description //= "Human-readable task status or failure details." + | .components.schemas.WorkspaceTaskResponse.properties.timestamp.description //= "Time when the task status was recorded." + | .components.schemas.WorkspaceTaskResponse.properties.response.description //= "Task result payload. Completed workspace tasks can include the current workspace response." + | .components.schemas.WorkspaceTaskResponse.properties._links.description //= "Links to the task and affected workspace resource." + | .components.schemas.TaskLinks.description //= "Links related to a workspace task." + | .components.schemas.TaskLinks.properties.task.description //= "Link to the workspace task." + | .components.schemas.TaskLinks.properties.resource.description //= "Link to the affected workspace resource." + | .components.schemas.TaskLink.description //= "Hypermedia link." + | .components.schemas.TaskLink.properties.href.description //= "Link URL." + | .components.schemas.TaskLink.properties.type.description //= "Linked resource type." + | .components.schemas.WorkspaceResponse.description //= "Current data integration workspace state for a subscription." + | .components.schemas.WorkspaceResponse.properties.subscriptionId.description //= "Redis Cloud subscription ID." + | .components.schemas.WorkspaceResponse.properties.bdbId.description //= "Redis database ID associated with the workspace." + | .components.schemas.WorkspaceResponse.properties.rcpClusterId.description //= "RCP cluster ID that hosts workspace resources." + | .components.schemas.WorkspaceResponse.properties.region.description //= "Cloud provider region where the workspace is deployed." + | .components.schemas.WorkspaceResponse.properties.vpcId.description //= "VPC ID used by the workspace." + | .components.schemas.WorkspaceResponse.properties.createdAt.description //= "Time when the workspace record was created." + | .components.schemas.WorkspaceResponse.properties.infrastructure.description //= "Provisioned infrastructure state and connection details." + | .components.schemas.WorkspaceResponse.properties.capabilities.description //= "Workspace features available in the current state." + | .components.schemas.InfrastructureResponse.description //= "Provisioned infrastructure state for a data integration workspace." + | .components.schemas.InfrastructureResponse.properties.state.description //= "Workspace infrastructure state." + | .components.schemas.InfrastructureResponse.properties.cidr.description //= "CIDR block assigned to the workspace deployment network." + | .components.schemas.InfrastructureResponse.properties.timestamps.description //= "Infrastructure lifecycle timestamps." + | .components.schemas.InfrastructureResponse.properties.iam.description //= "IAM values used by workspace integrations." + | .components.schemas.InfrastructureResponse.properties.networking.description //= "Workspace networking outputs." + | .components.schemas.InfrastructureResponse.properties.monitoring.description //= "Workspace monitoring endpoints." + | .components.schemas.InfrastructureResponse.properties.error.description //= "Infrastructure error details when the workspace is in a failed state." + | .components.schemas.InfrastructureTimestamps.description //= "Workspace infrastructure lifecycle timestamps." + | .components.schemas.InfrastructureTimestamps.properties.startedAt.description //= "Time when infrastructure provisioning started." + | .components.schemas.InfrastructureTimestamps.properties.updatedAt.description //= "Time when infrastructure state was last updated." + | .components.schemas.InfrastructureIam.description //= "IAM values produced for workspace integrations." + | .components.schemas.InfrastructureIam.properties.privateLinkAllowedPrincipal.description //= "AWS principal allowed to connect to the workspace PrivateLink endpoint service." + | .components.schemas.InfrastructureIam.properties.secretsRoleArn.description //= "AWS IAM role ARN used to read workspace secrets." + | .components.schemas.NetworkingOutput.description //= "Workspace networking outputs." + | .components.schemas.NetworkingOutput.properties.egressIps.description //= "Outbound IP addresses used by workspace components." + | .components.schemas.NetworkingOutput.properties.availabilityZones.description //= "Availability zones used by workspace infrastructure." + | .components.schemas.MonitoringOutput.description //= "Workspace monitoring outputs." + | .components.schemas.MonitoringOutput.properties.metricsUrls.description //= "Metrics endpoint URLs for workspace components." + | .components.schemas.MetricsUrls.description //= "Metrics endpoint URLs for RDI workspace components." + | .components.schemas.MetricsUrls.properties.rdiOperatorUrl.description //= "Metrics endpoint URL for the RDI operator." + | .components.schemas.MetricsUrls.properties.rdiProcessorUrl.description //= "Metrics endpoint URL for the RDI processor." + | .components.schemas.MetricsUrls.properties.collectorSourceUrls.description //= "Metrics endpoint URLs for deployed collector sources, keyed by source name." + | .components.schemas.InfrastructureError.description //= "Infrastructure failure details." + | .components.schemas.InfrastructureError.properties.code.description //= "Machine-readable error code." + | .components.schemas.InfrastructureError.properties.message.description //= "Human-readable error message." + | .components.schemas.InfrastructureError.properties.timestamp.description //= "Time when the error was recorded." + | .components.schemas.InfrastructureError.properties.details.description //= "Additional structured error details." + | .components.schemas.Capabilities.description //= "Workspace capabilities available in the current state." + | .components.schemas.Capabilities.properties.validateSecrets.description //= "Whether the workspace can validate secret ARNs." + | .components.schemas.Capabilities.properties.validatePrivateLink.description //= "Whether the workspace can validate PrivateLink endpoint service names." + | .components.schemas.Capabilities.properties.readyForPipeline.description //= "Whether the workspace is ready to create and deploy RDI pipelines." + | .components.schemas.Capabilities.properties.createPrivateLink.description //= "Whether the workspace can create PrivateLink endpoints."; ($capi[0]) as $c | ($rdi[0]) as $r | $c @@ -80,6 +143,7 @@ jobs: | .paths = (($c.paths | without_old_rdi_proxy_paths) + ($r.paths | retag_rdi_paths)) | .components.schemas = (($c.components.schemas // {}) + ($r.components.schemas // {})) | .components.securitySchemes = (($c.components.securitySchemes // {}) + ($r.components.securitySchemes // {})) + | enrich_rdi_workspace_docs ' > content/operate/rc/api/api-reference/openapi.json spec_is_different=$(git diff content/operate/rc/api/api-reference/openapi.json) diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index eb9a4ec932..d62471427b 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -30132,10 +30132,12 @@ }, "properties": { "cidr": { - "type": "string" + "type": "string", + "description": "CIDR block for the workspace deployment network." } }, - "type": "object" + "type": "object", + "description": "Request to provision a data integration workspace for a Redis Cloud subscription." }, "TaskLink": { "example": { @@ -30144,13 +30146,16 @@ }, "properties": { "href": { - "type": "string" + "type": "string", + "description": "Link URL." }, "type": { - "type": "string" + "type": "string", + "description": "Linked resource type." } }, - "type": "object" + "type": "object", + "description": "Hypermedia link." }, "TaskLinks": { "example": { @@ -30165,13 +30170,16 @@ }, "properties": { "task": { - "$ref": "#/components/schemas/TaskLink" + "$ref": "#/components/schemas/TaskLink", + "description": "Link to the workspace task." }, "resource": { - "$ref": "#/components/schemas/TaskLink" + "$ref": "#/components/schemas/TaskLink", + "description": "Link to the affected workspace resource." } }, - "type": "object" + "type": "object", + "description": "Links related to a workspace task." }, "WorkspaceTaskResponse": { "example": { @@ -30194,29 +30202,37 @@ }, "properties": { "taskId": { - "type": "string" + "type": "string", + "description": "Workspace task ID." }, "commandType": { - "type": "string" + "type": "string", + "description": "Workspace operation that created the task." }, "status": { - "type": "string" + "type": "string", + "description": "Current task status." }, "description": { - "type": "string" + "type": "string", + "description": "Human-readable task status or failure details." }, "timestamp": { "format": "date-time", - "type": "string" + "type": "string", + "description": "Time when the task status was recorded." }, "response": { - "type": "object" + "type": "object", + "description": "Task result payload. Completed workspace tasks can include the current workspace response." }, "_links": { - "$ref": "#/components/schemas/TaskLinks" + "$ref": "#/components/schemas/TaskLinks", + "description": "Links to the task and affected workspace resource." } }, - "type": "object" + "type": "object", + "description": "Asynchronous task created by a workspace operation." }, "SecretValidationRequestDto": { "example": { @@ -31216,19 +31232,24 @@ }, "properties": { "validateSecrets": { - "type": "boolean" + "type": "boolean", + "description": "Whether the workspace can validate secret ARNs." }, "validatePrivateLink": { - "type": "boolean" + "type": "boolean", + "description": "Whether the workspace can validate PrivateLink endpoint service names." }, "readyForPipeline": { - "type": "boolean" + "type": "boolean", + "description": "Whether the workspace is ready to create and deploy RDI pipelines." }, "createPrivateLink": { - "type": "boolean" + "type": "boolean", + "description": "Whether the workspace can create PrivateLink endpoints." } }, - "type": "object" + "type": "object", + "description": "Workspace capabilities available in the current state." }, "InfrastructureError": { "example": { @@ -31241,23 +31262,28 @@ }, "properties": { "code": { - "type": "string" + "type": "string", + "description": "Machine-readable error code." }, "message": { - "type": "string" + "type": "string", + "description": "Human-readable error message." }, "timestamp": { "format": "date-time", - "type": "string" + "type": "string", + "description": "Time when the error was recorded." }, "details": { "additionalProperties": { "type": "object" }, - "type": "object" + "type": "object", + "description": "Additional structured error details." } }, - "type": "object" + "type": "object", + "description": "Infrastructure failure details." }, "InfrastructureIam": { "example": { @@ -31266,13 +31292,16 @@ }, "properties": { "privateLinkAllowedPrincipal": { - "type": "string" + "type": "string", + "description": "AWS principal allowed to connect to the workspace PrivateLink endpoint service." }, "secretsRoleArn": { - "type": "string" + "type": "string", + "description": "AWS IAM role ARN used to read workspace secrets." } }, - "type": "object" + "type": "object", + "description": "IAM values produced for workspace integrations." }, "InfrastructureResponse": { "example": { @@ -31323,28 +31352,36 @@ "Deleting", "Failed" ], - "type": "string" + "type": "string", + "description": "Workspace infrastructure state." }, "cidr": { - "type": "string" + "type": "string", + "description": "CIDR block assigned to the workspace deployment network." }, "timestamps": { - "$ref": "#/components/schemas/InfrastructureTimestamps" + "$ref": "#/components/schemas/InfrastructureTimestamps", + "description": "Infrastructure lifecycle timestamps." }, "iam": { - "$ref": "#/components/schemas/InfrastructureIam" + "$ref": "#/components/schemas/InfrastructureIam", + "description": "IAM values used by workspace integrations." }, "networking": { - "$ref": "#/components/schemas/NetworkingOutput" + "$ref": "#/components/schemas/NetworkingOutput", + "description": "Workspace networking outputs." }, "monitoring": { - "$ref": "#/components/schemas/MonitoringOutput" + "$ref": "#/components/schemas/MonitoringOutput", + "description": "Workspace monitoring endpoints." }, "error": { - "$ref": "#/components/schemas/InfrastructureError" + "$ref": "#/components/schemas/InfrastructureError", + "description": "Infrastructure error details when the workspace is in a failed state." } }, - "type": "object" + "type": "object", + "description": "Provisioned infrastructure state for a data integration workspace." }, "InfrastructureTimestamps": { "example": { @@ -31354,14 +31391,17 @@ "properties": { "startedAt": { "format": "date-time", - "type": "string" + "type": "string", + "description": "Time when infrastructure provisioning started." }, "updatedAt": { "format": "date-time", - "type": "string" + "type": "string", + "description": "Time when infrastructure state was last updated." } }, - "type": "object" + "type": "object", + "description": "Workspace infrastructure lifecycle timestamps." }, "MetricsUrls": { "example": { @@ -31373,19 +31413,23 @@ }, "properties": { "rdiOperatorUrl": { - "type": "string" + "type": "string", + "description": "Metrics endpoint URL for the RDI operator." }, "rdiProcessorUrl": { - "type": "string" + "type": "string", + "description": "Metrics endpoint URL for the RDI processor." }, "collectorSourceUrls": { "additionalProperties": { "type": "string" }, - "type": "object" + "type": "object", + "description": "Metrics endpoint URLs for deployed collector sources, keyed by source name." } }, - "type": "object" + "type": "object", + "description": "Metrics endpoint URLs for RDI workspace components." }, "MonitoringOutput": { "example": { @@ -31399,10 +31443,12 @@ }, "properties": { "metricsUrls": { - "$ref": "#/components/schemas/MetricsUrls" + "$ref": "#/components/schemas/MetricsUrls", + "description": "Metrics endpoint URLs for workspace components." } }, - "type": "object" + "type": "object", + "description": "Workspace monitoring outputs." }, "NetworkingOutput": { "example": { @@ -31420,16 +31466,19 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "description": "Outbound IP addresses used by workspace components." }, "availabilityZones": { "items": { "type": "string" }, - "type": "array" + "type": "array", + "description": "Availability zones used by workspace infrastructure." } }, - "type": "object" + "type": "object", + "description": "Workspace networking outputs." }, "WorkspaceResponse": { "example": { @@ -31488,33 +31537,42 @@ "properties": { "subscriptionId": { "format": "int64", - "type": "integer" + "type": "integer", + "description": "Redis Cloud subscription ID." }, "bdbId": { "format": "int64", - "type": "integer" + "type": "integer", + "description": "Redis database ID associated with the workspace." }, "rcpClusterId": { - "type": "string" + "type": "string", + "description": "RCP cluster ID that hosts workspace resources." }, "region": { - "type": "string" + "type": "string", + "description": "Cloud provider region where the workspace is deployed." }, "vpcId": { - "type": "string" + "type": "string", + "description": "VPC ID used by the workspace." }, "createdAt": { "format": "date-time", - "type": "string" + "type": "string", + "description": "Time when the workspace record was created." }, "infrastructure": { - "$ref": "#/components/schemas/InfrastructureResponse" + "$ref": "#/components/schemas/InfrastructureResponse", + "description": "Provisioned infrastructure state and connection details." }, "capabilities": { - "$ref": "#/components/schemas/Capabilities" + "$ref": "#/components/schemas/Capabilities", + "description": "Workspace features available in the current state." } }, - "type": "object" + "type": "object", + "description": "Current data integration workspace state for a subscription." }, "WorkspaceTasksResponse": { "example": { @@ -31562,10 +31620,12 @@ "items": { "$ref": "#/components/schemas/WorkspaceTaskResponse" }, - "type": "array" + "type": "array", + "description": "Workspace tasks." } }, - "type": "object" + "type": "object", + "description": "Response containing asynchronous workspace tasks." }, "CidrsInfoResponse": { "example": { @@ -32567,10 +32627,12 @@ "items": { "$ref": "#/components/schemas/WorkspaceResponse" }, - "type": "array" + "type": "array", + "description": "Data integration workspaces." } }, - "type": "object" + "type": "object", + "description": "Response containing data integration workspaces in the Redis Cloud account." }, "BdbPipelinesResponseDto": { "example": { From 58a3a8bc96994ced7c465f6bccb7596963363b00 Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Thu, 2 Jul 2026 14:19:15 +0300 Subject: [PATCH 09/10] RDSC-5669 make RDI API reference reproducible --- .github/workflows/rc_api_sync.yaml | 10 +- data/api/rc-rdi-openapi.json | 14752 +++++++++++++++++++++++++++ 2 files changed, 14759 insertions(+), 3 deletions(-) create mode 100644 data/api/rc-rdi-openapi.json diff --git a/.github/workflows/rc_api_sync.yaml b/.github/workflows/rc_api_sync.yaml index e220dfd85d..a1712bd635 100644 --- a/.github/workflows/rc_api_sync.yaml +++ b/.github/workflows/rc_api_sync.yaml @@ -42,11 +42,15 @@ jobs: curl -Ls https://api.redislabs.com/v1/cloud-api-docs/capi \ | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > /tmp/rc-capi-openapi.json - curl -Ls https://api.redislabs.com/v1/cloud-api-docs/rdi \ - | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > /tmp/rc-rdi-openapi.json + # Use the checked-in RDI source spec so the generated API reference is reproducible + # before the updated sm-cloud-api RDI spec is deployed to api.redislabs.com. + jq '(.. | .example? | try select(test("^{"))) |= fromjson' \ + data/api/rc-rdi-openapi.json > /tmp/rc-rdi-openapi.json jq -n --slurpfile capi /tmp/rc-capi-openapi.json --slurpfile rdi /tmp/rc-rdi-openapi.json ' def opkeys: ["get","put","post","delete","patch","options","head","trace"]; + def normalize_rdi_paths: + with_entries(.key |= if startswith("/v1/") then . else "/v1" + . end); def retag_rdi_paths: with_entries( .value |= with_entries( @@ -140,7 +144,7 @@ jobs: | ($rdi[0]) as $r | $c | .tags = insert_rdi_tag($c.tags) - | .paths = (($c.paths | without_old_rdi_proxy_paths) + ($r.paths | retag_rdi_paths)) + | .paths = (($c.paths | without_old_rdi_proxy_paths) + ($r.paths | normalize_rdi_paths | retag_rdi_paths)) | .components.schemas = (($c.components.schemas // {}) + ($r.components.schemas // {})) | .components.securitySchemes = (($c.components.securitySchemes // {}) + ($r.components.securitySchemes // {})) | enrich_rdi_workspace_docs diff --git a/data/api/rc-rdi-openapi.json b/data/api/rc-rdi-openapi.json new file mode 100644 index 0000000000..1807a91795 --- /dev/null +++ b/data/api/rc-rdi-openapi.json @@ -0,0 +1,14752 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Data Integration Workspace API", + "version": "2.2.2", + "description": "Data Integration Workspace API" + }, + "servers": [ + { + "description": "Generated server url", + "url": "http://localhost:8080/v1" + }, + { + "url": "https://api.example.com" + } + ], + "components": { + "schemas": { + "ComposeDraftAdvanced": { + "example": { + "processor": "{}" + }, + "properties": { + "processor": { + "type": "object" + } + }, + "type": "object" + }, + "ComposeDraftSource": { + "oneOf": [ + { + "$ref": "#/components/schemas/PostgresqlSource" + }, + { + "$ref": "#/components/schemas/MySqlSource" + }, + { + "$ref": "#/components/schemas/MariaDbSource" + }, + { + "$ref": "#/components/schemas/OracleSource" + }, + { + "$ref": "#/components/schemas/SqlServerSource" + }, + { + "$ref": "#/components/schemas/MongodbSource" + }, + { + "$ref": "#/components/schemas/SnowflakeSource" + } + ], + "type": "object" + }, + "ComposeDraftSourceBase": { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "sourceAdvanced": { + "type": "object" + }, + "sinkAdvanced": { + "type": "object" + } + }, + "type": "object" + }, + "ComposeDraftTarget": { + "example": { + "targetBdbId": 1 + }, + "properties": { + "targetBdbId": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ComposeDraftUpsertRequest": { + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + }, + "properties": { + "targetDataType": { + "enum": [ + "hash", + "json" + ], + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" + }, + "sourceName": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "pipelineDescription": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "items": { + "$ref": "#/components/schemas/Schema" + }, + "type": "array" + }, + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" + }, + "type": "array" + }, + "clientData": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "Job": { + "example": { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + "properties": { + "name": { + "type": "string" + }, + "file": { + "type": "string" + }, + "error": { + "$ref": "#/components/schemas/WebError" + }, + "rdiJob": { + "additionalProperties": true, + "type": "object" + } + }, + "required": [ + "file", + "name" + ], + "type": "object" + }, + "MariaDbSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "serverId": { + "format": "int32", + "type": "integer" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "MongodbSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "connectionString": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "MySqlSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "serverId": { + "format": "int32", + "type": "integer" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "OracleSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "pdb": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "PostgresqlSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "example": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "type": "object" + }, + "Properties": { + "type": "object" + }, + "RdiPipelineError": { + "example": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "details": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "Schema": { + "example": { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + "properties": { + "name": { + "type": "string" + }, + "tables": { + "items": { + "$ref": "#/components/schemas/Table" + }, + "type": "array" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "SnowflakeSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "accountIdentifier": { + "type": "string" + }, + "warehouse": { + "type": "string" + }, + "role": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "SqlServerSource": { + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "format": "int32", + "type": "integer" + }, + "secretArns": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + }, + "type": "object" + } + ], + "type": "object" + }, + "Table": { + "example": { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + "properties": { + "name": { + "type": "string" + }, + "columns": { + "items": { + "$ref": "#/components/schemas/TableColumn" + }, + "type": "array" + }, + "snapshot_sql": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "TableColumn": { + "example": { + "name": "name", + "uniqueConstraint": true + }, + "properties": { + "name": { + "type": "string" + }, + "uniqueConstraint": { + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "WebError": { + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "properties": { + "timestamp": { + "format": "int64", + "type": "integer" + }, + "status": { + "format": "int32", + "type": "integer" + }, + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "params": { + "type": "string" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/RdiPipelineError" + }, + "type": "array" + } + }, + "type": "object" + }, + "ComposeDraftResponse": { + "example": { + "draftId": "draftId", + "advanced": { + "processor": "{}" + }, + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "target": { + "targetBdbId": 1 + }, + "pipelineName": "pipelineName", + "createdAt": "2000-01-23T04:56:07.000+00:00", + "pipelineDescription": "pipelineDescription", + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "properties": { + "draftId": { + "type": "string" + }, + "targetDataType": { + "enum": [ + "hash", + "json" + ], + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" + }, + "sourceName": { + "type": "string" + }, + "pipelineName": { + "type": "string" + }, + "pipelineDescription": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "items": { + "$ref": "#/components/schemas/Schema" + }, + "type": "array" + }, + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" + }, + "type": "array" + }, + "clientData": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "Advanced": { + "example": { + "sink": "{}", + "source": "{}" + }, + "properties": { + "source": { + "type": "object" + }, + "sink": { + "type": "object" + } + }, + "type": "object" + }, + "Aws": { + "example": { + "privateLink": { + "endpoint": { + "vpceId": "vpceId" + }, + "serviceName": "serviceName" + } + }, + "properties": { + "privateLink": { + "$ref": "#/components/schemas/PrivateLink" + } + }, + "type": "object" + }, + "Endpoint": { + "example": { + "vpceId": "vpceId" + }, + "properties": { + "vpceId": { + "type": "string" + } + }, + "type": "object" + }, + "Pipeline": { + "example": { + "name": "name", + "deploymentCIDR": "deploymentCIDR" + }, + "properties": { + "name": { + "type": "string" + }, + "deploymentCIDR": { + "type": "string" + } + }, + "type": "object" + }, + "PipelineInfraDto": { + "example": { + "pipeline": { + "name": "name", + "deploymentCIDR": "deploymentCIDR" + }, + "source": { + "dbPass": "dbPass", + "databases": "databases", + "connectivityMode": "privateLink", + "advanced": { + "sink": "{}", + "source": "{}" + }, + "dbUseMTLS": true, + "dbType": "mysql", + "datasetSizeGB": 0, + "dbHost": "dbHost", + "dbServerId": 1, + "pdb": "pdb", + "dbPort": 6, + "dbSecretsARN": "dbSecretsARN", + "dbUseTLS": true, + "dbClientCertARN": "dbClientCertARN", + "dbCaCertARN": "dbCaCertARN", + "dbUser": "dbUser", + "dbConnectionString": "dbConnectionString", + "id": "id", + "dbClientKeyARN": "dbClientKeyARN", + "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" + }, + "aws": { + "privateLink": { + "endpoint": { + "vpceId": "vpceId" + }, + "serviceName": "serviceName" + } + } + }, + "properties": { + "pipeline": { + "$ref": "#/components/schemas/Pipeline" + }, + "aws": { + "$ref": "#/components/schemas/Aws" + }, + "source": { + "$ref": "#/components/schemas/Source" + } + }, + "type": "object" + }, + "PrivateLink": { + "example": { + "endpoint": { + "vpceId": "vpceId" + }, + "serviceName": "serviceName" + }, + "properties": { + "serviceName": { + "type": "string" + }, + "endpoint": { + "$ref": "#/components/schemas/Endpoint" + } + }, + "type": "object" + }, + "Source": { + "example": { + "dbPass": "dbPass", + "databases": "databases", + "connectivityMode": "privateLink", + "advanced": { + "sink": "{}", + "source": "{}" + }, + "dbUseMTLS": true, + "dbType": "mysql", + "datasetSizeGB": 0, + "dbHost": "dbHost", + "dbServerId": 1, + "pdb": "pdb", + "dbPort": 6, + "dbSecretsARN": "dbSecretsARN", + "dbUseTLS": true, + "dbClientCertARN": "dbClientCertARN", + "dbCaCertARN": "dbCaCertARN", + "dbUser": "dbUser", + "dbConnectionString": "dbConnectionString", + "id": "id", + "dbClientKeyARN": "dbClientKeyARN", + "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" + }, + "properties": { + "connectivityMode": { + "enum": [ + "privateLink", + "publicEndpoint" + ], + "type": "string" + }, + "id": { + "type": "string" + }, + "dbType": { + "enum": [ + "mysql", + "mariadb", + "oracle", + "sqlserver", + "postgresql", + "mongodb", + "snowflake" + ], + "type": "string" + }, + "datasetSizeGB": { + "format": "int32", + "type": "integer" + }, + "dbSecretsARN": { + "type": "string" + }, + "dbUseTLS": { + "type": "boolean" + }, + "dbUseMTLS": { + "type": "boolean" + }, + "dbCaCertARN": { + "type": "string" + }, + "dbClientCertARN": { + "type": "string" + }, + "dbClientKeyARN": { + "type": "string" + }, + "dbClientKeyPasswordARN": { + "type": "string" + }, + "dbPort": { + "format": "int32", + "type": "integer" + }, + "dbServerId": { + "format": "int32", + "type": "integer" + }, + "dbConnectionString": { + "type": "string" + }, + "databases": { + "type": "string" + }, + "pdb": { + "type": "string" + }, + "advanced": { + "$ref": "#/components/schemas/Advanced" + }, + "dbHost": { + "type": "string" + }, + "dbUser": { + "type": "string" + }, + "dbPass": { + "type": "string" + } + }, + "type": "object" + }, + "PipelineConfigAdvanced": { + "example": { + "processor": "{}" + }, + "properties": { + "processor": { + "type": "object" + } + }, + "type": "object" + }, + "PipelineConfigDto": { + "example": { + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "definitionType": "predefined" + }, + "properties": { + "targetDataType": { + "enum": [ + "hash", + "json" + ], + "type": "string" + }, + "definitionType": { + "enum": [ + "predefined", + "manual" + ], + "type": "string" + }, + "schemas": { + "items": { + "$ref": "#/components/schemas/Schema" + }, + "type": "array" + }, + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" + }, + "type": "array" + }, + "advanced": { + "$ref": "#/components/schemas/PipelineConfigAdvanced" + } + }, + "required": [ + "definitionType", + "targetDataType" + ], + "type": "object" + }, + "PipelineConfigJobsResponseDto": { + "example": { + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ] + }, + "properties": { + "jobs": { + "items": { + "$ref": "#/components/schemas/Job" + }, + "type": "array" + } + }, + "type": "object" + }, + "EulaAcceptanceResponseDto": { + "example": { + "accepted": true, + "acceptedAt": "2000-01-23T04:56:07.000+00:00" + }, + "properties": { + "accepted": { + "type": "boolean" + }, + "acceptedAt": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceCreateRequest": { + "example": { + "cidr": "cidr" + }, + "properties": { + "cidr": { + "type": "string" + } + }, + "type": "object" + }, + "TaskLink": { + "example": { + "href": "href", + "type": "type" + }, + "properties": { + "href": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "TaskLinks": { + "example": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "properties": { + "task": { + "$ref": "#/components/schemas/TaskLink" + }, + "resource": { + "$ref": "#/components/schemas/TaskLink" + } + }, + "type": "object" + }, + "WorkspaceTaskResponse": { + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, + "properties": { + "taskId": { + "type": "string" + }, + "commandType": { + "type": "string" + }, + "status": { + "type": "string" + }, + "description": { + "type": "string" + }, + "timestamp": { + "format": "date-time", + "type": "string" + }, + "response": { + "type": "object" + }, + "_links": { + "$ref": "#/components/schemas/TaskLinks" + } + }, + "type": "object" + }, + "SecretValidationRequestDto": { + "example": { + "credentialsSecretArn": "credentialsSecretArn", + "clientCertSecretArn": "clientCertSecretArn", + "clientKeySecretArn": "clientKeySecretArn", + "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", + "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", + "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", + "caCertSecretArn": "caCertSecretArn", + "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" + }, + "properties": { + "credentialsSecretArn": { + "type": "string" + }, + "caCertSecretArn": { + "type": "string" + }, + "clientCertSecretArn": { + "type": "string" + }, + "clientKeySecretArn": { + "type": "string" + }, + "clientKeyPassphraseSecretArn": { + "type": "string" + }, + "snowflakeCredentialsSecretArn": { + "type": "string" + }, + "snowflakePrivateKeySecretArn": { + "type": "string" + }, + "snowflakePrivateKeyPassphraseSecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "SecretError": { + "example": { + "code": "code", + "message": "message" + }, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "SecretValidationResponseDto": { + "example": { + "success": true, + "errors": [ + { + "code": "code", + "message": "message" + }, + { + "code": "code", + "message": "message" + } + ] + }, + "properties": { + "success": { + "type": "boolean" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/SecretError" + }, + "type": "array" + } + }, + "type": "object" + }, + "SingleSecretValidationRequestDto": { + "example": { + "purpose": "source-credentials", + "secretArn": "secretArn" + }, + "properties": { + "secretArn": { + "type": "string" + }, + "purpose": { + "enum": [ + "source-credentials", + "source-tls-ca", + "source-mtls-client-cert", + "source-mtls-client-key", + "source-mtls-key-password", + "source-snowflake-credentials", + "source-snowflake-private-key", + "source-snowflake-key-password" + ], + "type": "string" + } + }, + "required": [ + "purpose", + "secretArn" + ], + "type": "object" + }, + "SingleSecretValidationResponseDto": { + "example": { + "success": true, + "errorCode": "errorCode", + "error": "error" + }, + "properties": { + "success": { + "type": "boolean" + }, + "errorCode": { + "type": "string" + }, + "error": { + "type": "string" + } + }, + "type": "object" + }, + "CreatePrivateLinkEndpointRequest": { + "example": { + "serviceName": "serviceName" + }, + "properties": { + "serviceName": { + "type": "string" + } + }, + "required": [ + "serviceName" + ], + "type": "object" + }, + "PrivateLinkValidationResponse": { + "example": { + "success": true, + "error": "error" + }, + "properties": { + "success": { + "type": "boolean" + }, + "error": { + "type": "string" + } + }, + "type": "object" + }, + "PrivateLinkValidationRequest": { + "example": { + "serviceName": "serviceName" + }, + "properties": { + "serviceName": { + "type": "string" + } + }, + "required": [ + "serviceName" + ], + "type": "object" + }, + "ComposeDraftCreatedResponse": { + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "draftId": "draftId", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "properties": { + "draftId": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "PipelineComponentResponse": { + "example": { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "status": { + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "type": "string" + }, + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "metricCollections": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RdiPipelineResponse": { + "example": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" + }, + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "status": "started" + }, + "properties": { + "errorOtherThanJobValidationError": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "config": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "status": { + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "type": "string" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/RdiPipelineError" + }, + "type": "array" + }, + "components": { + "items": { + "$ref": "#/components/schemas/PipelineComponentResponse" + }, + "type": "array" + }, + "current": { + "type": "boolean" + } + }, + "type": "object" + }, + "ComposeTranslateRequest": { + "example": { + "cloud": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + }, + "rdi": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" + }, + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "status": "started" + }, + "direction": "cloud-to-rdi" + }, + "properties": { + "direction": { + "enum": [ + "cloud-to-rdi", + "rdi-to-cloud" + ], + "type": "string" + }, + "cloud": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "rdi": { + "$ref": "#/components/schemas/RdiPipelineResponse" + } + }, + "type": "object" + }, + "ComposeTranslateResponse": { + "example": { + "rdi": { + "active": true, + "config": { + "key": "{}" + } + }, + "draft": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + }, + "warnings": [ + "warnings", + "warnings" + ] + }, + "properties": { + "draft": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "rdi": { + "$ref": "#/components/schemas/RdiPatchRequest" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RdiPatchRequest": { + "example": { + "active": true, + "config": { + "key": "{}" + } + }, + "properties": { + "active": { + "type": "boolean" + }, + "config": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "PipelineCreateRequestDto": { + "example": { + "targetBdbId": 1 + }, + "properties": { + "targetBdbId": { + "format": "int64", + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "targetBdbId" + ], + "type": "object" + }, + "PipelineCreateResponseDto": { + "example": { + "pipelineId": "pipelineId" + }, + "properties": { + "pipelineId": { + "type": "string" + } + }, + "required": [ + "pipelineId" + ], + "type": "object" + }, + "ResetPipelineRequestDto": { + "example": { + "flush": true + }, + "properties": { + "flush": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeployPipelineRequestDto": { + "example": { + "reset": { + "flush": true + } + }, + "properties": { + "reset": { + "$ref": "#/components/schemas/ResetPipelineRequestDto" + } + }, + "type": "object" + }, + "WorkspaceClusterRef": { + "example": { + "id": 5 + }, + "properties": { + "id": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "WorkspaceDatabaseResponse": { + "example": { + "cluster": { + "id": 5 + }, + "publicDnsAddress": "publicDnsAddress", + "memorySize": 6, + "dnsAddress": "dnsAddress", + "sslEnabled": true, + "name": "name", + "defaultUser": true, + "subscription": { + "id": 1 + }, + "throughput": 5, + "databaseId": 0, + "type": "type", + "status": "status" + }, + "properties": { + "databaseId": { + "format": "int64", + "type": "integer" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "memorySize": { + "format": "int64", + "type": "integer" + }, + "subscription": { + "$ref": "#/components/schemas/WorkspaceSubscriptionRef" + }, + "cluster": { + "$ref": "#/components/schemas/WorkspaceClusterRef" + }, + "dnsAddress": { + "type": "string" + }, + "publicDnsAddress": { + "type": "string" + }, + "sslEnabled": { + "type": "boolean" + }, + "throughput": { + "format": "int64", + "type": "integer" + }, + "defaultUser": { + "type": "boolean" + } + }, + "type": "object" + }, + "WorkspaceDatabasesResponse": { + "example": { + "databases": [ + { + "cluster": { + "id": 5 + }, + "publicDnsAddress": "publicDnsAddress", + "memorySize": 6, + "dnsAddress": "dnsAddress", + "sslEnabled": true, + "name": "name", + "defaultUser": true, + "subscription": { + "id": 1 + }, + "throughput": 5, + "databaseId": 0, + "type": "type", + "status": "status" + }, + { + "cluster": { + "id": 5 + }, + "publicDnsAddress": "publicDnsAddress", + "memorySize": 6, + "dnsAddress": "dnsAddress", + "sslEnabled": true, + "name": "name", + "defaultUser": true, + "subscription": { + "id": 1 + }, + "throughput": 5, + "databaseId": 0, + "type": "type", + "status": "status" + } + ] + }, + "properties": { + "databases": { + "items": { + "$ref": "#/components/schemas/WorkspaceDatabaseResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkspaceSubscriptionRef": { + "example": { + "id": 1 + }, + "properties": { + "id": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Capabilities": { + "example": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "properties": { + "validateSecrets": { + "type": "boolean" + }, + "validatePrivateLink": { + "type": "boolean" + }, + "readyForPipeline": { + "type": "boolean" + }, + "createPrivateLink": { + "type": "boolean" + } + }, + "type": "object" + }, + "InfrastructureError": { + "example": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "timestamp": { + "format": "date-time", + "type": "string" + }, + "details": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + } + }, + "type": "object" + }, + "InfrastructureIam": { + "example": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "properties": { + "privateLinkAllowedPrincipal": { + "type": "string" + }, + "secretsRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "InfrastructureResponse": { + "example": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "properties": { + "state": { + "enum": [ + "NotProvisioned", + "Provisioning", + "Ready", + "Deleting", + "Failed" + ], + "type": "string" + }, + "cidr": { + "type": "string" + }, + "timestamps": { + "$ref": "#/components/schemas/InfrastructureTimestamps" + }, + "iam": { + "$ref": "#/components/schemas/InfrastructureIam" + }, + "networking": { + "$ref": "#/components/schemas/NetworkingOutput" + }, + "monitoring": { + "$ref": "#/components/schemas/MonitoringOutput" + }, + "error": { + "$ref": "#/components/schemas/InfrastructureError" + } + }, + "type": "object" + }, + "InfrastructureTimestamps": { + "example": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "properties": { + "startedAt": { + "format": "date-time", + "type": "string" + }, + "updatedAt": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "MetricsUrls": { + "example": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + }, + "properties": { + "rdiOperatorUrl": { + "type": "string" + }, + "rdiProcessorUrl": { + "type": "string" + }, + "collectorSourceUrls": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "MonitoringOutput": { + "example": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "properties": { + "metricsUrls": { + "$ref": "#/components/schemas/MetricsUrls" + } + }, + "type": "object" + }, + "NetworkingOutput": { + "example": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "properties": { + "egressIps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "availabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkspaceResponse": { + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + }, + "properties": { + "subscriptionId": { + "format": "int64", + "type": "integer" + }, + "bdbId": { + "format": "int64", + "type": "integer" + }, + "rcpClusterId": { + "type": "string" + }, + "region": { + "type": "string" + }, + "vpcId": { + "type": "string" + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "infrastructure": { + "$ref": "#/components/schemas/InfrastructureResponse" + }, + "capabilities": { + "$ref": "#/components/schemas/Capabilities" + } + }, + "type": "object" + }, + "WorkspaceTasksResponse": { + "example": { + "tasks": [ + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + ] + }, + "properties": { + "tasks": { + "items": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "CidrsInfoResponse": { + "example": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] + }, + "properties": { + "usedCidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "defaultCidr": { + "type": "string" + }, + "nextFreeCidr": { + "type": "string" + } + }, + "type": "object" + }, + "PrivateLinkEndpointListResponse": { + "example": { + "endpoints": [ + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + }, + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + } + ] + }, + "properties": { + "endpoints": { + "items": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "PrivateLinkEndpointResponse": { + "example": { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + }, + "properties": { + "endpointId": { + "type": "string" + }, + "type": { + "type": "string" + }, + "state": { + "type": "string" + }, + "network": { + "$ref": "#/components/schemas/PrivateLinkNetwork" + }, + "error": { + "$ref": "#/components/schemas/PrivateLinkError" + } + }, + "type": "object" + }, + "PrivateLinkError": { + "example": { + "code": "code", + "message": "message" + }, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "PrivateLinkNetwork": { + "example": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + }, + "properties": { + "serviceName": { + "type": "string" + }, + "vpceId": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "ComposeDraftListResponse": { + "example": { + "items": [ + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + }, + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + } + ] + }, + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ComposeDraftSummaryResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "ComposeDraftSourceSummary": { + "example": { + "name": "name" + }, + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "ComposeDraftSummaryResponse": { + "example": { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + }, + "properties": { + "draftId": { + "type": "string" + }, + "targetDataType": { + "enum": [ + "hash", + "json" + ], + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSourceSummary" + } + }, + "type": "object" + }, + "SearchPipeline": { + "example": { + "bdbId": 0, + "id": "id" + }, + "properties": { + "id": { + "type": "string" + }, + "bdbId": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "SearchPipelinesResponseDto": { + "example": { + "pipelines": [ + { + "bdbId": 0, + "id": "id" + }, + { + "bdbId": 0, + "id": "id" + } + ] + }, + "properties": { + "pipelines": { + "items": { + "$ref": "#/components/schemas/SearchPipeline" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetPipelineResponseDto": { + "example": { + "name": "name", + "id": "id", + "error": { + "code": "code", + "id": "id", + "message": "message" + }, + "status": "draft" + }, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "draft", + "pipeline-setup-pending", + "pl-initialized", + "pl-approval-pending", + "pl-failed", + "pl-created", + "infra-provision-initialized", + "infra-provisioned", + "infra-provision-failed", + "rdi-deploy-initialized", + "rdi-deployed", + "rdi-deploy-failed", + "rdi-healthy", + "rdi-health-check-failed", + "target-db-connection-test-initialized", + "target-db-connection-test-failed", + "target-db-connection-test-success", + "source-db-connection-test-initialized", + "source-db-connection-test-failed", + "source-db-connection-test-success", + "pipeline-deploy-initialized", + "pipeline-deploy-failed", + "inactive", + "active", + "delete-pending", + "delete-failed", + "delete-success" + ], + "type": "string" + }, + "error": { + "$ref": "#/components/schemas/PipelineError" + } + }, + "required": [ + "id", + "status" + ], + "type": "object" + }, + "PipelineError": { + "example": { + "code": "code", + "id": "id", + "message": "message" + }, + "properties": { + "id": { + "type": "string" + }, + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "PipelineRuntimeStatusResponseDto": { + "example": { + "state": "not-running", + "pipelineStatus": "started", + "errors": [ + { + "code": "code", + "message": "message" + }, + { + "code": "code", + "message": "message" + } + ], + "status": "validating" + }, + "properties": { + "status": { + "enum": [ + "validating", + "stopping", + "starting", + "resetting", + "ready", + "not-ready", + "stopped" + ], + "type": "string" + }, + "state": { + "enum": [ + "not-running", + "cdc", + "initial-sync" + ], + "type": "string" + }, + "pipelineStatus": { + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "type": "string" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/PipelineStatusErrorDto" + }, + "type": "array" + } + }, + "type": "object" + }, + "PipelineStatusErrorDto": { + "example": { + "code": "code", + "message": "message" + }, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "type": "object" + }, + "DataStreamDto": { + "example": { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 + }, + "properties": { + "name": { + "type": "string" + }, + "total": { + "format": "int32", + "type": "integer" + }, + "pending": { + "format": "int32", + "type": "integer" + }, + "inserted": { + "format": "int32", + "type": "integer" + }, + "updated": { + "format": "int32", + "type": "integer" + }, + "deleted": { + "format": "int32", + "type": "integer" + }, + "filtered": { + "format": "int32", + "type": "integer" + }, + "rejected": { + "format": "int32", + "type": "integer" + }, + "deduplicated": { + "format": "int32", + "type": "integer" + }, + "lastArrival": { + "type": "string" + } + }, + "type": "object" + }, + "PipelineRuntimeStatsResponseDto": { + "example": { + "mode": "mode", + "dataStreams": [ + { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 + }, + { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 + } + ], + "sourceType": "sourceType", + "totals": { + "total": 0, + "deduplicated": 9, + "inserted": 1, + "deleted": 5, + "filtered": 2, + "rejected": 7, + "pending": 6, + "name": "name", + "lastArrival": "lastArrival", + "updated": 5 + }, + "lastRetrieved": "lastRetrieved", + "type": "type", + "status": "status" + }, + "properties": { + "lastRetrieved": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "type": { + "type": "string" + }, + "status": { + "type": "string" + }, + "sourceType": { + "type": "string" + }, + "totals": { + "$ref": "#/components/schemas/DataStreamDto" + }, + "dataStreams": { + "items": { + "$ref": "#/components/schemas/DataStreamDto" + }, + "type": "array" + } + }, + "type": "object" + }, + "CidrsInfoDto": { + "example": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] + }, + "properties": { + "usedCidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "defaultCidr": { + "type": "string" + }, + "nextFreeCidr": { + "type": "string" + } + }, + "type": "object" + }, + "GetPipelinePrerequisitesResponseDto": { + "example": { + "sourceDbTypes": [ + { + "code": "code", + "label": "label" + }, + { + "code": "code", + "label": "label" + } + ], + "pipelineSecretAllowedRole": "pipelineSecretAllowedRole", + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "cidrsInfo": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] + }, + "targetTypes": [ + { + "code": "code", + "label": "label" + }, + { + "code": "code", + "label": "label" + } + ] + }, + "properties": { + "privateLinkAllowedPrincipal": { + "type": "string" + }, + "sourceDbTypes": { + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + }, + "type": "array" + }, + "targetTypes": { + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + }, + "type": "array" + }, + "cidrsInfo": { + "$ref": "#/components/schemas/CidrsInfoDto" + }, + "pipelineSecretAllowedRole": { + "type": "string" + } + }, + "type": "object" + }, + "TypeResponseDto": { + "example": { + "code": "code", + "label": "label" + }, + "properties": { + "code": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "PipelineMetricsUrlsResponseDto": { + "example": { + "rdiProcessorUrl": "rdiProcessorUrl", + "collectorSourceUrl": "collectorSourceUrl" + }, + "properties": { + "rdiProcessorUrl": { + "type": "string" + }, + "collectorSourceUrl": { + "type": "string" + } + }, + "type": "object" + }, + "SourceSchemasResponseDto": { + "example": { + "schemas": [ + "schemas", + "schemas" + ] + }, + "properties": { + "schemas": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SchemaDto": { + "example": { + "tables": [ + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + } + ], + "name": "name" + }, + "properties": { + "name": { + "type": "string" + }, + "tables": { + "items": { + "$ref": "#/components/schemas/TableDto" + }, + "type": "array" + } + }, + "type": "object" + }, + "SourceMetadataResponseDto": { + "example": { + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, + { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + } + ], + "name": "name" + } + ] + }, + "properties": { + "schemas": { + "items": { + "$ref": "#/components/schemas/SchemaDto" + }, + "type": "array" + } + }, + "type": "object" + }, + "TableColumnDto": { + "example": { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "size": { + "format": "int32", + "type": "integer" + }, + "primaryKey": { + "type": "boolean" + }, + "uniqueConstraint": { + "type": "boolean" + } + }, + "type": "object" + }, + "TableDto": { + "example": { + "columns": [ + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + }, + { + "size": 0, + "name": "name", + "type": "type", + "uniqueConstraint": true, + "primaryKey": true + } + ], + "cdcReady": true, + "name": "name" + }, + "properties": { + "name": { + "type": "string" + }, + "cdcReady": { + "type": "boolean" + }, + "columns": { + "items": { + "$ref": "#/components/schemas/TableColumnDto" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkspacesResponse": { + "example": { + "workspaces": [ + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + }, + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + } + ] + }, + "properties": { + "workspaces": { + "items": { + "$ref": "#/components/schemas/WorkspaceResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "BdbPipelinesResponseDto": { + "example": { + "workspaceIds": [ + "workspaceIds", + "workspaceIds" + ], + "pipelineIds": [ + "pipelineIds", + "pipelineIds" + ] + }, + "properties": { + "pipelineIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "workspaceIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "putJobsYaml_request": { + "properties": { + "files": { + "items": { + "format": "binary", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "files" + ], + "type": "object" + }, + "RdiCoreInfoResponse": { + "properties": { + "version": { + "type": "string", + "title": "Version" + } + }, + "type": "object", + "required": [ + "version" + ], + "title": "InfoResponse", + "description": "Response model containing information about the API." + }, + "RdiCorePipelineCreateRequest": { + "properties": { + "name": { + "type": "string", + "title": "Name", + "default": "default" + }, + "active": { + "type": "boolean", + "title": "Active", + "default": true + }, + "config": { + "additionalProperties": true, + "type": "object", + "title": "Config" + } + }, + "additionalProperties": false, + "type": "object", + "title": "PipelineCreateRequest", + "description": "Request model for creating a new pipeline." + }, + "RdiCoreredis_di_api__models__errors__ErrorResponse": { + "properties": { + "detail": { + "type": "string", + "title": "Detail", + "examples": [ + "Detailed error message" + ] + }, + "errors": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Errors" + } + }, + "type": "object", + "required": [ + "detail" + ], + "title": "ErrorResponse", + "description": "Generic error response model" + }, + "RdiCoreredis_di_api__models__errors__Error": { + "properties": { + "code": { + "$ref": "#/components/schemas/RdiCoreErrorCode" + }, + "message": { + "type": "string", + "title": "Message" + }, + "remediation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Remediation" + }, + "details": { + "additionalProperties": true, + "type": "object", + "title": "Details" + } + }, + "type": "object", + "required": [ + "code", + "message" + ], + "title": "Error", + "description": "Generic error model" + }, + "RdiCoreErrorCode": { + "type": "string", + "enum": [ + "validation_error", + "job_validation_error", + "request_validation_error", + "cdc_validation_error", + "pipeline_error", + "pipeline_pending", + "pipeline_component_error", + "operation_error" + ], + "title": "ErrorCode", + "description": "Error codes" + }, + "RdiCorePipelineResponse": { + "properties": { + "name": { + "type": "string", + "title": "Name" + }, + "active": { + "type": "boolean", + "title": "Active" + }, + "config": { + "additionalProperties": true, + "type": "object", + "title": "Config" + }, + "status": { + "$ref": "#/components/schemas/RdiCoreStatus", + "default": "unknown" + }, + "status_changed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Status Changed At" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" + }, + "type": "array", + "title": "Errors" + }, + "components": { + "items": { + "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" + }, + "type": "array", + "title": "Components" + }, + "current": { + "type": "boolean", + "title": "Current", + "default": false + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "active", + "config" + ], + "title": "PipelineResponse", + "description": "Response model containing the details of a pipeline." + }, + "RdiCorePipelineComponentResponse": { + "properties": { + "name": { + "type": "string", + "title": "Name" + }, + "type": { + "$ref": "#/components/schemas/RdiCoreComponentType" + }, + "version": { + "type": "string", + "title": "Version" + }, + "status": { + "$ref": "#/components/schemas/RdiCoreStatus", + "default": "unknown" + }, + "errors": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Errors" + }, + "metric_collections": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Metric Collections" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "type", + "version" + ], + "title": "PipelineComponentResponse", + "description": "Response model containing the details of a pipeline component." + }, + "RdiCoreStatus": { + "type": "string", + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ], + "title": "Status", + "description": "Pipeline status." + }, + "RdiCoreComponentType": { + "type": "string", + "enum": [ + "debezium-collector", + "collector-api", + "stream-processor", + "metrics-exporter", + "flink-processor-jobmanager", + "flink-processor-taskmanager", + "riotx-collector", + "unknown" + ], + "title": "ComponentType", + "description": "Component types for RDI pipeline components." + }, + "RdiCorePipelinePatchRequest": { + "properties": { + "active": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Active" + }, + "config": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Config" + } + }, + "additionalProperties": false, + "type": "object", + "title": "PipelinePatchRequest", + "description": "Request model for updating a pipeline partially." + }, + "RdiCorePipelineUpdateRequest": { + "properties": { + "active": { + "type": "boolean", + "title": "Active", + "default": true + }, + "config": { + "additionalProperties": true, + "type": "object", + "title": "Config" + } + }, + "additionalProperties": false, + "type": "object", + "title": "PipelineUpdateRequest", + "description": "Request model for updating a pipeline completely." + }, + "RdiCorePipelineStatusResponse": { + "properties": { + "status": { + "$ref": "#/components/schemas/RdiCoreStatus", + "default": "unknown" + }, + "status_changed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "title": "Status Changed At" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" + }, + "type": "array", + "title": "Errors" + }, + "components": { + "items": { + "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" + }, + "type": "array", + "title": "Components" + }, + "current": { + "type": "boolean", + "title": "Current", + "default": false + } + }, + "additionalProperties": false, + "type": "object", + "title": "PipelineStatusResponse", + "description": "Response model containing the details of a pipeline status." + }, + "RdiCorePipelineMetricCollectionResponse": { + "properties": { + "name": { + "type": "string", + "title": "Name" + }, + "component": { + "type": "string", + "title": "Component" + }, + "metrics": { + "additionalProperties": true, + "type": "object", + "title": "Metrics" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "component", + "metrics" + ], + "title": "PipelineMetricCollectionResponse", + "description": "Response model containing the details of a metric collection." + }, + "RdiCorePipelineSecretCreateRequest": { + "properties": { + "key": { + "type": "string", + "title": "Key" + }, + "value": { + "type": "string", + "title": "Value" + }, + "type": { + "type": "string", + "enum": [ + "simple", + "file" + ], + "title": "Type", + "default": "simple" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key", + "value" + ], + "title": "PipelineSecretCreateRequest", + "description": "Request model for creating a new pipeline secret." + }, + "RdiCorePipelineSecretResponse": { + "properties": { + "key": { + "type": "string", + "title": "Key" + }, + "type": { + "type": "string", + "enum": [ + "simple", + "file" + ], + "title": "Type" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "key", + "type" + ], + "title": "PipelineSecretResponse", + "description": "Response model for a pipeline secret." + }, + "RdiCorePipelineSecretUpdateRequest": { + "properties": { + "value": { + "type": "string", + "title": "Value" + }, + "type": { + "type": "string", + "enum": [ + "simple", + "file" + ], + "title": "Type", + "default": "simple" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "value" + ], + "title": "PipelineSecretUpdateRequest", + "description": "Request model for updating an existing pipeline secret." + }, + "RdiCoreSourceSchemaDetails": { + "type": "string", + "enum": [ + "schemas", + "tables", + "columns" + ], + "title": "SourceSchemaDetails", + "description": "Detail level for source metadata responses." + }, + "RdiCorePipelineSourceSchemaResponse": { + "properties": { + "schemas": { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreSourceSchemaResponse" + }, + "type": "object", + "title": "Schemas", + "examples": [ + { + "inventory": { + "tables": { + "addresses": { + "cdc_ready": true, + "columns": { + "zip": { + "primary_key": false, + "size": 255, + "type": "varchar", + "unique_constraint": false + } + } + } + } + } + } + ] + } + }, + "additionalProperties": false, + "type": "object", + "title": "PipelineSourceSchemaResponse", + "description": "Nested source metadata response for a pipeline source." + }, + "RdiCoreSourceSchemaResponse": { + "properties": { + "tables": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreSourceTableResponse" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Tables", + "examples": [ + { + "users": { + "cdc_ready": true, + "columns": { + "id": { + "primary_key": true, + "size": 32, + "type": "int4", + "unique_constraint": true + } + } + } + } + ] + } + }, + "additionalProperties": false, + "type": "object", + "title": "SourceSchemaResponse", + "description": "Metadata for a single source schema or database." + }, + "RdiCoreSourceTableResponse": { + "properties": { + "cdc_ready": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Cdc Ready", + "examples": [ + true + ] + }, + "columns": { + "anyOf": [ + { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreSourceColumnResponse" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Columns", + "examples": [ + { + "id": { + "primary_key": true, + "size": 32, + "type": "int4", + "unique_constraint": true + } + } + ] + } + }, + "additionalProperties": false, + "type": "object", + "title": "SourceTableResponse", + "description": "Metadata for a single source table." + }, + "RdiCoreSourceColumnResponse": { + "properties": { + "type": { + "type": "string", + "title": "Type", + "examples": [ + "varchar" + ] + }, + "size": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size", + "examples": [ + 255 + ] + }, + "primary_key": { + "type": "boolean", + "title": "Primary Key", + "default": false, + "examples": [ + false + ] + }, + "unique_constraint": { + "type": "boolean", + "title": "Unique Constraint", + "default": false, + "examples": [ + false + ] + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "type" + ], + "title": "SourceColumnResponse", + "description": "Metadata for a single source column." + }, + "RdiCoreFlushResponse": { + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "description": "Whether the flush operation was successful" + }, + "message": { + "type": "string", + "title": "Message", + "description": "Human-readable result message" + } + }, + "type": "object", + "required": [ + "success", + "message" + ], + "title": "FlushResponse", + "description": "Response model for the target flush operation." + }, + "RdiCoreDlqListResponse": { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreDlqTableInfo" + }, + "type": "object", + "title": "DlqListResponse", + "description": "Response model for listing all DLQ tables with their counts.\n\nReturns a dictionary mapping table names to their DLQ info.\nExample: {\"source.schema.table1\": {\"total_count\": 100}, ...}" + }, + "RdiCoreDlqTableInfo": { + "properties": { + "total_count": { + "type": "integer", + "minimum": 0.0, + "title": "Total Count", + "description": "Total number of records in the DLQ stream", + "examples": [ + 1500 + ] + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "total_count" + ], + "title": "DlqTableInfo", + "description": "Model representing DLQ info for a single table." + }, + "RdiCoreDlqTableResponse": { + "additionalProperties": { + "$ref": "#/components/schemas/RdiCoreDlqTableInfo" + }, + "type": "object", + "title": "DlqTableResponse", + "description": "Response model for a single DLQ table info.\n\nReturns a dictionary with single table name mapped to its DLQ info.\nExample: {\"source.schema.table\": {\"total_count\": 100}}" + }, + "RdiCoreSortOrder": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "title": "SortOrder", + "description": "Sort order for DLQ records." + }, + "RdiCoreDlqRecordsResponse": { + "properties": { + "records": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array", + "title": "Records", + "description": "List of DLQ records" + } + }, + "additionalProperties": false, + "type": "object", + "title": "DlqRecordsResponse", + "description": "Response model for DLQ records." + } + } + }, + "tags": [ + { + "name": "Workspace", + "x-order": "1", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + { + "name": "Tasks", + "x-order": "2", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + { + "name": "Secrets", + "x-order": "3", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + { + "name": "PrivateLink", + "x-order": "4", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + { + "name": "Compose", + "x-order": "5", + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + { + "name": "RDI Core", + "description": "Data Integration (RDI) endpoints. Experimental - this surface is independent of the Cloud API and may change or break between minor releases.\n\nRDI Core API version: 0.0.0\n", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + }, + "x-order": "6", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "x-rdi-core-api-version": "0.0.0", + "x-rdi-core-api-docs-url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + ], + "paths": { + "/subscriptions/{subscriptionId}/data-integration-workspace": { + "delete": { + "description": "Starts deleting the data integration workspace for a subscription and returns an asynchronous task.", + "operationId": "deleteWorkspace", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "Workspace deletion accepted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Delete a data integration workspace", + "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "get": { + "description": "Returns the current data integration workspace state for the specified subscription.", + "operationId": "getWorkspace", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceResponse" + }, + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + } + } + }, + "description": "Workspace returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get a data integration workspace", + "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "post": { + "description": "Starts provisioning a data integration workspace for a subscription and returns an asynchronous task.", + "operationId": "createWorkspace", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceCreateRequest" + }, + "example": { + "cidr": "cidr" + } + } + }, + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "Workspace creation accepted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Create a data integration workspace", + "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/data-integration-workspaces": { + "get": { + "description": "Lists all data integration workspaces in the current Redis Cloud account.", + "operationId": "listWorkspaces", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspacesResponse" + }, + "example": { + "workspaces": [ + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + }, + { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "capabilities": { + "validateSecrets": true, + "readyForPipeline": true, + "validatePrivateLink": true, + "createPrivateLink": true + }, + "infrastructure": { + "iam": { + "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", + "secretsRoleArn": "secretsRoleArn" + }, + "timestamps": { + "startedAt": "2000-01-23T04:56:07.000+00:00", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + }, + "cidr": "cidr", + "networking": { + "egressIps": [ + "egressIps", + "egressIps" + ], + "availabilityZones": [ + "availabilityZones", + "availabilityZones" + ] + }, + "state": "NotProvisioned", + "monitoring": { + "metricsUrls": { + "collectorSourceUrls": { + "key": "collectorSourceUrls" + }, + "rdiProcessorUrl": "rdiProcessorUrl", + "rdiOperatorUrl": "rdiOperatorUrl" + } + }, + "error": { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + }, + "vpcId": "vpcId", + "bdbId": 6, + "rcpClusterId": "rcpClusterId", + "subscriptionId": 0, + "region": "region" + } + ] + } + } + }, + "description": "Workspaces returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "List data integration workspaces", + "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { + "get": { + "description": "Lists asynchronous workspace tasks for the specified data integration workspace.", + "operationId": "listTasks", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTasksResponse" + }, + "example": { + "tasks": [ + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + }, + { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + ] + } + } + }, + "description": "Workspace tasks returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "List workspace tasks", + "x-speakeasy-group": "tasks", + "tags": [ + "Tasks" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { + "get": { + "description": "Returns one asynchronous workspace task by task ID.", + "operationId": "getTask", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "taskId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "Workspace task returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get a workspace task", + "x-speakeasy-group": "tasks", + "tags": [ + "Tasks" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { + "get": { + "description": "Lists PrivateLink endpoints for the data integration workspace in the specified subscription.", + "operationId": "listEndpoints", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" + }, + "example": { + "endpoints": [ + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + }, + { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + } + ] + } + } + }, + "description": "PrivateLink endpoints returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "List PrivateLink endpoints", + "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "post": { + "description": "Starts creating a PrivateLink endpoint for the data integration workspace and returns an asynchronous task.", + "operationId": "createEndpoint", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePrivateLinkEndpointRequest" + }, + "example": { + "serviceName": "serviceName" + } + } + }, + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "PrivateLink endpoint creation accepted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Create a PrivateLink endpoint", + "x-speakeasy-group": "privatelink", + "x-speakeasy-name-override": "create-endpoint", + "tags": [ + "PrivateLink" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { + "delete": { + "description": "Starts deleting a PrivateLink endpoint from the data integration workspace and returns an asynchronous task.", + "operationId": "deleteEndpoint", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "endpointId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceTaskResponse" + }, + "example": { + "commandType": "commandType", + "_links": { + "task": { + "href": "href", + "type": "type" + }, + "resource": { + "href": "href", + "type": "type" + } + }, + "response": "{}", + "description": "description", + "taskId": "taskId", + "status": "status", + "timestamp": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "PrivateLink endpoint deletion accepted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Delete a PrivateLink endpoint", + "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "get": { + "description": "Returns one PrivateLink endpoint by endpoint ID.", + "operationId": "getEndpoint", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "endpointId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" + }, + "example": { + "endpointId": "endpointId", + "state": "state", + "type": "type", + "error": { + "code": "code", + "message": "message" + }, + "network": { + "vpceId": "vpceId", + "serviceName": "serviceName", + "url": "url" + } + } + } + }, + "description": "PrivateLink endpoint returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get a PrivateLink endpoint", + "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { + "post": { + "description": "Validates reachability for an existing PrivateLink endpoint attached to the data integration workspace.", + "operationId": "validateEndpoint", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "endpointId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationResponse" + }, + "example": { + "success": true, + "error": "error" + } + } + }, + "description": "PrivateLink endpoint validation completed" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate a PrivateLink endpoint", + "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { + "post": { + "description": "Validates an AWS PrivateLink endpoint service name before creating a workspace PrivateLink endpoint.", + "operationId": "validatePrivateLink", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationRequest" + }, + "example": { + "serviceName": "serviceName" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationResponse" + }, + "example": { + "success": true, + "error": "error" + } + } + }, + "description": "PrivateLink service validation completed" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate a PrivateLink service", + "x-speakeasy-group": "privatelink", + "tags": [ + "PrivateLink" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { + "get": { + "description": "Returns used CIDRs, the default CIDR, and the next free CIDR for data integration workspace provisioning.", + "operationId": "getSuggestedCidrs", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": true, + "in": "query", + "name": "cidr-mask", + "required": false, + "schema": { + "default": 22, + "format": "int32", + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CidrsInfoResponse" + }, + "example": { + "nextFreeCidr": "nextFreeCidr", + "defaultCidr": "defaultCidr", + "usedCidrs": [ + "usedCidrs", + "usedCidrs" + ] + } + } + }, + "description": "Suggested CIDRs returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get suggested workspace CIDRs", + "x-speakeasy-group": "workspaces", + "tags": [ + "Workspace" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/compose": { + "get": { + "description": "Lists compose drafts for the specified data integration workspace.", + "operationId": "listDrafts", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftListResponse" + }, + "example": { + "items": [ + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + }, + { + "draftId": "draftId", + "targetDataType": "hash", + "source": { + "name": "name" + } + } + ] + } + } + }, + "description": "Compose drafts returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "List compose drafts", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "post": { + "description": "Creates a compose draft for building or editing a data integration pipeline configuration.", + "operationId": "createDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + } + } + } + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftCreatedResponse" + }, + "example": { + "createdAt": "2000-01-23T04:56:07.000+00:00", + "draftId": "draftId", + "updatedAt": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "Compose draft created" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Create a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { + "post": { + "description": "Mounts secret providers from an ad-hoc compose payload into the data integration workspace.", + "operationId": "mountSecretsFromPayload", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Compose secrets mounted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Mount compose payload secrets", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { + "post": { + "description": "Translates between cloud compose configuration and the RDI-native pipeline configuration format.", + "operationId": "translate", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateRequest" + }, + "example": { + "cloud": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + }, + "rdi": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" + }, + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "status": "started" + }, + "direction": "cloud-to-rdi" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateResponse" + }, + "example": { + "rdi": { + "active": true, + "config": { + "key": "{}" + } + }, + "draft": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + }, + "warnings": [ + "warnings", + "warnings" + ] + } + } + }, + "description": "Compose configuration translated" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Translate a compose configuration", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { + "delete": { + "description": "Deletes a compose draft from the data integration workspace.", + "operationId": "deleteDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "204": { + "description": "Compose draft deleted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Delete a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "get": { + "description": "Returns one compose draft by draft ID.", + "operationId": "getDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + }, + "example": { + "draftId": "draftId", + "advanced": { + "processor": "{}" + }, + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "target": { + "targetBdbId": 1 + }, + "pipelineName": "pipelineName", + "createdAt": "2000-01-23T04:56:07.000+00:00", + "pipelineDescription": "pipelineDescription", + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "updatedAt": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "Compose draft returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + }, + "put": { + "description": "Replaces the body of an existing compose draft.", + "operationId": "updateDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "example": { + "pipelineName": "pipelineName", + "pipelineDescription": "pipelineDescription", + "advanced": { + "processor": "{}" + }, + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "target": { + "targetBdbId": 1 + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftResponse" + }, + "example": { + "draftId": "draftId", + "advanced": { + "processor": "{}" + }, + "jobs": [ + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + }, + { + "file": "file", + "name": "name", + "error": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + }, + "rdiJob": { + "key": "" + } + } + ], + "targetDataType": "hash", + "source": { + "databaseType": "databaseType", + "sinkAdvanced": null, + "database": "database", + "port": 6, + "secretArns": { + "key": "secretArns" + }, + "endpointId": "endpointId", + "name": "name", + "host": "host", + "sourceAdvanced": null + }, + "target": { + "targetBdbId": 1 + }, + "pipelineName": "pipelineName", + "createdAt": "2000-01-23T04:56:07.000+00:00", + "pipelineDescription": "pipelineDescription", + "schemas": [ + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + }, + { + "tables": [ + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + }, + { + "columns": [ + { + "name": "name", + "uniqueConstraint": true + }, + { + "name": "name", + "uniqueConstraint": true + } + ], + "name": "name", + "snapshot_sql": "snapshot_sql" + } + ], + "name": "name" + } + ], + "sourceName": "sourceName", + "clientData": { + "key": "{}" + }, + "updatedAt": "2000-01-23T04:56:07.000+00:00" + } + } + }, + "description": "Compose draft updated" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Update a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { + "get": { + "description": "Renders a compose draft as the RDI-native pipeline configuration payload.", + "operationId": "getComposed", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiPatchRequest" + }, + "example": { + "active": true, + "config": { + "key": "{}" + } + } + } + }, + "description": "RDI configuration returned" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Get composed RDI configuration", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { + "post": { + "description": "Dry-run validates a compose draft against the RDI API without deploying the pipeline.", + "operationId": "validateDraft", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiPipelineResponse" + }, + "example": { + "components": [ + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + }, + { + "name": "name", + "type": "type", + "version": "version", + "errors": [ + "errors", + "errors" + ], + "status": "started", + "metricCollections": [ + "metricCollections", + "metricCollections" + ] + } + ], + "current": true, + "errorOtherThanJobValidationError": true, + "name": "name", + "active": true, + "config": { + "key": "{}" + }, + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "status": "started" + } + } + }, + "description": "Compose draft validated" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate a compose draft", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { + "post": { + "description": "Mounts secret providers from a saved compose draft into the data integration workspace.", + "operationId": "mountSecrets", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "draftId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "204": { + "description": "Compose draft secrets mounted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Mount compose draft secrets", + "x-speakeasy-group": "compose", + "tags": [ + "Compose" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { + "post": { + "description": "Validates AWS Secrets Manager ARNs for source credentials and optional TLS materials used by a data integration workspace.", + "operationId": "validateSecret", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecretValidationRequestDto" + }, + "example": { + "credentialsSecretArn": "credentialsSecretArn", + "clientCertSecretArn": "clientCertSecretArn", + "clientKeySecretArn": "clientKeySecretArn", + "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", + "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", + "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", + "caCertSecretArn": "caCertSecretArn", + "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecretValidationResponseDto" + }, + "example": { + "success": true, + "errors": [ + { + "code": "code", + "message": "message" + }, + { + "code": "code", + "message": "message" + } + ] + } + } + }, + "description": "Secret validation completed" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate workspace secrets", + "x-speakeasy-group": "secrets", + "x-speakeasy-name-override": "validate", + "tags": [ + "Secrets" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { + "post": { + "description": "Validates one AWS Secrets Manager ARN against a specific data integration secret purpose.", + "operationId": "validateSingleSecret", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "subscriptionId", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationRequestDto" + }, + "example": { + "purpose": "source-credentials", + "secretArn": "secretArn" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SingleSecretValidationResponseDto" + }, + "example": { + "success": true, + "errorCode": "errorCode", + "error": "error" + } + } + }, + "description": "Single secret validation completed" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Bad request: request or business validation failed" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Access denied" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource not found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Resource conflict or invalid state transition" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Internal server error" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebError" + }, + "example": { + "code": "code", + "message": "message", + "params": "params", + "errors": [ + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + }, + { + "code": "code", + "details": { + "key": "{}" + }, + "message": "message" + } + ], + "timestamp": 5, + "status": 5 + } + } + }, + "description": "Upstream service error" + } + }, + "summary": "Validate one workspace secret", + "x-speakeasy-group": "secrets", + "tags": [ + "Secrets" + ], + "x-stability": "experimental", + "x-api-lifecycle": "preview" + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Info", + "description": "Gets package version.", + "operationId": "getRdiV2Info", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreInfoResponse" + } + } + } + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Pipelines", + "description": "Gets all pipelines.", + "operationId": "listRdiV2Pipelines", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + }, + "title": "Response Get Pipelines Api V2 Pipelines Get" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Create Pipeline", + "description": "Creates a new pipeline.", + "operationId": "createRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Only validate the provided configuration without making changes", + "default": false, + "title": "Dry Run" + }, + "description": "Only validate the provided configuration without making changes" + }, + { + "name": "validate_tables", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate against database tables via collector API", + "default": true, + "title": "Validate Tables" + }, + "description": "Validate against database tables via collector API" + }, + { + "name": "validate_cdc", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate CDC configuration via collector API", + "default": false, + "title": "Validate Cdc" + }, + "description": "Validate CDC configuration via collector API" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineCreateRequest", + "description": "Pipeline details" + } + } + } + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Pipeline", + "description": "Gets a pipeline by name.", + "operationId": "getRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "put": { + "tags": [ + "RDI Core" + ], + "summary": "Update Pipeline", + "description": "Updates a pipeline completely, or creates it if it doesn't exist.\nRetries 409 conflicts received from the K8s API server.", + "operationId": "replaceRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Only validate the provided configuration without making changes", + "default": false, + "title": "Dry Run" + }, + "description": "Only validate the provided configuration without making changes" + }, + { + "name": "validate_tables", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate against database tables via collector API", + "default": true, + "title": "Validate Tables" + }, + "description": "Validate against database tables via collector API" + }, + { + "name": "validate_cdc", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate CDC configuration via collector API", + "default": false, + "title": "Validate Cdc" + }, + "description": "Validate CDC configuration via collector API" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineUpdateRequest", + "description": "Pipeline details" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "patch": { + "tags": [ + "RDI Core" + ], + "summary": "Patch Pipeline", + "description": "Updates a pipeline partially (only updates specified fields), with retries on 409 conflicts received from the K8s API server.", + "operationId": "updateRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Only validate the provided configuration without making changes", + "default": false, + "title": "Dry Run" + }, + "description": "Only validate the provided configuration without making changes" + }, + { + "name": "validate_tables", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate against database tables via collector API", + "default": true, + "title": "Validate Tables" + }, + "description": "Validate against database tables via collector API" + }, + { + "name": "validate_cdc", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "description": "Validate CDC configuration via collector API", + "default": false, + "title": "Validate Cdc" + }, + "description": "Validate CDC configuration via collector API" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelinePatchRequest", + "description": "Partial pipeline details" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "delete": { + "tags": [ + "RDI Core" + ], + "summary": "Delete Pipeline", + "description": "Replaces a pipeline with an empty inactive pipeline and resets it.\n\nThis is done to ensure that no artifacts (offsets, schema, data streams etc.) are left behind,\nas this may cause errors and unexpected behavior when trying to re-create the pipeline.", + "operationId": "deleteRdiV2Pipeline", + "responses": { + "204": { + "description": "Successful Response" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Pipeline Status", + "description": "Gets the status of a pipeline by name.", + "operationId": "getRdiV2PipelineStatus", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineStatusResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Start Pipeline", + "description": "Starts a pipeline, retrying on 409 conflicts received from the K8s API server.", + "operationId": "startRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Stop Pipeline", + "description": "Stops a pipeline, retrying on 409 conflicts received from the K8s API server.", + "operationId": "stopRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Reset Pipeline", + "description": "Resets a pipeline, retrying on 409 conflicts received from the K8s API server.", + "operationId": "resetRdiV2Pipeline", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Metric Collections", + "description": "Gets all metric collections for a pipeline.", + "operationId": "listRdiV2MetricCollections", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" + }, + "title": "Response Get Metric Collections Api V2 Pipelines Name Metric Collections Get" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "collection_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Metric collection name", + "title": "Collection Name" + }, + "description": "Metric collection name" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Metric Collection", + "description": "Gets a metric collection for a pipeline.", + "operationId": "getRdiV2MetricCollection", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Pipeline Secrets", + "description": "Lists all pipeline secrets.", + "operationId": "listRdiV2PipelineSecrets", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + }, + "title": "Response Get Pipeline Secrets Api V2 Pipelines Name Secrets Get" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Create Secret", + "description": "Creates a new pipeline secret.", + "operationId": "createRdiV2PipelineSecret", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretCreateRequest", + "description": "Pipeline secret details" + } + } + } + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Conflict" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline secret key", + "title": "Key" + }, + "description": "Pipeline secret key" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Secret", + "description": "Gets a pipeline secret by key.", + "operationId": "getRdiV2PipelineSecret", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "put": { + "tags": [ + "RDI Core" + ], + "summary": "Update Secret", + "description": "Updates a pipeline secret, or creates it if it does not exist.", + "operationId": "replaceRdiV2PipelineSecret", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretUpdateRequest", + "description": "Pipeline secret details" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + }, + "delete": { + "tags": [ + "RDI Core" + ], + "summary": "Delete Secret", + "description": "Deletes a pipeline secret by key.", + "operationId": "deleteRdiV2PipelineSecret", + "responses": { + "204": { + "description": "Successful Response" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "source_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline source name", + "title": "Source Name" + }, + "description": "Pipeline source name" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get Pipeline Source Schemas", + "description": "Lists source schemas/databases, tables, and columns for a pipeline source.", + "operationId": "getRdiV2SourceSchema", + "parameters": [ + { + "name": "schemas", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Comma-separated list of schema/database names to filter on", + "title": "Schemas" + }, + "description": "Comma-separated list of schema/database names to filter on" + }, + { + "name": "tables", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Comma-separated list of table names to filter on", + "title": "Tables" + }, + "description": "Comma-separated list of table names to filter on" + }, + { + "name": "details", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/RdiCoreSourceSchemaDetails", + "description": "The level of detail to return: schemas, tables, or columns", + "default": "schemas" + }, + "description": "The level of detail to return: schemas, tables, or columns" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCorePipelineSourceSchemaResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "target_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Target name", + "title": "Target Name" + }, + "description": "Target name" + } + ], + "post": { + "tags": [ + "RDI Core" + ], + "summary": "Flush Target", + "description": "Flushes the target Redis database.\n\nSends a FLUSHALL command to the target Redis database through the collector API.", + "operationId": "flushRdiV2Target", + "responses": { + "200": { + "description": "FLUSHALL completed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreFlushResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "502": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get all DLQ streams with counts", + "description": "Returns all tables that have DLQ records with their total counts. Table names are returned in the format: source_name.schema_name.table_name (for PostgreSQL, Oracle, SQL Server, Spanner) or source_name.database_name.table_name (for MySQL, MariaDB, MongoDB).", + "operationId": "listRdiV2Dlqs", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreDlqListResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Internal Server Error" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "full_table_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", + "title": "Full Table Name" + }, + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get DLQ info for a specific stream", + "description": "Returns the DLQ count for a specific stream. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", + "operationId": "getRdiV2Dlq", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreDlqTableResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Internal Server Error" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + }, + "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}/records": { + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Pipeline name", + "title": "Name" + }, + "description": "Pipeline name" + }, + { + "name": "full_table_name", + "in": "path", + "required": true, + "schema": { + "type": "string", + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", + "title": "Full Table Name" + }, + "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" + } + ], + "get": { + "tags": [ + "RDI Core" + ], + "summary": "Get DLQ records for a specific stream", + "description": "Returns the DLQ records for a specific table with pagination. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", + "operationId": "listRdiV2DlqRecords", + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "maximum": 1000, + "minimum": 1, + "description": "Number of records to return", + "default": 20, + "title": "Limit" + }, + "description": "Number of records to return" + }, + { + "name": "offset", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "description": "Starting position for pagination", + "default": 0, + "title": "Offset" + }, + "description": "Starting position for pagination" + }, + { + "name": "sort_order", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/RdiCoreSortOrder", + "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)", + "default": "desc" + }, + "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)" + }, + { + "name": "fields", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp", + "title": "Fields" + }, + "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreDlqRecordsResponse" + } + } + } + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" + } + } + }, + "description": "Internal Server Error" + } + }, + "x-speakeasy-group": "rdi", + "x-stability": "experimental", + "x-api-lifecycle": "preview", + "externalDocs": { + "description": "Redis Data Integration API reference", + "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" + } + } + } + } +} From 63e664e22d18fb2240a70c5530a15093ea2f960b Mon Sep 17 00:00:00 2001 From: Zdravko Donev Date: Tue, 7 Jul 2026 08:36:41 +0300 Subject: [PATCH 10/10] RDSC-5669 fetch RDI OpenAPI from docs endpoint --- .github/workflows/rc_api_sync.yaml | 6 +- .../operate/rc/api/api-reference/openapi.json | 29798 +++++----------- data/api/rc-rdi-openapi.json | 14752 -------- 3 files changed, 9478 insertions(+), 35078 deletions(-) delete mode 100644 data/api/rc-rdi-openapi.json diff --git a/.github/workflows/rc_api_sync.yaml b/.github/workflows/rc_api_sync.yaml index a1712bd635..6a233d4a04 100644 --- a/.github/workflows/rc_api_sync.yaml +++ b/.github/workflows/rc_api_sync.yaml @@ -42,10 +42,8 @@ jobs: curl -Ls https://api.redislabs.com/v1/cloud-api-docs/capi \ | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > /tmp/rc-capi-openapi.json - # Use the checked-in RDI source spec so the generated API reference is reproducible - # before the updated sm-cloud-api RDI spec is deployed to api.redislabs.com. - jq '(.. | .example? | try select(test("^{"))) |= fromjson' \ - data/api/rc-rdi-openapi.json > /tmp/rc-rdi-openapi.json + curl -Ls https://api.redislabs.com/v1/cloud-api-docs/rdi \ + | jq '(.. | .example? | try select(test("^{"))) |= fromjson' > /tmp/rc-rdi-openapi.json jq -n --slurpfile capi /tmp/rc-capi-openapi.json --slurpfile rdi /tmp/rc-rdi-openapi.json ' def opkeys: ["get","put","post","delete","patch","options","head","trace"]; diff --git a/content/operate/rc/api/api-reference/openapi.json b/content/operate/rc/api/api-reference/openapi.json index d62471427b..77ec89e4a2 100644 --- a/content/operate/rc/api/api-reference/openapi.json +++ b/content/operate/rc/api/api-reference/openapi.json @@ -11170,1965 +11170,1178 @@ } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace": { - "delete": { - "description": "Starts deleting the data integration workspace for a subscription and returns an asynchronous task.", - "operationId": "deleteWorkspace", + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getWorkspace", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } } ], "responses": { - "202": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" + "$ref": "#/components/schemas/WorkspaceResponse" } } - }, - "description": "Workspace deletion accepted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "createWorkspace", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkspaceCreateRequest" } - }, - "description": "Bad request: request or business validation failed" + } }, - "403": { + "required": true + }, + "responses": { + "202": { + "description": "Accepted", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/WorkspaceTaskResponse" } } - }, - "description": "Access denied" - }, - "404": { + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "deleteWorkspace", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "202": { + "description": "Accepted", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/WorkspaceTaskResponse" } } - }, - "description": "Resource not found" - }, - "409": { + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/data-integration-workspaces": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "listWorkspaces", + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/WorkspacesResponse" } } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get RDI API information", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2Info", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Internal server error" - }, - "502": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "List RDI pipelines", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2Pipelines", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Upstream service error" + } } }, - "summary": "Delete a data integration workspace", - "x-speakeasy-group": "workspaces", + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "post": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "get": { - "description": "Returns the current data integration workspace state for the specified subscription.", - "operationId": "getWorkspace", + "summary": "Create an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "createRdiV2Pipeline", "parameters": [ { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "boolean" + } + }, + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, "responses": { "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceResponse" - }, - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - } - } - }, - "description": "Workspace returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Access denied" - }, - "404": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Resource not found" + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "put": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Replace an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "replaceRdiV2Pipeline", + "parameters": [ + { + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, + "schema": { + "type": "boolean" + } }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { + } + } + }, + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Internal server error" - }, - "502": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Delete an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "deleteRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Upstream service error" + } } }, - "summary": "Get a data integration workspace", - "x-speakeasy-group": "workspaces", + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "patch": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "post": { - "description": "Starts provisioning a data integration workspace for a subscription and returns an asynchronous task.", - "operationId": "createWorkspace", + "summary": "Update an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "updateRdiV2Pipeline", "parameters": [ { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, + "name": "dry_run", + "in": "query", + "description": "Validate the pipeline without deploying it.", + "required": false, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "boolean" + } + }, + { + "name": "validate_cdc", + "in": "query", + "description": "Validate change data capture configuration.", + "required": false, + "schema": { + "type": "boolean" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceCreateRequest" - }, - "example": { - "cidr": "cidr" + "type": "object", + "additionalProperties": true } } - }, - "required": true + } }, "responses": { - "202": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" + "type": "object", + "additionalProperties": true } } - }, - "description": "Workspace creation accepted" - }, - "400": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get RDI pipeline status", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2PipelineStatus", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Start an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "startRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Resource not found" - }, - "409": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Stop an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "stopRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Reset an RDI pipeline", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "resetRdiV2Pipeline", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Internal server error" - }, - "502": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "List RDI pipeline metric collections", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2MetricCollections", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Upstream service error" + } } }, - "summary": "Create a data integration workspace", - "x-speakeasy-group": "workspaces", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", + "x-speakeasy-group": "rdi", "x-api-lifecycle": "preview" - } + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "/v1/data-integration-workspaces": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { "get": { - "description": "Lists all data integration workspaces in the current Redis Cloud account.", - "operationId": "listWorkspaces", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get an RDI pipeline metric collection", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2MetricCollection", "responses": { "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspacesResponse" - }, - "example": { - "workspaces": [ - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - }, - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - } - ] + "type": "object", + "additionalProperties": true } } - }, - "description": "Workspaces returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "collection_name", + "in": "path", + "description": "Metric collection name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "List RDI pipeline secrets", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "listRdiV2PipelineSecrets", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Create an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "createRdiV2PipelineSecret", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true } - }, - "description": "Internal server error" - }, - "502": { + } + } + }, + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Upstream service error" + } } }, - "summary": "List data integration workspaces", - "x-speakeasy-group": "workspaces", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", + "x-speakeasy-group": "rdi", "x-api-lifecycle": "preview" - } + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { "get": { - "description": "Lists asynchronous workspace tasks for the specified data integration workspace.", - "operationId": "listTasks", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } + "tags": [ + "Subscriptions - Pro - Data Integration" ], + "summary": "Get an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2PipelineSecret", "responses": { "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkspaceTasksResponse" - }, - "example": { - "tasks": [ - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - ] + "type": "object", + "additionalProperties": true } } - }, - "description": "Workspace tasks returned" - }, - "400": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "put": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Replace an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "replaceRdiV2PipelineSecret", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Delete an RDI pipeline secret", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "deleteRdiV2PipelineSecret", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "key", + "in": "path", + "description": "Secret key.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Get RDI pipeline source schema", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "getRdiV2SourceSchema", + "parameters": [ + { + "name": "schemas", + "in": "query", + "description": "Comma-separated source schemas to include.", + "required": false, + "schema": { + "type": "string" + } }, - "409": { + { + "name": "tables", + "in": "query", + "description": "Comma-separated source tables to include.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "details", + "in": "query", + "description": "Include detailed source schema metadata.", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "source_name", + "in": "path", + "description": "Source name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "summary": "Flush an RDI pipeline target", + "description": "Forwards the request to the RDI API v2 deployment owned by the specified subscription.", + "operationId": "flushRdiV2Target", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "type": "object", + "additionalProperties": true } } - }, - "description": "Internal server error" - }, - "502": { + } + } + }, + "x-speakeasy-group": "rdi", + "x-api-lifecycle": "preview" + }, + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "name", + "in": "path", + "description": "RDI pipeline name.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "target_name", + "in": "path", + "description": "Target name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "listTasks", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/WorkspaceTasksResponse" } } - }, - "description": "Upstream service error" + } } }, - "summary": "List workspace tasks", "x-speakeasy-group": "tasks", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { "get": { - "description": "Returns one asynchronous workspace task by task ID.", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], "operationId": "getTask", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } }, { - "explode": false, - "in": "path", "name": "taskId", + "in": "path", "required": true, "schema": { "type": "string" - }, - "style": "simple" + } } ], "responses": { "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" } } - }, - "description": "Workspace task returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + } } }, - "summary": "Get a workspace task", "x-speakeasy-group": "tasks", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", "x-api-lifecycle": "preview" } }, "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { "get": { - "description": "Lists PrivateLink endpoints for the data integration workspace in the specified subscription.", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], "operationId": "listEndpoints", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } } ], "responses": { "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" - }, - "example": { - "endpoints": [ - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - }, - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - } - ] - } - } - }, - "description": "PrivateLink endpoints returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 } } - }, - "description": "Upstream service error" + } } }, - "summary": "List PrivateLink endpoints", "x-speakeasy-group": "privatelink", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", "x-api-lifecycle": "preview" }, "post": { - "description": "Starts creating a PrivateLink endpoint for the data integration workspace and returns an asynchronous task.", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], "operationId": "createEndpoint", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } } ], "requestBody": { @@ -13136,1049 +12349,456 @@ "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrivateLinkEndpointRequest" - }, - "example": { - "serviceName": "serviceName" } } }, "required": true }, "responses": { - "202": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" } } - }, - "description": "PrivateLink endpoint creation accepted" + } + } + }, + "x-speakeasy-group": "privatelink", + "x-speakeasy-name-override": "create-endpoint", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getEndpoint", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" } } - }, - "description": "Upstream service error" + } } }, - "summary": "Create a PrivateLink endpoint", "x-speakeasy-group": "privatelink", - "x-speakeasy-name-override": "create-endpoint", + "x-api-lifecycle": "preview" + }, + "delete": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { - "delete": { - "description": "Starts deleting a PrivateLink endpoint from the data integration workspace and returns an asynchronous task.", "operationId": "deleteEndpoint", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } }, { - "explode": false, - "in": "path", "name": "endpointId", + "in": "path", "required": true, "schema": { "type": "string" - }, - "style": "simple" + } } ], "responses": { - "202": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "PrivateLink endpoint deletion accepted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 } } - }, - "description": "Upstream service error" + } } }, - "summary": "Delete a PrivateLink endpoint", "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { + "post": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "get": { - "description": "Returns one PrivateLink endpoint by endpoint ID.", - "operationId": "getEndpoint", + "operationId": "validateEndpoint", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } }, { - "explode": false, - "in": "path", "name": "endpointId", + "in": "path", "required": true, "schema": { "type": "string" - }, - "style": "simple" + } } ], "responses": { "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" - }, - "example": { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } + "$ref": "#/components/schemas/PrivateLinkValidationResponse" } } - }, - "description": "PrivateLink endpoint returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "validatePrivateLink", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PrivateLinkValidationRequest" } - }, - "description": "Bad request: request or business validation failed" + } }, - "403": { + "required": true + }, + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/PrivateLinkValidationResponse" } } - }, - "description": "Access denied" + } + } + }, + "x-speakeasy-group": "privatelink", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getSuggestedCidrs", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, - "404": { + { + "name": "cidr-mask", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 22 + } + } + ], + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/CidrsInfoResponse" } } - }, - "description": "Resource not found" - }, - "409": { + } + } + }, + "x-speakeasy-group": "workspaces", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "listDrafts", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/ComposeDraftListResponse" } } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "createDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" } - }, - "description": "Internal server error" - }, - "502": { + } + } + }, + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/ComposeDraftCreatedResponse" } } - }, - "description": "Upstream service error" + } } }, - "summary": "Get a PrivateLink endpoint", - "x-speakeasy-group": "privatelink", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", + "x-speakeasy-group": "compose", "x-api-lifecycle": "preview" } }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { "post": { - "description": "Validates reachability for an existing PrivateLink endpoint attached to the data integration workspace.", - "operationId": "validateEndpoint", + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "mountSecretsFromPayload", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + } + } }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "translate", + "parameters": [ { - "explode": false, + "name": "subscriptionId", "in": "path", - "name": "endpointId", "required": true, "schema": { - "type": "string" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } } ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationResponse" - }, - "example": { - "success": true, - "error": "error" - } - } - }, - "description": "PrivateLink endpoint validation completed" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposeTranslateRequest" } - }, - "description": "Resource conflict or invalid state transition" + } }, - "500": { + "required": true + }, + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/ComposeTranslateResponse" } } - }, - "description": "Internal server error" + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, - "502": { + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/ComposeDraftResponse" } } - }, - "description": "Upstream service error" + } } }, - "summary": "Validate a PrivateLink endpoint", - "x-speakeasy-group": "privatelink", + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "put": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { - "post": { - "description": "Validates an AWS PrivateLink endpoint service name before creating a workspace PrivateLink endpoint.", - "operationId": "validatePrivateLink", + "operationId": "updateDraft", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationRequest" - }, - "example": { - "serviceName": "serviceName" + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" } } }, @@ -14186,7031 +12806,2129 @@ }, "responses": { "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationResponse" - }, - "example": { - "success": true, - "error": "error" + "$ref": "#/components/schemas/ComposeDraftResponse" } } - }, - "description": "PrivateLink service validation completed" + } + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + }, + "delete": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "deleteDraft", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } }, - "400": { + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { + "get": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "getComposed", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/RdiPatchRequest" } } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + } } }, - "summary": "Validate a PrivateLink service", - "x-speakeasy-group": "privatelink", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", + "x-speakeasy-group": "compose", "x-api-lifecycle": "preview" } }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { - "get": { - "description": "Returns used CIDRs, the default CIDR, and the next free CIDR for data integration workspace provisioning.", - "operationId": "getSuggestedCidrs", + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "validateDraft", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } }, { - "explode": true, - "in": "query", - "name": "cidr-mask", - "required": false, + "name": "draftId", + "in": "path", + "required": true, "schema": { - "default": 22, - "format": "int32", - "type": "integer" - }, - "style": "form" + "type": "string" + } } ], "responses": { "200": { + "description": "OK", "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CidrsInfoResponse" - }, - "example": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - } - } - }, - "description": "Suggested CIDRs returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/RdiPipelineResponse" } } - }, - "description": "Upstream service error" + } } }, - "summary": "Get suggested workspace CIDRs", - "x-speakeasy-group": "workspaces", + "x-speakeasy-group": "compose", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { + "post": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "x-stability": "experimental", + "operationId": "mountSecrets", + "parameters": [ + { + "name": "subscriptionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "draftId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "x-speakeasy-group": "compose", "x-api-lifecycle": "preview" } }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose": { - "get": { - "description": "Lists compose drafts for the specified data integration workspace.", - "operationId": "listDrafts", + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { + "post": { + "tags": [ + "Subscriptions - Pro - Data Integration" + ], + "operationId": "validateSecret", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } } ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftListResponse" - }, - "example": { - "items": [ - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - }, - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - } - ] - } - } - }, - "description": "Compose drafts returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SecretValidationRequestDto" } - }, - "description": "Internal server error" + } }, - "502": { + "required": true + }, + "responses": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "$ref": "#/components/schemas/SecretValidationResponseDto" } } - }, - "description": "Upstream service error" + } } }, - "summary": "List compose drafts", - "x-speakeasy-group": "compose", + "x-speakeasy-group": "secrets", + "x-speakeasy-name-override": "validate", + "x-api-lifecycle": "preview" + } + }, + "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { + "post": { "tags": [ "Subscriptions - Pro - Data Integration" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "post": { - "description": "Creates a compose draft for building or editing a data integration pipeline configuration.", - "operationId": "createDraft", + "operationId": "validateSingleSecret", "parameters": [ { - "explode": false, - "in": "path", "name": "subscriptionId", + "in": "path", "required": true, "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "integer", + "format": "int64" + } } ], "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } + "$ref": "#/components/schemas/SingleSecretValidationRequestDto" } } - } + }, + "required": true }, "responses": { - "201": { + "200": { + "description": "OK", "content": { - "application/json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/ComposeDraftCreatedResponse" - }, - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "draftId": "draftId", - "updatedAt": "2000-01-23T04:56:07.000+00:00" + "$ref": "#/components/schemas/SingleSecretValidationResponseDto" } } - }, - "description": "Compose draft created" + } + } + }, + "x-speakeasy-group": "secrets", + "x-api-lifecycle": "preview" + } + } + }, + "components": { + "schemas": { + "TargetVersion": { + "type": "object", + "properties": { + "redisVersion": { + "type": "string" + } + } + }, + "AclUserCreateRequest": { + "required": [ + "name", + "password", + "role" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Access control user name.", + "example": "ACL-user-example" }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "role": { + "type": "string", + "description": "Name of the database access role to assign to this user. Use GET '/acl/roles' to get a list of database access roles.", + "example": "ACL-role-example" }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "password": { + "type": "string", + "description": "The database password for this user.", + "example": "ab123AB$%^" }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL user create request" + }, + "AccountUserUpdateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "name": { + "type": "string", + "description": "The account user's name.", + "example": "My new user name" }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "role": { + "type": "string", + "description": "Changes the account user's role. See [Team management roles](https://redis.io/docs/latest/operate/rc/security/access-control/access-management/#team-management-roles) to learn about available account roles.", + "enum": [ + "Owner", + "Member", + "Viewer", + "Logs Viewer (API use only)", + "Manager", + "Billing Admin" + ] }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "User update request" + }, + "PaymentMethods": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" } - }, - "description": "Upstream service error" + } } }, - "summary": "Create a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" + "description": "RedisLabs Account payment methods", + "example": { + "accountId": 1001, + "paymentMethods": [ + { + "id": 2, + "type": "Visa", + "creditCardEndsWith": "9349", + "nameOnCard": "CAPI User", + "expirationMonth": 2, + "expirationYear": 2026, + "links": [] + } + ] + } + }, + "AclRoleDatabaseSpec": { + "required": [ + "databaseId", + "subscriptionId" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { - "post": { - "description": "Mounts secret providers from an ad-hoc compose payload into the data integration workspace.", - "operationId": "mountSecretsFromPayload", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "description": "Subscription ID for the database's subscription. Use 'GET /subscriptions' or 'GET /fixed/subscriptions' to get a list of available subscriptions and their IDs.", + "format": "int32" + }, + "databaseId": { + "type": "integer", + "description": "The database's ID. Use 'GET /subscriptions/{subscriptionId}/databases' or 'GET /fixed/subscriptions/{subscriptionId}/databases' to get a list of databases in a subscription and their IDs.", + "format": "int32" + }, + "regions": { + "type": "array", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", + "example": [], + "items": { + "type": "string", + "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", + "example": "[]" + } } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - } + }, + "description": "A list of databases where the specified rule applies for this role." + }, + "ActiveActiveTgwUpdateCidrsRequest": { + "type": "object", + "properties": { + "cidrs": { + "type": "array", + "description": "Optional. List of transit gateway attachment CIDRs.", + "example": [ + "10.10.10.0/24", + "10.10.20.0/24" + ], + "items": { + "$ref": "#/components/schemas/Cidr" } }, - "required": true + "commandType": { + "type": "string", + "readOnly": true + } }, - "responses": { - "204": { - "description": "Compose secrets mounted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + "description": "Active active Transit Gateway update attachment cidr/s request message" + }, + "RootAccount": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" } - }, - "description": "Bad request: request or business validation failed" + } + } + }, + "example": { + "account": { + "id": 1001, + "name": "Redis", + "createdTimestamp": "2018-12-23T15:15:31Z", + "updatedTimestamp": "2022-10-12T10:54:10Z", + "pocStatus": "inactive", + "marketplaceStatus": "active", + "key": { + "name": "capi-api-key-name", + "accountId": 1001, + "accountName": "Redis", + "allowedSourceIps": [ + "0.0.0.0/0" + ], + "createdTimestamp": "2022-05-11T12:05:47Z", + "owner": { + "name": "CAPI user", + "email": "capi.user@redis.com" + }, + "userAccountId": 1, + "httpSourceIp": "79.0.0.173" + } + } + } + }, + "PrivateLinkActiveActiveCreateRequest": { + "required": [ + "principal", + "regionId", + "shareName", + "type" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "shareName": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "Name for the resource share", + "example": "my-private-link-share" }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "principal": { + "type": "string", + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "type": { + "type": "string", + "description": "Type of the principal", + "example": "aws_account", + "enum": [ + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" + ] }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + "alias": { + "type": "string", + "description": "Alias or friendly name for the principal", + "example": "Production Account" + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "summary": "Mount compose payload secrets", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { - "post": { - "description": "Translates between cloud compose configuration and the RDI-native pipeline configuration format.", - "operationId": "translate", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } + "description": "Request to create a private link for Active-Active subscription" + }, + "ActiveActiveVpcPeeringCreateAwsRequest": { + "required": [ + "awsAccountId", + "destinationRegion", + "sourceRegion", + "vpcId" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeTranslateRequest" - }, - "example": { - "cloud": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "rdi": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" - }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" - }, - "direction": "cloud-to-rdi" - } - } + "type": "object", + "properties": { + "provider": { + "type": "string" }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeTranslateResponse" - }, - "example": { - "rdi": { - "active": true, - "config": { - "key": "{}" - } - }, - "draft": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "warnings": [ - "warnings", - "warnings" - ] - } - } - }, - "description": "Compose configuration translated" + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "sourceRegion": { + "type": "string", + "description": "Name of region to create a VPC peering from." }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "destinationRegion": { + "type": "string", + "description": "Name of region to create a VPC peering to.", + "example": "us-east-1" }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "awsAccountId": { + "type": "string", + "description": "AWS Account ID.", + "example": "" }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "vpcId": { + "type": "string", + "description": "VPC ID.", + "example": "" }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" + } + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "summary": "Translate a compose configuration", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { - "delete": { - "description": "Deletes a compose draft from the data integration workspace.", - "operationId": "deleteDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "description": "VPC peering creation request message" + }, + "SubscriptionUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" + "name": { + "type": "string", + "description": "Optional. Updated subscription name.", + "example": "My new subscription name" + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", + "format": "int32" + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "publicEndpointAccess": { + "type": "boolean", + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint." + }, + "commandType": { + "type": "string", + "readOnly": true } + }, + "description": "Subscription update request message" + }, + "DatabaseTagUpdateRequest": { + "required": [ + "value" ], - "responses": { - "204": { - "description": "Compose draft deleted" + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "key": { + "type": "string", + "readOnly": true }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "value": { + "type": "string", + "description": "Database tag value" }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + "commandType": { + "type": "string", + "readOnly": true } }, - "summary": "Delete a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" + "description": "Database tag update request message" }, - "get": { - "description": "Returns one compose draft by draft ID.", - "operationId": "getDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } + "ActiveActivePscEndpointCreateRequest": { + "required": [ + "endpointConnectionName", + "gcpProjectId", + "gcpVpcName", + "gcpVpcSubnetName", + "pscServiceId", + "regionId", + "subscriptionId" ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" - }, - "example": { - "draftId": "draftId", - "advanced": { - "processor": "{}" - }, - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "target": { - "targetBdbId": 1 - }, - "pipelineName": "pipelineName", - "createdAt": "2000-01-23T04:56:07.000+00:00", - "pipelineDescription": "pipelineDescription", - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "updatedAt": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "Compose draft returned" + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "gcpProjectId": { + "type": "string", + "description": "Google Cloud project ID.", + "example": "my-gcp-project" }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "summary": "Get a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" + "description": "Private Service Connect endpoint create request" }, - "put": { - "description": "Replaces the body of an existing compose draft.", - "operationId": "updateDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "TaskStateUpdate": { + "type": "object", + "properties": { + "taskId": { + "type": "string", + "format": "uuid" }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } + "commandType": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "initialized", + "received", + "processing-in-progress", + "processing-completed", + "processing-error" + ] + }, + "description": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "response": { + "$ref": "#/components/schemas/ProcessorResponse" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" } } + } + } + }, + "Database": { + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32" }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" - }, - "example": { - "draftId": "draftId", - "advanced": { - "processor": "{}" - }, - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "target": { - "targetBdbId": 1 - }, - "pipelineName": "pipelineName", - "createdAt": "2000-01-23T04:56:07.000+00:00", - "pipelineDescription": "pipelineDescription", - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "updatedAt": "2000-01-23T04:56:07.000+00:00" - } + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" } - }, - "description": "Compose draft updated" + } + } + }, + "example": { + "databaseId": 1, + "name": "DB-RCP-2-81-7", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "respVersion": "resp3", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + "activatedOn": "2021-08-29T13:03:08Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" } - }, - "description": "Bad request: request or business validation failed" + ] }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" } - }, - "description": "Access denied" + ], + "hashingPolicy": "standard" }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "security": { + "enableDefaultUser": true, + "password": "redis123456redis", + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Update a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" + "modules": [ + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases/51170941", + "type": "GET" + } + ] + } + }, + "SubscriptionDatabaseSpec": { + "required": [ + "name", + "protocol" ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { - "get": { - "description": "Renders a compose draft as the RDI-native pipeline configuration payload.", - "operationId": "getComposed", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-database-example" }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiPatchRequest" - }, - "example": { - "active": true, - "config": { - "key": "{}" - } - } - } - }, - "description": "RDI configuration returned" + "protocol": { + "type": "string", + "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", + "enum": [ + "redis", + "memcached" + ] }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "port": { + "type": "integer", + "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", + "format": "int32", + "example": 10000 }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", + "example": false }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Get composed RDI configuration", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { - "post": { - "description": "Dry-run validates a compose draft against the RDI API without deploying the pipeline.", - "operationId": "validateDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "replication": { + "type": "boolean", + "description": "Optional. Databases replication. Default: 'true'" }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiPipelineResponse" - }, - "example": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" - }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" - } - } - }, - "description": "Compose draft validated" + "throughputMeasurement": { + "$ref": "#/components/schemas/DatabaseThroughputSpec" }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "localThroughputMeasurement": { + "type": "array", + "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", + "items": { + "$ref": "#/components/schemas/LocalThroughput" + } }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "modules": { + "type": "array", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", + "items": { + "$ref": "#/components/schemas/DatabaseModuleSpec" + } }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "quantity": { + "type": "integer", + "description": "Optional. Number of databases that will be created with these settings. Default: 1", + "format": "int32", + "example": 1 }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "averageItemSizeInBytes": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", + "format": "int64", + "deprecated": true }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", + "format": "int32", + "example": 20 }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", + "example": "7.2" + }, + "autoMinorVersionUpgrade": { + "type": "boolean", + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." + }, + "shardingType": { + "type": "string", + "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", + "enum": [ + "default-regex-rules", + "custom-regex-rules", + "redis-oss-hashing" + ] + }, + "queryPerformanceFactor": { + "type": "string", + "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", + "example": "2x" } }, - "summary": "Validate a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { - "post": { - "description": "Mounts secret providers from a saved compose draft into the data integration workspace.", - "operationId": "mountSecrets", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" + "description": "One or more database specification(s) to create in this subscription." + }, + "Subscription": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "204": { - "description": "Compose draft secrets mounted" + "name": { + "type": "string" }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "paymentMethodId": { + "type": "integer", + "format": "int32" }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "status": { + "type": "string" }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "publicEndpointAccess": { + "type": "boolean" }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "memoryStorage": { + "type": "string", + "enum": [ + "ram", + "ram-and-flash" + ] }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "numberOfDatabases": { + "type": "integer", + "format": "int32" }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Mount compose draft secrets", - "x-speakeasy-group": "compose", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { - "post": { - "description": "Validates AWS Secrets Manager ARNs for source credentials and optional TLS materials used by a data integration workspace.", - "operationId": "validateSecret", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecretValidationRequestDto" - }, - "example": { - "credentialsSecretArn": "credentialsSecretArn", - "clientCertSecretArn": "clientCertSecretArn", - "clientKeySecretArn": "clientKeySecretArn", - "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", - "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", - "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", - "caCertSecretArn": "caCertSecretArn", - "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" + "paymentMethodType": { + "type": "string", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" } } }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecretValidationResponseDto" - }, - "example": { - "success": true, - "errors": [ - { - "code": "code", - "message": "message" - }, - { - "code": "code", - "message": "message" - } - ] - } - } - }, - "description": "Secret validation completed" + "persistentStorageEncryptionType": { + "type": "string" }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "deletionGracePeriod": { + "type": "string" }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, + "customerManagedKeyAccessDetails": { + "$ref": "#/components/schemas/CustomerManagedKeyAccessDetails" + } + }, + "description": "RedisLabs Subscription information", + "example": { + "id": 1206, + "name": "updated new name", + "status": "active", + "deploymentType": "single-region", + "paymentMethodId": 2, + "publicEndpointAccess": true, + "memoryStorage": "ram", + "numberOfDatabases": 6, + "paymentMethodType": "credit-card", + "storageEncryption": false, + "subscriptionPricing": [ + { + "type": "Shards", + "typeDetails": "high-throughput", + "quantity": 7, + "quantityMeasurement": "shards", + "pricePerUnit": 0.124, + "priceCurrency": "USD", + "pricePeriod": "hour" + } + ], + "cloudDetails": [ + { + "provider": "AWS", + "cloudAccountId": 2, + "totalSizeInGb": 0.0272, + "regions": [ + { + "region": "us-east-1", + "networking": [ { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" + "deploymentCIDR": "10.0.0.0/24", + "subnetId": "subnet-009ce004ed90da8a6" } ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } + "preferredAvailabilityZones": [ + "us-east-1a" ], - "timestamp": 5, - "status": 5 + "multipleAvailabilityZones": false } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + ], + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416", + "type": "GET" + } + ] + } + }, + "CidrWhiteListUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "cidrIps": { + "type": "array", + "description": "List of CIDR values. Example: ['10.1.1.0/32']", + "items": { + "type": "string", + "description": "List of CIDR values. Example: ['10.1.1.0/32']" + } }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" + "securityGroupIds": { + "type": "array", + "description": "List of AWS Security group IDs.", + "items": { + "type": "string", + "description": "List of AWS Security group IDs." + } + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "summary": "Validate workspace secrets", - "x-speakeasy-group": "secrets", - "x-speakeasy-name-override": "validate", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { - "post": { - "description": "Validates one AWS Secrets Manager ARN against a specific data integration secret purpose.", - "operationId": "validateSingleSecret", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } + "description": "Update Pro subscription" + }, + "FixedDatabaseCreateRequest": { + "required": [ + "name" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SingleSecretValidationRequestDto" - }, - "example": { - "purpose": "source-credentials", - "secretArn": "secretArn" - } - } + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SingleSecretValidationResponseDto" - }, - "example": { - "success": true, - "errorCode": "errorCode", - "error": "error" - } - } - }, - "description": "Single secret validation completed" + "name": { + "type": "string", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-Essentials-database-example" }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" + "protocol": { + "type": "string", + "description": "Optional. Database protocol. Use 'stack' to get all of Redis' advanced capabilities. Only use 'redis' for Pay-as-you-go or Redis Flex subscriptions. Default: 'stack' for most subscriptions, 'redis' for Redis Flex subscriptions.", + "enum": [ + "redis", + "memcached", + "stack" + ] }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" + "supportOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", + "example": true }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version. (available in 'GET /fixed/redis-versions')", + "example": "7.4" }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Validate one workspace secret", - "x-speakeasy-group": "secrets", - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Info", - "description": "Gets package version.", - "operationId": "getRdiV2Info", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreInfoResponse" - } - } - } - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", + "example": true + }, + "enableDatabaseClustering": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances. Default: 'false'", + "example": false + }, + "numberOfShards": { "type": "integer", - "format": "int64" - } - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get Pipelines", - "description": "Gets all pipelines.", - "operationId": "listRdiV2Pipelines", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - }, - "title": "Response Get Pipelines Api V2 Pipelines Get" - } - } - } + "description": "(Pay-as-you-go subscriptions only) Optional. Specifies the number of master shards.", + "format": "int32", + "example": 2 }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Create Pipeline", - "description": "Creates a new pipeline.", - "operationId": "createRdiV2Pipeline", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "Only validate the provided configuration without making changes", - "default": false, - "title": "Dry Run" - }, - "description": "Only validate the provided configuration without making changes" + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] }, - { - "name": "validate_tables", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate against database tables via collector API", - "default": true, - "title": "Validate Tables" - }, - "description": "Validate against database tables via collector API" + "replication": { + "type": "boolean", + "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." }, - { - "name": "validate_cdc", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate CDC configuration via collector API", - "default": false, - "title": "Validate Cdc" - }, - "description": "Validate CDC configuration via collector API" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineCreateRequest", - "description": "Pipeline details" - } + "periodicBackupPath": { + "type": "string", + "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups.", + "example": "s3://" + }, + "sourceIps": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'" } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } + }, + "regexRules": { + "type": "array", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and .", + "items": { + "type": "string", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and ." } }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Conflict" + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", + "deprecated": true }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" + }, + "password": { "type": "string", - "description": "Pipeline name", - "title": "Name" + "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated." }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get Pipeline", - "description": "Gets a pipeline by name.", - "operationId": "getRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } + "alerts": { + "type": "array", + "description": "Optional. Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" } }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "modules": { + "type": "array", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Can only be set if 'protocol' is 'redis'. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", + "items": { + "$ref": "#/components/schemas/DatabaseModuleSpec" + } }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" + "commandType": { + "type": "string", + "readOnly": true } }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } + "description": "Essentials database definition" }, - "put": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Update Pipeline", - "description": "Updates a pipeline completely, or creates it if it doesn't exist.\nRetries 409 conflicts received from the K8s API server.", - "operationId": "replaceRdiV2Pipeline", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "Only validate the provided configuration without making changes", - "default": false, - "title": "Dry Run" - }, - "description": "Only validate the provided configuration without making changes" + "DatabaseUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - { - "name": "validate_tables", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate against database tables via collector API", - "default": true, - "title": "Validate Tables" - }, - "description": "Validate against database tables via collector API" + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - { - "name": "validate_cdc", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate CDC configuration via collector API", - "default": false, - "title": "Validate Cdc" - }, - "description": "Validate CDC configuration via collector API" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineUpdateRequest", - "description": "Pipeline details" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", + "example": false }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "name": { + "type": "string", + "description": "Optional. Updated database name.", + "example": "Redis-database-example-updated" }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "patch": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Patch Pipeline", - "description": "Updates a pipeline partially (only updates specified fields), with retries on 409 conflicts received from the K8s API server.", - "operationId": "updateRdiV2Pipeline", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "Only validate the provided configuration without making changes", - "default": false, - "title": "Dry Run" - }, - "description": "Only validate the provided configuration without making changes" + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] }, - { - "name": "validate_tables", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate against database tables via collector API", - "default": true, - "title": "Validate Tables" - }, - "description": "Validate against database tables via collector API" + "throughputMeasurement": { + "$ref": "#/components/schemas/DatabaseThroughputSpec" }, - { - "name": "validate_cdc", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate CDC configuration via collector API", - "default": false, - "title": "Validate Cdc" - }, - "description": "Validate CDC configuration via collector API" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelinePatchRequest", - "description": "Partial pipeline details" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "replication": { + "type": "boolean", + "description": "Optional. Turns database replication on or off." }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" + "regexRules": { + "type": "array", + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", + "items": { + "type": "string", + "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." + } }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "delete": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Delete Pipeline", - "description": "Replaces a pipeline with an empty inactive pipeline and resets it.\n\nThis is done to ensure that no artifacts (offsets, schema, data streams etc.) are left behind,\nas this may cause errors and unexpected behavior when trying to re-create the pipeline.", - "operationId": "deleteRdiV2Pipeline", - "responses": { - "204": { - "description": "Successful Response" + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", + "example": false }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", + "example": false }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { + "password": { "type": "string", - "description": "Pipeline name", - "title": "Name" + "description": "Optional. Changes the password used to access the database with the 'default' user. Can only be set if 'protocol' is 'redis'.", + "example": "P@ssw0rd" }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get Pipeline Status", - "description": "Gets the status of a pipeline by name.", - "operationId": "getRdiV2PipelineStatus", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineStatusResponse" - } - } - } + "saslUsername": { + "type": "string", + "description": "Optional. Changes the Memcached (SASL) username to access the database. Can only be set if 'protocol' is 'memcached'.", + "example": "mc-HR7gb" }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "saslPassword": { + "type": "string", + "description": "Optional. Changes the Memcached (SASL) password to access the database. Can only be set if 'protocol' is 'memcached'.", + "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT" }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "sourceIp": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + } }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { + "clientSslCertificate": { "type": "string", - "description": "Pipeline name", - "title": "Name" + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "deprecated": true }, - "description": "Pipeline name" - } - ], - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Start Pipeline", - "description": "Starts a pipeline, retrying on 409 conflicts received from the K8s API server.", - "operationId": "startRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" } }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. Can only be set if 'protocol' is 'redis'." }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { + "periodicBackupPath": { "type": "string", - "description": "Pipeline name", - "title": "Name" + "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. If set to an empty string, the backup path will be removed.", + "example": "s3://", + "deprecated": true }, - "description": "Pipeline name" - } - ], - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Stop Pipeline", - "description": "Stops a pipeline, retrying on 409 conflicts received from the K8s API server.", - "operationId": "stopRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } + "remoteBackup": { + "$ref": "#/components/schemas/DatabaseBackupConfig" + }, + "alerts": { + "type": "array", + "description": "Optional. Changes Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" } }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "ramPercentage": { + "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50).", + "format": "int32", + "example": 20 }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "autoMinorVersionUpgrade": { + "type": "boolean", + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" + "commandType": { + "type": "string", + "readOnly": true + }, + "queryPerformanceFactor": { + "type": "string", + "description": "Optional. Changes the query performance factor. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", + "example": "2x" } }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { + "description": "Database update request" + }, + "LocalRegionProperties": { + "type": "object", + "properties": { + "region": { "type": "string", - "description": "Pipeline name", - "title": "Name" + "description": "Required. Name of the region to update." }, - "description": "Pipeline name" - } - ], - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Reset Pipeline", - "description": "Resets a pipeline, retrying on 409 conflicts received from the K8s API server.", - "operationId": "resetRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } + "remoteBackup": { + "$ref": "#/components/schemas/DatabaseBackupConfig" }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "localThroughputMeasurement": { + "$ref": "#/components/schemas/LocalThroughput" }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence for this region. If set, 'globalDataPersistence' will not apply to this region.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { + "password": { "type": "string", - "description": "Pipeline name", - "title": "Name" + "description": "Optional. Changes the password used to access the database in this region. If set, 'globalPassword' will not apply to this region.", + "example": "P@ssw0rd" }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get Metric Collections", - "description": "Gets all metric collections for a pipeline.", - "operationId": "listRdiV2MetricCollections", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" - }, - "title": "Response Get Metric Collections Api V2 Pipelines Name Metric Collections Get" - } - } + "sourceIp": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']" } }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "alerts": { + "type": "array", + "description": "Optional. Redis database alert settings for this region. If set, 'glboalAlerts' will not apply to this region.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version for this region. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. If set, 'globalEnableDefaultUser' will not apply to this region." } }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { + "description": "Optional. A list of regions and local settings to update." + }, + "PscEndpointCreateRequest": { + "required": [ + "endpointConnectionName", + "gcpProjectId", + "gcpVpcName", + "gcpVpcSubnetName", + "pscServiceId", + "subscriptionId" + ], + "type": "object", + "properties": { + "subscriptionId": { "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" + "format": "int32", + "readOnly": true }, - "description": "Pipeline name" - }, - { - "name": "collection_name", - "in": "path", - "required": true, - "schema": { + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "gcpProjectId": { "type": "string", - "description": "Metric collection name", - "title": "Collection Name" + "description": "Google Cloud project ID.", + "example": "my-gcp-project" }, - "description": "Metric collection name" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get Metric Collection", - "description": "Gets a metric collection for a pipeline.", - "operationId": "getRdiV2MetricCollection", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" - } - } - } + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" + "commandType": { + "type": "string", + "readOnly": true } }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" + "description": "Private Service Connect endpoint create request" + }, + "ActiveActiveVpcPeeringCreateBaseRequest": { + "required": [ + "sourceRegion" ], - "summary": "Get Pipeline Secrets", - "description": "Lists all pipeline secrets.", - "operationId": "listRdiV2PipelineSecrets", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - }, - "title": "Response Get Pipeline Secrets Api V2 Pipelines Name Secrets Get" - } - } - } + "type": "object", + "properties": { + "provider": { + "type": "string" }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" + "sourceRegion": { + "type": "string", + "description": "Name of region to create a VPC peering from." }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" + "commandType": { + "type": "string", + "readOnly": true } }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } + "description": "Active-Active VPC peering creation request message", + "oneOf": [ + { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateAwsRequest" + }, + { + "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateGcpRequest" + } + ] }, - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Create Secret", - "description": "Creates a new pipeline secret.", - "operationId": "createRdiV2PipelineSecret", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretCreateRequest", - "description": "Pipeline secret details" - } - } + "BaseSubscriptionUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - } - } - } + "description": "Subscription update request message", + "oneOf": [ + { + "$ref": "#/components/schemas/SubscriptionUpdateRequest" }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" + { + "$ref": "#/components/schemas/SubscriptionUpdateCMKRequest" + } + ] + }, + "Regions": { + "type": "object", + "properties": { + "regions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Region" + } }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" } + } + } + }, + "example": { + "regions": [ + { + "id": 1, + "name": "us-east-1", + "provider": "AWS" }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 2, + "name": "us-west-1", + "provider": "AWS" }, - "description": "Not Found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 3, + "name": "us-west-2", + "provider": "AWS" }, - "description": "Conflict" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline secret key", - "title": "Key" - }, - "description": "Pipeline secret key" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get Secret", - "description": "Gets a pipeline secret by key.", - "operationId": "getRdiV2PipelineSecret", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 4, + "name": "eu-west-1", + "provider": "AWS" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 29, + "name": "eu-central-1", + "provider": "AWS" }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 7, + "name": "sa-east-1", + "provider": "AWS" }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "put": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Update Secret", - "description": "Updates a pipeline secret, or creates it if it does not exist.", - "operationId": "replaceRdiV2PipelineSecret", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretUpdateRequest", - "description": "Pipeline secret details" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 63, + "name": "ca-central-1", + "provider": "AWS" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 62, + "name": "eu-north-1", + "provider": "AWS" }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 61, + "name": "eu-west-3", + "provider": "AWS" }, - "description": "Not Found" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 60, + "name": "eu-west-2", + "provider": "AWS" }, - "description": "Unprocessable Entity" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "delete": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Delete Secret", - "description": "Deletes a pipeline secret by key.", - "operationId": "deleteRdiV2PipelineSecret", - "responses": { - "204": { - "description": "Successful Response" - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 59, + "name": "us-east-2", + "provider": "AWS" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 64, + "name": "ap-east-1", + "provider": "AWS" }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 146, + "name": "ap-southeast-5", + "provider": "AWS" }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "source_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline source name", - "title": "Source Name" - }, - "description": "Pipeline source name" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get Pipeline Source Schemas", - "description": "Lists source schemas/databases, tables, and columns for a pipeline source.", - "operationId": "getRdiV2SourceSchema", - "parameters": [ - { - "name": "schemas", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Comma-separated list of schema/database names to filter on", - "title": "Schemas" + { + "id": 30, + "name": "ap-south-1", + "provider": "AWS" }, - "description": "Comma-separated list of schema/database names to filter on" - }, - { - "name": "tables", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Comma-separated list of table names to filter on", - "title": "Tables" + { + "id": 117, + "name": "ap-northeast-3", + "provider": "AWS" }, - "description": "Comma-separated list of table names to filter on" - }, - { - "name": "details", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/RdiCoreSourceSchemaDetails", - "description": "The level of detail to return: schemas, tables, or columns", - "default": "schemas" + { + "id": 116, + "name": "ap-northeast-2", + "provider": "AWS" }, - "description": "The level of detail to return: schemas, tables, or columns" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSourceSchemaResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 145, + "name": "ap-southeast-7", + "provider": "AWS" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 6, + "name": "ap-northeast-1", + "provider": "AWS" }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 5, + "name": "ap-southeast-1", + "provider": "AWS" }, - "description": "Not Found" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 15, + "name": "ap-southeast-2", + "provider": "AWS" }, - "description": "Unprocessable Entity" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "target_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Target name", - "title": "Target Name" - }, - "description": "Target name" - } - ], - "post": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Flush Target", - "description": "Flushes the target Redis database.\n\nSends a FLUSHALL command to the target Redis database through the collector API.", - "operationId": "flushRdiV2Target", - "responses": { - "200": { - "description": "FLUSHALL completed successfully", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreFlushResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 132, + "name": "il-central-1", + "provider": "AWS" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 144, + "name": "mx-central-1", + "provider": "AWS" }, - "description": "Forbidden" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 32, + "name": "asia-east1", + "provider": "GCP" }, - "description": "Bad Request" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 67, + "name": "asia-east2", + "provider": "GCP" }, - "description": "Not Found" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 33, + "name": "asia-northeast1", + "provider": "GCP" }, - "description": "Bad Gateway" - }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 104, + "name": "asia-northeast2", + "provider": "GCP" }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get all DLQ streams with counts", - "description": "Returns all tables that have DLQ records with their total counts. Table names are returned in the format: source_name.schema_name.table_name (for PostgreSQL, Oracle, SQL Server, Spanner) or source_name.database_name.table_name (for MySQL, MariaDB, MongoDB).", - "operationId": "listRdiV2Dlqs", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreDlqListResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 69, + "name": "asia-south1", + "provider": "GCP" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 34, + "name": "asia-southeast1", + "provider": "GCP" }, - "description": "Not Found" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 71, + "name": "australia-southeast1", + "provider": "GCP" }, - "description": "Internal Server Error" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "full_table_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", - "title": "Full Table Name" - }, - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get DLQ info for a specific stream", - "description": "Returns the DLQ count for a specific stream. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", - "operationId": "getRdiV2Dlq", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreDlqTableResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 72, + "name": "europe-north1", + "provider": "GCP" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 35, + "name": "europe-west1", + "provider": "GCP" }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 74, + "name": "europe-west2", + "provider": "GCP" }, - "description": "Not Found" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 128, + "name": "asia-southeast2", + "provider": "GCP" }, - "description": "Internal Server Error" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/v1/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}/records": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "full_table_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", - "title": "Full Table Name" - }, - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" - } - ], - "get": { - "tags": [ - "Subscriptions - Pro - Data Integration" - ], - "summary": "Get DLQ records for a specific stream", - "description": "Returns the DLQ records for a specific table with pagination. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", - "operationId": "listRdiV2DlqRecords", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "maximum": 1000, - "minimum": 1, - "description": "Number of records to return", - "default": 20, - "title": "Limit" + { + "id": 75, + "name": "europe-west3", + "provider": "GCP" }, - "description": "Number of records to return" - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "description": "Starting position for pagination", - "default": 0, - "title": "Offset" + { + "id": 36, + "name": "europe-west4", + "provider": "GCP" }, - "description": "Starting position for pagination" - }, - { - "name": "sort_order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/RdiCoreSortOrder", - "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)", - "default": "desc" + { + "id": 133, + "name": "europe-west10", + "provider": "GCP" }, - "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)" - }, - { - "name": "fields", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp", - "title": "Fields" + { + "id": 130, + "name": "europe-southwest1", + "provider": "GCP" }, - "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreDlqRecordsResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 134, + "name": "europe-west8", + "provider": "GCP" }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 113, + "name": "europe-west6", + "provider": "GCP" }, - "description": "Forbidden" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 129, + "name": "me-west1", + "provider": "GCP" }, - "description": "Bad Request" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 135, + "name": "europe-west9", + "provider": "GCP" }, - "description": "Not Found" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } + { + "id": 77, + "name": "northamerica-northeast1", + "provider": "GCP" }, - "description": "Internal Server Error" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - } - }, - "components": { - "schemas": { - "TargetVersion": { - "type": "object", - "properties": { - "redisVersion": { - "type": "string" - } + { + "id": 136, + "name": "europe-west12", + "provider": "GCP" + }, + { + "id": 137, + "name": "europe-central2", + "provider": "GCP" + }, + { + "id": 131, + "name": "northamerica-northeast2", + "provider": "GCP" + }, + { + "id": 138, + "name": "me-central2", + "provider": "GCP" + }, + { + "id": 139, + "name": "me-central1", + "provider": "GCP" + }, + { + "id": 140, + "name": "us-east5", + "provider": "GCP" + }, + { + "id": 141, + "name": "us-south1", + "provider": "GCP" + }, + { + "id": 27, + "name": "us-central1", + "provider": "GCP" + }, + { + "id": 38, + "name": "us-east1", + "provider": "GCP" + }, + { + "id": 39, + "name": "us-east4", + "provider": "GCP" + }, + { + "id": 40, + "name": "us-west1", + "provider": "GCP" + }, + { + "id": 82, + "name": "us-west2", + "provider": "GCP" + }, + { + "id": 142, + "name": "southamerica-west1", + "provider": "GCP" + }, + { + "id": 95, + "name": "southamerica-east1", + "provider": "GCP" + }, + { + "id": 143, + "name": "africa-south1", + "provider": "GCP" + } + ] } }, - "AclUserCreateRequest": { - "required": [ - "name", - "password", - "role" - ], + "FixedSubscriptionsPlans": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Access control user name.", - "example": "ACL-user-example" - }, - "role": { - "type": "string", - "description": "Name of the database access role to assign to this user. Use GET '/acl/roles' to get a list of database access roles.", - "example": "ACL-role-example" - }, - "password": { - "type": "string", - "description": "The database password for this user.", - "example": "ab123AB$%^" - }, - "commandType": { - "type": "string", - "readOnly": true + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } } }, - "description": "ACL user create request" + "description": "Redis list of Essentials subscriptions plans", + "example": { + "plans": [ + { + "id": 98183, + "name": "Multi-AZ 5GB", + "size": 5, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-east-1", + "regionId": 1, + "price": 100, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "Multi-zone", + "connections": "unlimited", + "cidrAllowRules": 16, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "supportSsl": true, + "supportedAlerts": [ + "datasets-size", + "latency", + "throughput-lower-than", + "throughput-higher-than" + ], + "customerSupport": "Standard", + "links": [] + }, + { + "id": 98181, + "name": "Multi-AZ 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-east-1", + "regionId": 1, + "price": 22, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "Multi-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "supportSsl": true, + "supportedAlerts": [ + "datasets-size", + "throughput-higher-than", + "throughput-lower-than", + "latency", + "connections-limit" + ], + "customerSupport": "Standard", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/plans?cloud_provider=AWS", + "type": "GET" + } + ] + } }, - "AccountUserUpdateRequest": { - "required": [ - "name" - ], + "ActiveActiveVpcPeeringUpdateAwsRequest": { "type": "object", "properties": { - "userId": { + "subscriptionId": { "type": "integer", "format": "int32", "readOnly": true }, - "name": { - "type": "string", - "description": "The account user's name.", - "example": "My new user name" + "vpcPeeringId": { + "type": "integer", + "description": "VPC Peering id to update.", + "format": "int32", + "readOnly": true }, - "role": { + "vpcCidr": { "type": "string", - "description": "Changes the account user's role. See [Team management roles](https://redis.io/docs/latest/operate/rc/security/access-control/access-management/#team-management-roles) to learn about available account roles.", - "enum": [ - "Owner", - "Member", - "Viewer", - "Logs Viewer (API use only)", - "Manager", - "Billing Admin" - ] + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" + }, + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.22.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]" + } }, "commandType": { "type": "string", "readOnly": true } }, - "description": "User update request" + "description": "Active-Active VPC peering update request message" }, - "PaymentMethods": { + "DatabaseTrafficStateResponse": { "type": "object", "properties": { - "accountId": { + "bdbId": { "type": "integer", "format": "int32" }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "RedisLabs Account payment methods", - "example": { - "accountId": 1001, - "paymentMethods": [ - { - "id": 2, - "type": "Visa", - "creditCardEndsWith": "9349", - "nameOnCard": "CAPI User", - "expirationMonth": 2, - "expirationYear": 2026, - "links": [] - } - ] - } - }, - "AclRoleDatabaseSpec": { - "required": [ - "databaseId", - "subscriptionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "description": "Subscription ID for the database's subscription. Use 'GET /subscriptions' or 'GET /fixed/subscriptions' to get a list of available subscriptions and their IDs.", - "format": "int32" + "trafficStatus": { + "type": "string" }, - "databaseId": { - "type": "integer", - "description": "The database's ID. Use 'GET /subscriptions/{subscriptionId}/databases' or 'GET /fixed/subscriptions/{subscriptionId}/databases' to get a list of databases in a subscription and their IDs.", - "format": "int32" + "canResume": { + "type": "boolean" }, - "regions": { - "type": "array", - "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", - "example": [], - "items": { - "type": "string", - "description": "(Active-Active databases only) Optional. A list of regions where this rule applies for this role.", - "example": "[]" - } + "resumeInProgress": { + "type": "boolean" + }, + "stopReason": { + "type": "string" + }, + "resumeEligibleAt": { + "type": "string", + "format": "date-time" } - }, - "description": "A list of databases where the specified rule applies for this role." + } }, - "ActiveActiveTgwUpdateCidrsRequest": { + "DataPersistenceEntry": { "type": "object", "properties": { - "cidrs": { - "type": "array", - "description": "Optional. List of transit gateway attachment CIDRs.", - "example": [ - "10.10.10.0/24", - "10.10.20.0/24" - ], - "items": { - "$ref": "#/components/schemas/Cidr" - } + "name": { + "type": "string" }, - "commandType": { - "type": "string", - "readOnly": true + "description": { + "type": "string" } }, - "description": "Active active Transit Gateway update attachment cidr/s request message" + "description": "RedisLabs data persistence information" }, - "RootAccount": { + "CloudAccounts": { "type": "object", "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, "links": { "type": "array", "items": { @@ -21221,38 +14939,47 @@ } } }, + "description": "RedisLabs Cloud Accounts information", "example": { - "account": { - "id": 1001, - "name": "Redis", - "createdTimestamp": "2018-12-23T15:15:31Z", - "updatedTimestamp": "2022-10-12T10:54:10Z", - "pocStatus": "inactive", - "marketplaceStatus": "active", - "key": { - "name": "capi-api-key-name", - "accountId": 1001, - "accountName": "Redis", - "allowedSourceIps": [ - "0.0.0.0/0" - ], - "createdTimestamp": "2022-05-11T12:05:47Z", - "owner": { - "name": "CAPI user", - "email": "capi.user@redis.com" - }, - "userAccountId": 1, - "httpSourceIp": "79.0.0.173" + "accountId": 40131, + "cloudAccounts": [ + { + "id": 1, + "name": "Redis Internal Resources", + "provider": "AWS", + "status": "active", + "links": [] + }, + { + "id": 2, + "name": "CAPI User ", + "provider": "AWS", + "status": "active", + "accessKeyId": "A***A", + "links": [] + }, + { + "id": 3, + "name": "API Cloud account", + "provider": "AWS", + "status": "active", + "accessKeyId": "A***4", + "links": [] } - } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts", + "type": "GET" + } + ] } }, - "PrivateLinkActiveActiveCreateRequest": { + "PrivateLinkActiveActivePrincipalsCreateRequest": { "required": [ "principal", - "regionId", - "shareName", - "type" + "regionId" ], "type": "object", "properties": { @@ -21267,13 +14994,6 @@ "format": "int32", "readOnly": true }, - "shareName": { - "maxLength": 64, - "minLength": 0, - "type": "string", - "description": "Name for the resource share", - "example": "my-private-link-share" - }, "principal": { "type": "string", "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", @@ -21302,43 +15022,52 @@ "readOnly": true } }, - "description": "Request to create a private link for Active-Active subscription" + "description": "Request to add a principal to private link for Active-Active subscription" }, - "ActiveActiveVpcPeeringCreateAwsRequest": { + "PrivateLinkActiveActiveConnectionsDisassociateRequest": { "required": [ - "awsAccountId", - "destinationRegion", - "sourceRegion", - "vpcId" + "connections" ], "type": "object", "properties": { - "provider": { - "type": "string" - }, "subscriptionId": { "type": "integer", "format": "int32", "readOnly": true }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true }, - "destinationRegion": { - "type": "string", - "description": "Name of region to create a VPC peering to.", - "example": "us-east-1" + "connections": { + "type": "array", + "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", + "items": { + "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" + } }, - "awsAccountId": { + "commandType": { "type": "string", - "description": "AWS Account ID.", - "example": "" + "readOnly": true + } + }, + "description": "Request to disassociate connections from private link for Active-Active subscription" + }, + "VpcPeeringUpdateAwsRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "vpcId": { - "type": "string", - "description": "VPC ID.", - "example": "" + "vpcPeeringId": { + "type": "integer", + "description": "VPC Peering ID to update.", + "format": "int32", + "readOnly": true }, "vpcCidr": { "type": "string", @@ -21363,180 +15092,236 @@ "readOnly": true } }, - "description": "VPC peering creation request message" + "description": "VPC peering update request message" }, - "SubscriptionUpdateRequest": { + "FixedSubscriptions": { "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated subscription name.", - "example": "My new subscription name" - }, - "paymentMethodId": { + "accountId": { "type": "integer", - "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", "format": "int32" }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", - "enum": [ - "credit-card", - "marketplace" - ] - }, - "publicEndpointAccess": { - "type": "boolean", - "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint." - }, - "commandType": { - "type": "string", - "readOnly": true + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } } }, - "description": "Subscription update request message" + "description": "Redis list of Essentials subscriptions in current account", + "example": { + "accountId": 40131, + "subscriptions": [ + { + "id": 151367, + "name": "fixed-1", + "status": "active", + "paymentMethodId": 8241, + "paymentMethodType": "credit-card", + "planId": 98276, + "planName": "Standard 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-west-1", + "price": 22, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "Single-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "supportClustering": false, + "customerSupport": "Standard", + "creationDate": "2022-11-21T20:02:21+02:00", + "links": [] + }, + { + "id": 120416, + "name": "subscription-name", + "status": "active", + "paymentMethodId": 123, + "paymentMethodType": "credit-card", + "planId": 123, + "planName": "Standard 30MB", + "planType": "pay-as-you-go", + "size": 30, + "sizeMeasurementUnit": "MB", + "provider": "AWS", + "region": "us-east-1", + "price": 0, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "no-replication", + "connections": 30, + "cidrAllowRules": 1, + "supportDataPersistence": false, + "supportInstantAndDailyBackups": false, + "supportReplication": false, + "supportClustering": false, + "customerSupport": "basic", + "creationDate": "20-Nov-2022", + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions", + "type": "GET" + } + ] + } }, - "DatabaseTagUpdateRequest": { + "DatabaseSyncSourceSpec": { "required": [ - "value" + "endpoint" ], "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "key": { + "endpoint": { "type": "string", - "readOnly": true + "description": "Redis URI of a source database. Example format: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: 'redis://endpoint1:6379'." }, - "value": { - "type": "string", - "description": "Database tag value" + "encryption": { + "type": "boolean", + "description": "Defines if encryption should be used to connect to the sync source. If not set the source is a Redis Cloud database, it will automatically detect if the source uses encryption." }, - "commandType": { + "serverCert": { "type": "string", - "readOnly": true + "description": "TLS/SSL certificate chain of the sync source. If not set and the source is a Redis Cloud database, it will automatically detect the certificate to use." } }, - "description": "Database tag update request message" + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details." }, - "ActiveActivePscEndpointCreateRequest": { - "required": [ - "endpointConnectionName", - "gcpProjectId", - "gcpVpcName", - "gcpVpcSubnetName", - "pscServiceId", - "regionId", - "subscriptionId" - ], + "MaintenanceWindow": { "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "days": { + "type": "array", + "items": { + "type": "string" + } }, - "pscServiceId": { + "startHour": { "type": "integer", - "format": "int32", - "readOnly": true + "format": "int32" }, - "regionId": { + "durationInHours": { "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true, - "example": 27 + "format": "int32" + } + } + }, + "Module": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" + "capabilityName": { + "type": "string" }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" + "description": { + "type": "string" + } + }, + "description": "RedisLabs database module information" + }, + "AclRedisRuleUpdateRequest": { + "required": [ + "name", + "redisRule" + ], + "type": "object", + "properties": { + "redisRuleId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "gcpVpcSubnetName": { + "name": { "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" + "description": "Optional. Changes the Redis ACL rule name.", + "example": "ACL-rule-example" }, - "endpointConnectionName": { + "redisRule": { "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" + "description": "Optional. Changes the Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", + "example": "+set allkeys allchannels" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Private Service Connect endpoint create request" + "description": "ACL redis rule update request" }, - "TaskStateUpdate": { + "ActiveActiveRegionToDelete": { "type": "object", "properties": { - "taskId": { - "type": "string", - "format": "uuid" - }, - "commandType": { - "type": "string" - }, - "status": { + "region": { "type": "string", - "enum": [ - "initialized", - "received", - "processing-in-progress", - "processing-completed", - "processing-error" - ] + "description": "Name of the cloud provider region to delete." + } + }, + "description": "The names of the regions to delete." + }, + "MaintenanceWindowSkipStatus": { + "type": "object", + "properties": { + "remainingSkips": { + "type": "integer", + "format": "int32" }, - "description": { + "currentSkipEnd": { "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "response": { - "$ref": "#/components/schemas/ProcessorResponse" - }, - "links": { + } + } + }, + "DatabaseAvailableVersionsResponse": { + "type": "object", + "properties": { + "targets": { "type": "array", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "$ref": "#/components/schemas/TargetVersion" } } } }, - "Database": { + "CloudAccount": { "type": "object", "properties": { - "databaseId": { + "id": { "type": "integer", "format": "int32" }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "accessKeyId": { + "type": "string" + }, + "signInLoginUrl": { + "type": "string" + }, + "awsUserArn": { + "type": "string" + }, + "awsConsoleRoleArn": { + "type": "string" + }, "links": { "type": "array", "items": { @@ -21545,259 +15330,119 @@ "type": "string" } } - } - }, - "example": { - "databaseId": 1, - "name": "DB-RCP-2-81-7", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "respVersion": "resp3", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 - }, - "activatedOn": "2021-08-29T13:03:08Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "password": "redis123456redis", - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" + "provider": { + "type": "string", + "enum": [ + "AWS", + "GCP" ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], + } + }, + "description": "RedisLabs Cloud Account information", + "example": { + "id": 1, + "name": "Redis Internal Resources", + "provider": "AWS", + "status": "active", "links": [ { "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases/51170941", + "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts/1", "type": "GET" } ] } }, - "SubscriptionDatabaseSpec": { + "PrivateLinkPrincipalsCreateRequest": { "required": [ - "name", - "protocol" + "principal" ], "type": "object", "properties": { - "name": { - "type": "string", - "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-database-example" - }, - "protocol": { - "type": "string", - "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", - "enum": [ - "redis", - "memcached" - ] - }, - "port": { + "subscriptionId": { "type": "integer", - "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", "format": "int32", - "example": 10000 - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", - "example": false + "readOnly": true }, - "dataPersistence": { + "principal": { "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Databases replication. Default: 'true'" - }, - "throughputMeasurement": { - "$ref": "#/components/schemas/DatabaseThroughputSpec" - }, - "localThroughputMeasurement": { - "type": "array", - "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", - "items": { - "$ref": "#/components/schemas/LocalThroughput" - } - }, - "modules": { - "type": "array", - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", - "items": { - "$ref": "#/components/schemas/DatabaseModuleSpec" - } - }, - "quantity": { - "type": "integer", - "description": "Optional. Number of databases that will be created with these settings. Default: 1", - "format": "int32", - "example": 1 - }, - "averageItemSizeInBytes": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", - "format": "int64", - "deprecated": true - }, - "ramPercentage": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", - "format": "int32", - "example": 20 + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" }, - "respVersion": { + "type": { "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", + "description": "Type of the principal", + "example": "aws_account", "enum": [ - "resp2", - "resp3" + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" ] }, - "redisVersion": { - "type": "string", - "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", - "example": "7.2" - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." - }, - "shardingType": { + "alias": { "type": "string", - "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", - "enum": [ - "default-regex-rules", - "custom-regex-rules", - "redis-oss-hashing" - ] + "description": "Alias or friendly name for the principal", + "example": "Production Account" }, - "queryPerformanceFactor": { + "commandType": { "type": "string", - "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", - "example": "2x" + "readOnly": true } }, - "description": "One or more database specification(s) to create in this subscription." + "description": "Private Link principals create request" }, - "Subscription": { + "FixedSubscriptionUpdateRequest": { "type": "object", "properties": { - "id": { + "subscriptionId": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, "name": { - "type": "string" + "type": "string", + "description": "Optional. Updated subscription name.", + "example": "My new subscription" }, - "paymentMethodId": { + "planId": { "type": "integer", + "description": "Optional. An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans/subscriptions/{subscriptionId} to get a list of compatible options for the specified subscription.", "format": "int32" }, - "status": { - "type": "string" - }, - "publicEndpointAccess": { - "type": "boolean" - }, - "memoryStorage": { + "paymentMethod": { "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", "enum": [ - "ram", - "ram-and-flash" + "credit-card", + "marketplace" ] }, - "numberOfDatabases": { + "paymentMethodId": { "type": "integer", + "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get a list of payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", "format": "int32" }, - "paymentMethodType": { + "commandType": { "type": "string", - "enum": [ - "credit-card", - "marketplace" - ] - }, - "links": { + "readOnly": true + } + }, + "description": "Essentials subscription update request" + }, + "SearchScalingFactorsData": { + "type": "object", + "properties": { + "queryPerformanceFactors": { + "type": "array", + "items": { + "type": "string" + } + }, + "links": { "type": "array", "items": { "type": "object", @@ -21805,73 +15450,13 @@ "type": "string" } } - }, - "persistentStorageEncryptionType": { - "type": "string" - }, - "deletionGracePeriod": { - "type": "string" - }, - "customerManagedKeyAccessDetails": { - "$ref": "#/components/schemas/CustomerManagedKeyAccessDetails" } - }, - "description": "RedisLabs Subscription information", - "example": { - "id": 1206, - "name": "updated new name", - "status": "active", - "deploymentType": "single-region", - "paymentMethodId": 2, - "publicEndpointAccess": true, - "memoryStorage": "ram", - "numberOfDatabases": 6, - "paymentMethodType": "credit-card", - "storageEncryption": false, - "subscriptionPricing": [ - { - "type": "Shards", - "typeDetails": "high-throughput", - "quantity": 7, - "quantityMeasurement": "shards", - "pricePerUnit": 0.124, - "priceCurrency": "USD", - "pricePeriod": "hour" - } - ], - "cloudDetails": [ - { - "provider": "AWS", - "cloudAccountId": 2, - "totalSizeInGb": 0.0272, - "regions": [ - { - "region": "us-east-1", - "networking": [ - { - "deploymentCIDR": "10.0.0.0/24", - "subnetId": "subnet-009ce004ed90da8a6" - } - ], - "preferredAvailabilityZones": [ - "us-east-1a" - ], - "multipleAvailabilityZones": false - } - ], - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416", - "type": "GET" - } - ] } }, - "CidrWhiteListUpdateRequest": { + "SubscriptionUpdateCMKRequest": { + "required": [ + "customerManagedKeys" + ], "type": "object", "properties": { "subscriptionId": { @@ -21879,6085 +15464,3938 @@ "format": "int32", "readOnly": true }, - "cidrIps": { - "type": "array", - "description": "List of CIDR values. Example: ['10.1.1.0/32']", - "items": { - "type": "string", - "description": "List of CIDR values. Example: ['10.1.1.0/32']" - } + "commandType": { + "type": "string", + "readOnly": true }, - "securityGroupIds": { + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] + }, + "customerManagedKeys": { "type": "array", - "description": "List of AWS Security group IDs.", + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", "items": { - "type": "string", - "description": "List of AWS Security group IDs." + "$ref": "#/components/schemas/CustomerManagedKey" } - }, - "commandType": { - "type": "string", - "readOnly": true } }, - "description": "Update Pro subscription" + "description": "Subscription update request message" }, - "FixedDatabaseCreateRequest": { + "CostReportCreateRequest": { "required": [ - "name" + "endDate", + "startDate" ], "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "startDate": { + "type": "string", + "description": "Filter for usage starting on or after this date. Must be in format YYYY-MM-DD", + "format": "YYYY-MM-DD", + "example": "2025-10-01" }, - "name": { + "endDate": { "type": "string", - "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-Essentials-database-example" + "description": "Filter for usage ending on or before this date. Must be in format YYYY-MM-DD and must be after start date", + "format": "YYYY-MM-DD", + "example": "2025-11-06" }, - "protocol": { + "format": { "type": "string", - "description": "Optional. Database protocol. Use 'stack' to get all of Redis' advanced capabilities. Only use 'redis' for Pay-as-you-go or Redis Flex subscriptions. Default: 'stack' for most subscriptions, 'redis' for Redis Flex subscriptions.", + "description": "Output format for the cost report", + "example": "csv", + "default": "csv", "enum": [ - "redis", - "memcached", - "stack" + "json", + "csv" ] }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", - "example": true + "subscriptionIds": { + "type": "array", + "description": "Array of subscriptionIDs to filter by", + "example": [ + 123, + 456 + ], + "items": { + "type": "integer", + "description": "Array of subscriptionIDs to filter by", + "format": "int32" + } }, - "redisVersion": { - "type": "string", - "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version. (available in 'GET /fixed/redis-versions')", - "example": "7.4" + "databaseIds": { + "type": "array", + "description": "Array of database IDs to filter by", + "example": [ + 789, + 101112 + ], + "items": { + "type": "integer", + "description": "Array of database IDs to filter by", + "format": "int32" + } }, - "respVersion": { + "subscriptionType": { "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", + "description": "Filter by plan type", + "example": "pro", "enum": [ - "resp2", - "resp3" + "pro", + "essentials" ] }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", - "example": true + "regions": { + "type": "array", + "description": "Array of regions to filter by", + "example": [ + "us-east-1", + "eu-west-1" + ], + "items": { + "type": "string", + "description": "Array of regions to filter by", + "example": "[\"us-east-1\",\"eu-west-1\"]" + } }, - "enableDatabaseClustering": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances. Default: 'false'", - "example": false + "tags": { + "type": "array", + "description": "Array of key-value pairs for tag filtering", + "items": { + "$ref": "#/components/schemas/Tag" + } }, - "numberOfShards": { + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cost report generation request" + }, + "AccountSubscriptionDatabases": { + "type": "object", + "properties": { + "accountId": { "type": "integer", - "description": "(Pay-as-you-go subscriptions only) Optional. Specifies the number of master shards.", - "format": "int32", - "example": 2 + "format": "int32" }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." - }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups.", - "example": "s3://" - }, - "sourceIps": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Use GET /fixed/plans/{planId} to see how many CIDR allow rules your plan supports. Example: '['192.168.10.0/32', '192.168.12.0/24']'" - } - }, - "regexRules": { - "type": "array", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and .", - "items": { - "type": "string", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'enableDatabaseClustering' is set to 'true' and ." - } - }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." - } - }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" - }, - "password": { - "type": "string", - "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated." - }, - "alerts": { - "type": "array", - "description": "Optional. Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } - }, - "modules": { + "links": { "type": "array", - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Can only be set if 'protocol' is 'redis'. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", "items": { - "$ref": "#/components/schemas/DatabaseModuleSpec" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials database definition" - }, - "DatabaseUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", - "example": false - }, - "name": { - "type": "string", - "description": "Optional. Updated database name.", - "example": "Redis-database-example-updated" - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "throughputMeasurement": { - "$ref": "#/components/schemas/DatabaseThroughputSpec" - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Turns database replication on or off." - }, - "regexRules": { - "type": "array", - "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", - "items": { - "type": "string", - "description": "Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." - } - }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." - } - }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", - "example": false - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", - "example": false - }, - "password": { - "type": "string", - "description": "Optional. Changes the password used to access the database with the 'default' user. Can only be set if 'protocol' is 'redis'.", - "example": "P@ssw0rd" - }, - "saslUsername": { - "type": "string", - "description": "Optional. Changes the Memcached (SASL) username to access the database. Can only be set if 'protocol' is 'memcached'.", - "example": "mc-HR7gb" - }, - "saslPassword": { - "type": "string", - "description": "Optional. Changes the Memcached (SASL) password to access the database. Can only be set if 'protocol' is 'memcached'.", - "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT" - }, - "sourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" - } - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." - }, - "enableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. Can only be set if 'protocol' is 'redis'." - }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. If set to an empty string, the backup path will be removed.", - "example": "s3://", - "deprecated": true - }, - "remoteBackup": { - "$ref": "#/components/schemas/DatabaseBackupConfig" - }, - "alerts": { - "type": "array", - "description": "Optional. Changes Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } - }, - "ramPercentage": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50).", - "format": "int32", - "example": 20 - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." - }, - "commandType": { - "type": "string", - "readOnly": true - }, - "queryPerformanceFactor": { - "type": "string", - "description": "Optional. Changes the query performance factor. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", - "example": "2x" - } - }, - "description": "Database update request" - }, - "LocalRegionProperties": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Required. Name of the region to update." - }, - "remoteBackup": { - "$ref": "#/components/schemas/DatabaseBackupConfig" - }, - "localThroughputMeasurement": { - "$ref": "#/components/schemas/LocalThroughput" - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence for this region. If set, 'globalDataPersistence' will not apply to this region.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "password": { - "type": "string", - "description": "Optional. Changes the password used to access the database in this region. If set, 'globalPassword' will not apply to this region.", - "example": "P@ssw0rd" - }, - "sourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in this region. If set, Redis clients will be able to connect to the database in this region only from within the specified source IP addresses ranges, and 'globalSourceIp' will not apply to this region. Example: ['192.168.10.0/32', '192.168.12.0/24']" - } - }, - "alerts": { - "type": "array", - "description": "Optional. Redis database alert settings for this region. If set, 'glboalAlerts' will not apply to this region.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version for this region. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "enableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database. If set, 'globalEnableDefaultUser' will not apply to this region." - } - }, - "description": "Optional. A list of regions and local settings to update." - }, - "PscEndpointCreateRequest": { - "required": [ - "endpointConnectionName", - "gcpProjectId", - "gcpVpcName", - "gcpVpcSubnetName", - "pscServiceId", - "subscriptionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "pscServiceId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" - }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" - }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" - }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Private Service Connect endpoint create request" - }, - "ActiveActiveVpcPeeringCreateBaseRequest": { - "required": [ - "sourceRegion" - ], - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Active-Active VPC peering creation request message", - "oneOf": [ - { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateAwsRequest" - }, - { - "$ref": "#/components/schemas/ActiveActiveVpcPeeringCreateGcpRequest" - } - ] - }, - "BaseSubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Subscription update request message", - "oneOf": [ - { - "$ref": "#/components/schemas/SubscriptionUpdateRequest" - }, - { - "$ref": "#/components/schemas/SubscriptionUpdateCMKRequest" - } - ] - }, - "Regions": { - "type": "object", - "properties": { - "regions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Region" - } - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "object", + "additionalProperties": { + "type": "string" + } } } }, + "description": "RedisLabs Account Subscription Databases information", "example": { - "regions": [ - { - "id": 1, - "name": "us-east-1", - "provider": "AWS" - }, - { - "id": 2, - "name": "us-west-1", - "provider": "AWS" - }, - { - "id": 3, - "name": "us-west-2", - "provider": "AWS" - }, - { - "id": 4, - "name": "eu-west-1", - "provider": "AWS" - }, + "accountId": 1001, + "subscription": [ { - "id": 29, - "name": "eu-central-1", - "provider": "AWS" - }, - { - "id": 7, - "name": "sa-east-1", - "provider": "AWS" - }, - { - "id": 63, - "name": "ca-central-1", - "provider": "AWS" - }, - { - "id": 62, - "name": "eu-north-1", - "provider": "AWS" - }, - { - "id": 61, - "name": "eu-west-3", - "provider": "AWS" - }, - { - "id": 60, - "name": "eu-west-2", - "provider": "AWS" - }, - { - "id": 59, - "name": "us-east-2", - "provider": "AWS" - }, - { - "id": 64, - "name": "ap-east-1", - "provider": "AWS" - }, - { - "id": 146, - "name": "ap-southeast-5", - "provider": "AWS" - }, - { - "id": 30, - "name": "ap-south-1", - "provider": "AWS" - }, - { - "id": 117, - "name": "ap-northeast-3", - "provider": "AWS" - }, - { - "id": 116, - "name": "ap-northeast-2", - "provider": "AWS" - }, - { - "id": 145, - "name": "ap-southeast-7", - "provider": "AWS" - }, - { - "id": 6, - "name": "ap-northeast-1", - "provider": "AWS" - }, - { - "id": 5, - "name": "ap-southeast-1", - "provider": "AWS" - }, - { - "id": 15, - "name": "ap-southeast-2", - "provider": "AWS" - }, - { - "id": 132, - "name": "il-central-1", - "provider": "AWS" - }, - { - "id": 144, - "name": "mx-central-1", - "provider": "AWS" - }, - { - "id": 32, - "name": "asia-east1", - "provider": "GCP" - }, - { - "id": 67, - "name": "asia-east2", - "provider": "GCP" - }, - { - "id": 33, - "name": "asia-northeast1", - "provider": "GCP" - }, - { - "id": 104, - "name": "asia-northeast2", - "provider": "GCP" - }, - { - "id": 69, - "name": "asia-south1", - "provider": "GCP" - }, - { - "id": 34, - "name": "asia-southeast1", - "provider": "GCP" - }, - { - "id": 71, - "name": "australia-southeast1", - "provider": "GCP" - }, - { - "id": 72, - "name": "europe-north1", - "provider": "GCP" - }, - { - "id": 35, - "name": "europe-west1", - "provider": "GCP" - }, - { - "id": 74, - "name": "europe-west2", - "provider": "GCP" - }, - { - "id": 128, - "name": "asia-southeast2", - "provider": "GCP" - }, - { - "id": 75, - "name": "europe-west3", - "provider": "GCP" - }, - { - "id": 36, - "name": "europe-west4", - "provider": "GCP" - }, - { - "id": 133, - "name": "europe-west10", - "provider": "GCP" - }, - { - "id": 130, - "name": "europe-southwest1", - "provider": "GCP" - }, - { - "id": 134, - "name": "europe-west8", - "provider": "GCP" - }, - { - "id": 113, - "name": "europe-west6", - "provider": "GCP" - }, - { - "id": 129, - "name": "me-west1", - "provider": "GCP" - }, - { - "id": 135, - "name": "europe-west9", - "provider": "GCP" - }, - { - "id": 77, - "name": "northamerica-northeast1", - "provider": "GCP" - }, - { - "id": 136, - "name": "europe-west12", - "provider": "GCP" - }, - { - "id": 137, - "name": "europe-central2", - "provider": "GCP" - }, - { - "id": 131, - "name": "northamerica-northeast2", - "provider": "GCP" - }, - { - "id": 138, - "name": "me-central2", - "provider": "GCP" - }, - { - "id": 139, - "name": "me-central1", - "provider": "GCP" - }, - { - "id": 140, - "name": "us-east5", - "provider": "GCP" - }, - { - "id": 141, - "name": "us-south1", - "provider": "GCP" - }, - { - "id": 27, - "name": "us-central1", - "provider": "GCP" - }, - { - "id": 38, - "name": "us-east1", - "provider": "GCP" - }, - { - "id": 39, - "name": "us-east4", - "provider": "GCP" - }, - { - "id": 40, - "name": "us-west1", - "provider": "GCP" - }, - { - "id": 82, - "name": "us-west2", - "provider": "GCP" - }, - { - "id": 142, - "name": "southamerica-west1", - "provider": "GCP" - }, - { - "id": 95, - "name": "southamerica-east1", - "provider": "GCP" - }, - { - "id": 143, - "name": "africa-south1", - "provider": "GCP" - } - ] - } - }, - "FixedSubscriptionsPlans": { - "type": "object", - "properties": { - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis list of Essentials subscriptions plans", - "example": { - "plans": [ - { - "id": 98183, - "name": "Multi-AZ 5GB", - "size": 5, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-east-1", - "regionId": 1, - "price": 100, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "Multi-zone", - "connections": "unlimited", - "cidrAllowRules": 16, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "supportSsl": true, - "supportedAlerts": [ - "datasets-size", - "latency", - "throughput-lower-than", - "throughput-higher-than" - ], - "customerSupport": "Standard", - "links": [] - }, - { - "id": 98181, - "name": "Multi-AZ 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-east-1", - "regionId": 1, - "price": 22, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "Multi-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "supportSsl": true, - "supportedAlerts": [ - "datasets-size", - "throughput-higher-than", - "throughput-lower-than", - "latency", - "connections-limit" - ], - "customerSupport": "Standard", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/plans?cloud_provider=AWS", - "type": "GET" - } - ] - } - }, - "ActiveActiveVpcPeeringUpdateAwsRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "vpcPeeringId": { - "type": "integer", - "description": "VPC Peering id to update.", - "format": "int32", - "readOnly": true - }, - "vpcCidr": { - "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" - }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.22.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Active-Active VPC peering update request message" - }, - "DatabaseTrafficStateResponse": { - "type": "object", - "properties": { - "bdbId": { - "type": "integer", - "format": "int32" - }, - "trafficStatus": { - "type": "string" - }, - "canResume": { - "type": "boolean" - }, - "resumeInProgress": { - "type": "boolean" - }, - "stopReason": { - "type": "string" - }, - "resumeEligibleAt": { - "type": "string", - "format": "date-time" - } - } - }, - "DataPersistenceEntry": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "description": "RedisLabs data persistence information" - }, - "CloudAccounts": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "RedisLabs Cloud Accounts information", - "example": { - "accountId": 40131, - "cloudAccounts": [ - { - "id": 1, - "name": "Redis Internal Resources", - "provider": "AWS", - "status": "active", - "links": [] - }, - { - "id": 2, - "name": "CAPI User ", - "provider": "AWS", - "status": "active", - "accessKeyId": "A***A", - "links": [] - }, - { - "id": 3, - "name": "API Cloud account", - "provider": "AWS", - "status": "active", - "accessKeyId": "A***4", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts", - "type": "GET" - } - ] - } - }, - "PrivateLinkActiveActivePrincipalsCreateRequest": { - "required": [ - "principal", - "regionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true - }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" - }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] - }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Request to add a principal to private link for Active-Active subscription" - }, - "PrivateLinkActiveActiveConnectionsDisassociateRequest": { - "required": [ - "connections" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true - }, - "connections": { - "type": "array", - "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", - "items": { - "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Request to disassociate connections from private link for Active-Active subscription" - }, - "VpcPeeringUpdateAwsRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "vpcPeeringId": { - "type": "integer", - "description": "VPC Peering ID to update.", - "format": "int32", - "readOnly": true - }, - "vpcCidr": { - "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" - }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "VPC peering update request message" - }, - "FixedSubscriptions": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis list of Essentials subscriptions in current account", - "example": { - "accountId": 40131, - "subscriptions": [ - { - "id": 151367, - "name": "fixed-1", - "status": "active", - "paymentMethodId": 8241, - "paymentMethodType": "credit-card", - "planId": 98276, - "planName": "Standard 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-west-1", - "price": 22, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "Single-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "supportClustering": false, - "customerSupport": "Standard", - "creationDate": "2022-11-21T20:02:21+02:00", - "links": [] - }, - { - "id": 120416, - "name": "subscription-name", - "status": "active", - "paymentMethodId": 123, - "paymentMethodType": "credit-card", - "planId": 123, - "planName": "Standard 30MB", - "planType": "pay-as-you-go", - "size": 30, - "sizeMeasurementUnit": "MB", - "provider": "AWS", - "region": "us-east-1", - "price": 0, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "no-replication", - "connections": 30, - "cidrAllowRules": 1, - "supportDataPersistence": false, - "supportInstantAndDailyBackups": false, - "supportReplication": false, - "supportClustering": false, - "customerSupport": "basic", - "creationDate": "20-Nov-2022", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions", - "type": "GET" - } - ] - } - }, - "DatabaseSyncSourceSpec": { - "required": [ - "endpoint" - ], - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "description": "Redis URI of a source database. Example format: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: 'redis://endpoint1:6379'." - }, - "encryption": { - "type": "boolean", - "description": "Defines if encryption should be used to connect to the sync source. If not set the source is a Redis Cloud database, it will automatically detect if the source uses encryption." - }, - "serverCert": { - "type": "string", - "description": "TLS/SSL certificate chain of the sync source. If not set and the source is a Redis Cloud database, it will automatically detect the certificate to use." - } - }, - "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details." - }, - "MaintenanceWindow": { - "type": "object", - "properties": { - "days": { - "type": "array", - "items": { - "type": "string" - } - }, - "startHour": { - "type": "integer", - "format": "int32" - }, - "durationInHours": { - "type": "integer", - "format": "int32" - } - } - }, - "Module": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "capabilityName": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "description": "RedisLabs database module information" - }, - "AclRedisRuleUpdateRequest": { - "required": [ - "name", - "redisRule" - ], - "type": "object", - "properties": { - "redisRuleId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Changes the Redis ACL rule name.", - "example": "ACL-rule-example" - }, - "redisRule": { - "type": "string", - "description": "Optional. Changes the Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", - "example": "+set allkeys allchannels" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "ACL redis rule update request" - }, - "ActiveActiveRegionToDelete": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Name of the cloud provider region to delete." - } - }, - "description": "The names of the regions to delete." - }, - "MaintenanceWindowSkipStatus": { - "type": "object", - "properties": { - "remainingSkips": { - "type": "integer", - "format": "int32" - }, - "currentSkipEnd": { - "type": "string" - } - } - }, - "DatabaseAvailableVersionsResponse": { - "type": "object", - "properties": { - "targets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TargetVersion" - } - } - } - }, - "CloudAccount": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "accessKeyId": { - "type": "string" - }, - "signInLoginUrl": { - "type": "string" - }, - "awsUserArn": { - "type": "string" - }, - "awsConsoleRoleArn": { - "type": "string" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "provider": { - "type": "string", - "enum": [ - "AWS", - "GCP" - ] - } - }, - "description": "RedisLabs Cloud Account information", - "example": { - "id": 1, - "name": "Redis Internal Resources", - "provider": "AWS", - "status": "active", - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/cloud-accounts/1", - "type": "GET" - } - ] - } - }, - "PrivateLinkPrincipalsCreateRequest": { - "required": [ - "principal" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" - }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] - }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Private Link principals create request" - }, - "FixedSubscriptionUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated subscription name.", - "example": "My new subscription" - }, - "planId": { - "type": "integer", - "description": "Optional. An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans/subscriptions/{subscriptionId} to get a list of compatible options for the specified subscription.", - "format": "int32" - }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’ , ‘paymentMethodId’ must be defined.", - "enum": [ - "credit-card", - "marketplace" - ] - }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. The payment method ID you'd like to use for this subscription. Must be a valid payment method ID for this account. Use GET /payment-methods to get a list of payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required if 'paymentMethod' is 'credit-card'.", - "format": "int32" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials subscription update request" - }, - "SearchScalingFactorsData": { - "type": "object", - "properties": { - "queryPerformanceFactors": { - "type": "array", - "items": { - "type": "string" - } - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - } - }, - "SubscriptionUpdateCMKRequest": { - "required": [ - "customerManagedKeys" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "commandType": { - "type": "string", - "readOnly": true - }, - "deletionGracePeriod": { - "type": "string", - "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", - "example": "alerts-only", - "enum": [ - "alerts-only", - "immediate", - "15-minutes", - "30-minutes", - "1-hour", - "4-hours", - "8-hours", - "12-hours", - "24-hours" - ] - }, - "customerManagedKeys": { - "type": "array", - "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", - "items": { - "$ref": "#/components/schemas/CustomerManagedKey" - } - } - }, - "description": "Subscription update request message" - }, - "CostReportCreateRequest": { - "required": [ - "endDate", - "startDate" - ], - "type": "object", - "properties": { - "startDate": { - "type": "string", - "description": "Filter for usage starting on or after this date. Must be in format YYYY-MM-DD", - "format": "YYYY-MM-DD", - "example": "2025-10-01" - }, - "endDate": { - "type": "string", - "description": "Filter for usage ending on or before this date. Must be in format YYYY-MM-DD and must be after start date", - "format": "YYYY-MM-DD", - "example": "2025-11-06" - }, - "format": { - "type": "string", - "description": "Output format for the cost report", - "example": "csv", - "default": "csv", - "enum": [ - "json", - "csv" - ] - }, - "subscriptionIds": { - "type": "array", - "description": "Array of subscriptionIDs to filter by", - "example": [ - 123, - 456 - ], - "items": { - "type": "integer", - "description": "Array of subscriptionIDs to filter by", - "format": "int32" - } - }, - "databaseIds": { - "type": "array", - "description": "Array of database IDs to filter by", - "example": [ - 789, - 101112 - ], - "items": { - "type": "integer", - "description": "Array of database IDs to filter by", - "format": "int32" - } - }, - "subscriptionType": { - "type": "string", - "description": "Filter by plan type", - "example": "pro", - "enum": [ - "pro", - "essentials" - ] - }, - "regions": { - "type": "array", - "description": "Array of regions to filter by", - "example": [ - "us-east-1", - "eu-west-1" - ], - "items": { - "type": "string", - "description": "Array of regions to filter by", - "example": "[\"us-east-1\",\"eu-west-1\"]" - } - }, - "tags": { - "type": "array", - "description": "Array of key-value pairs for tag filtering", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Cost report generation request" - }, - "AccountSubscriptionDatabases": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "RedisLabs Account Subscription Databases information", - "example": { - "accountId": 1001, - "subscription": [ - { - "subscriptionId": 1206, - "numberOfDatabases": 6, - "databases": [ - { - "databaseId": 1, - "name": "DB-RCP-2-81-7", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "respVersion": "resp2", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 - }, - "activatedOn": "2021-08-29T13:03:08Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, - { - "databaseId": 2, - "name": "DB-RCP-2-81-5", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 2, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:27Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 6652, - "name": "RediSearch", - "capabilityName": "Search and query", - "version": "2.0.11", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, - { - "databaseId": 3, - "name": "Redis-database-example-updated", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 2, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 2500 - }, - "activatedOn": "2021-08-29T13:03:26Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": false, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, - { - "databaseId": 4, - "name": "DB-RCP-2-81-6", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 2, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:27Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 6653, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.4.10", - "description": "Time-Series data structure for redis", - "parameters": [] - } - ], - "alerts": [], - "links": [] - }, - { - "databaseId": 5, - "name": "CI-tests-DO-NOT-DELETE", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 4, - "memoryStorage": "ram", - "supportOSSClusterApi": false, - "useExternalEndpointForOSSClusterApi": false, - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "volatile-lru", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:22Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [], - "alerts": [], - "links": [] - }, - { - "databaseId": 6, - "name": "DB-RCP-2-81-4", - "protocol": "redis", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "active", - "datasetSizeInGb": 2, - "memoryUsedInMb": 1, - "memoryStorage": "ram", - "supportOSSClusterApi": true, - "useExternalEndpointForOSSClusterApi": true, - "dataPersistence": "snapshot-every-1-hour", - "replication": false, - "dataEvictionPolicy": "noeviction", - "throughputMeasurement": { - "by": "operations-per-second", - "value": 25000 - }, - "activatedOn": "2021-08-29T13:03:27Z", - "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", - "replica": { - "syncSources": [ - { - "endpoint": "redis://localhost:6379", - "encryption": true, - "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" - } - ] - }, - "clustering": { - "numberOfShards": 1, - "regexRules": [ - { - "ordinal": 1, - "pattern": "(?.*)" - }, - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "enableDefaultUser": true, - "sslClientAuthentication": false, - "tlsClientAuthentication": false, - "enableTls": false, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 6651, - "name": "RediSearch", - "capabilityName": "Search and query", - "version": "2.0.11", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - } - ], - "alerts": [], - "links": [] - } - ], - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases?offset=0&limit=100", - "type": "GET" - } - ] - } - }, - "AccountSystemLogEntry": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "originator": { - "type": "string" - }, - "apiKeyName": { - "type": "string" - }, - "resource": { - "type": "string" - }, - "resourceId": { - "type": "integer", - "format": "int32" - }, - "type": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "description": "Account system log entry" - }, - "CloudTag": { - "type": "object", - "properties": { - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "key": { - "type": "string" - }, - "value": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "description": "Database tag", - "example": { - "key": "environment", - "value": "production", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [ - { - "rel": "self", - "type": "GET", - "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags" - } - ] - } - }, - "AccountACLRedisRules": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis list of ACL redis rules in current account", - "example": { - "accountId": 1001, - "redisRules": [ - { - "id": 7, - "name": "Full-Access", - "acl": "+@all ~*", - "isDefault": true, - "status": "active" - }, - { - "id": 8, - "name": "Read-Write", - "acl": "+@all -@dangerous ~*", - "isDefault": true, - "status": "active" - }, - { - "id": 9, - "name": "Read-Only", - "acl": "+@read ~*", - "isDefault": true, - "status": "active" - } - ] - } - }, - "FixedSubscription": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "paymentMethodId": { - "type": "integer", - "format": "int32" - }, - "paymentMethodType": { - "type": "string" - }, - "planId": { - "type": "integer", - "format": "int32" - }, - "planName": { - "type": "string" - }, - "planType": { - "type": "string" - }, - "size": { - "type": "number", - "format": "double" - }, - "sizeMeasurementUnit": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "region": { - "type": "string" - }, - "price": { - "type": "integer", - "format": "int32" - }, - "pricePeriod": { - "type": "string" - }, - "priceCurrency": { - "type": "string" - }, - "maximumDatabases": { - "type": "integer", - "format": "int32" - }, - "availability": { - "type": "string" - }, - "connections": { - "type": "string" - }, - "cidrAllowRules": { - "type": "integer", - "format": "int32" - }, - "supportDataPersistence": { - "type": "boolean" - }, - "supportInstantAndDailyBackups": { - "type": "boolean" - }, - "supportReplication": { - "type": "boolean" - }, - "supportClustering": { - "type": "boolean" - }, - "customerSupport": { - "type": "string" - }, - "creationDate": { - "type": "string", - "format": "date-time" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "databaseStatus": { - "type": "string" - } - }, - "description": "Redis Essentials Subscription information", - "example": { - "id": 151367, - "name": "fixed-sub-2", - "status": "active", - "paymentMethodId": 8241, - "paymentMethodType": "credit-card", - "planId": 98276, - "planName": "Standard 1GB", - "size": 1, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "us-west-1", - "price": 22, - "pricePeriod": "Month", - "priceCurrency": "USD", - "maximumDatabases": 1, - "availability": "Single-zone", - "connections": "1024", - "cidrAllowRules": 8, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": true, - "customerSupport": "Standard", - "creationDate": "2022-11-21T20:02:21+02:00", - "supportClustering": false, - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions/151367", - "type": "GET" - } - ] - } - }, - "DatabaseCertificateSpec": { - "required": [ - "publicCertificatePEMString" - ], - "type": "object", - "properties": { - "publicCertificatePEMString": { - "type": "string", - "description": "Client certificate public key in PEM format, with new line characters replaced with '\\n'." - } - }, - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'." - }, - "AclRoleUpdateRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Optional. Changes the database access role name.", - "example": "ACL-role-example" - }, - "redisRules": { - "type": "array", - "description": "Optional. Changes the Redis ACL rules to assign to this database access role.", - "items": { - "$ref": "#/components/schemas/AclRoleRedisRuleSpec" - } - }, - "roleId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "ACL role update request" - }, - "AccountUserOptions": { - "type": "object", - "properties": { - "billing": { - "type": "boolean" - }, - "emailAlerts": { - "type": "boolean" - }, - "operationalEmails": { - "type": "boolean" - }, - "mfaEnabled": { - "type": "boolean" - } - }, - "description": "RedisLabs User options information" - }, - "AccountSystemLogEntries": { - "type": "object", - "properties": { - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AccountSystemLogEntry" - } - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "example": { - "entries": [ - { - "id": 2900349, - "time": "2022-10-12T10:54:31Z", - "originator": "example-value", - "type": "Account", - "description": "example-value (example.value@redis.com)'s user name was changed to Example Value" - }, - { - "id": 2900348, - "time": "2022-10-12T10:54:11Z", - "originator": "invalid-name", - "type": "Account", - "description": "Invited invalid-name (cab@fufu.com) to join team" - } - ] - } - }, - "TgwUpdateCidrsRequest": { - "type": "object", - "properties": { - "cidrs": { - "type": "array", - "description": "Optional. List of transit gateway attachment CIDRs.", - "example": [ - "10.10.10.0/24", - "10.10.20.0/24" - ], - "items": { - "$ref": "#/components/schemas/Cidr" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Transit Gateway update attachment cidr/s request message" - }, - "AccountSessionLogEntry": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - }, - "userAgent": { - "type": "string" - }, - "ipAddress": { - "type": "string" - }, - "userRole": { - "type": "string" - }, - "type": { - "type": "string" - }, - "action": { - "type": "string" - } - }, - "description": "Account session log entry" - }, - "AccountUser": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "role": { - "type": "string" - }, - "signUp": { - "type": "string" - }, - "userType": { - "type": "string" - }, - "hasApiKey": { - "type": "boolean" - }, - "options": { - "$ref": "#/components/schemas/AccountUserOptions" - } - }, - "description": "RedisLabs User information", - "example": { - "id": 60192, - "name": "Clifford O'neill", - "email": "clifford.mail@gmail.com", - "role": "Viewer", - "userType": "Local", - "hasApiKey": false, - "options": { - "billing": false, - "emailAlerts": false, - "operationalEmails": false, - "mfaEnabled": false - } - } - }, - "ResourceTag": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "description": "List of resource tags to apply to the subscription. This will replace all existing tags." - }, - "CustomerManagedKeyAccessDetails": { - "type": "object", - "properties": { - "redisServiceAccount": { - "type": "string" - }, - "googlePredefinedRoles": { - "type": "array", - "items": { - "type": "string" - } - }, - "googleCustomPermissions": { - "type": "array", - "items": { - "type": "string" - } - }, - "redisIamRole": { - "type": "string" - }, - "requiredKeyPolicyStatements": { - "type": "object" - }, - "deletionGracePeriodOptions": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "description": "Configuration regarding customer managed persistent storage encryption" - }, - "SubscriptionMaintenanceWindowsSpec": { - "required": [ - "mode" - ], - "type": "object", - "properties": { - "mode": { - "type": "string", - "description": "Maintenance window mode: either 'manual' or 'automatic'. Must provide 'windows' if manual.", - "example": "manual", - "enum": [ - "manual", - "automatic" - ] - }, - "windows": { - "type": "array", - "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided.", - "items": { - "$ref": "#/components/schemas/MaintenanceWindowSpec" - } - } - } - }, - "ACLUser": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "status": { - "type": "string" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis ACL user information", - "example": { - "id": 1, - "name": "abc", - "role": "role-name", - "status": "active" - } - }, - "DatabaseCertificate": { - "type": "object", - "properties": { - "publicCertificatePEMString": { - "type": "string", - "description": "An X.509 PEM (base64) encoded server certificate with new line characters replaced by '\\n'." - } - }, - "description": "Database certificate" - }, - "AccountSessionLogEntries": { - "type": "object", - "properties": { - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AccountSessionLogEntry" - } - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - } - }, - "Tag": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Tag key", - "example": "environment" - }, - "value": { - "type": "string", - "description": "Tag value", - "example": "production" - } - }, - "description": "Tag filter for cost report" - }, - "AccountSubscriptions": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "RedisLabs list of subscriptions in current account", - "example": { - "accountId": 1001, - "subscriptions": [ - { - "id": 1206, - "name": "subscription name", - "status": "active", - "deploymentType": "single-region", - "paymentMethodId": 123, - "publicEndpointAccess": true, - "memoryStorage": "ram", - "numberOfDatabases": 6, - "paymentMethodType": "credit-card", - "storageEncryption": false, - "subscriptionPricing": [ - { - "type": "Shards", - "typeDetails": "high-throughput", - "quantity": 7, - "quantityMeasurement": "shards", - "pricePerUnit": 0.124, - "priceCurrency": "USD", - "pricePeriod": "hour" - } - ], - "cloudDetails": [ - { - "provider": "AWS", - "awsAccountId": "550680565604", - "cloudAccountId": 1666, - "totalSizeInGb": 0.0272, - "regions": [ - { - "region": "us-east-1", - "networking": [ - { - "deploymentCIDR": "10.0.0.0/24", - "subnetId": "subnet-009ce004ed90da8a6" - } - ], - "preferredAvailabilityZones": [ - "us-east-1a" - ], - "multipleAvailabilityZones": false - } - ], - "links": [] - } - ], - "links": [] - } - ] - } - }, - "CrdbRegionSpec": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Database name." - }, - "localThroughputMeasurement": { - "$ref": "#/components/schemas/LocalThroughput" - } - }, - "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database" - }, - "VpcPeeringCreateAwsRequest": { - "required": [ - "awsAccountId", - "region", - "vpcId" - ], - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "region": { - "type": "string", - "description": "Deployment region as defined by the cloud provider.", - "example": "us-east-1" - }, - "awsAccountId": { - "type": "string", - "description": "AWS Account ID.", - "example": "" - }, - "vpcId": { - "type": "string", - "description": "VPC ID.", - "example": "" - }, - "vpcCidr": { - "type": "string", - "description": "Optional. VPC CIDR.", - "example": "<10.10.10.0/24>" - }, - "vpcCidrs": { - "type": "array", - "description": "Optional. List of VPC CIDRs.", - "example": [ - "<10.10.10.0/24>", - "<10.10.20.0/24>" - ], - "items": { - "type": "string", - "description": "Optional. List of VPC CIDRs.", - "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "VPC peering creation request message" - }, - "FixedDatabaseUpdateRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated database name.", - "example": "Redis-Essentials-database-example" - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", - "example": true - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", - "example": true - }, - "enableDatabaseClustering": { - "type": "boolean", - "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances.", - "example": false - }, - "numberOfShards": { - "type": "integer", - "description": "(Pay-as-you-go subscriptions only) Optional. Changes the number of master shards.", - "format": "int32", - "example": 2 - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Turns database replication on or off.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." - }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups. If set to an empty string, the backup path will be removed.", - "example": "s3://" - }, - "sourceIps": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" - } - }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." - } - }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "regexRules": { - "type": "array", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", - "items": { - "type": "string", - "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." - } - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." - }, - "password": { - "type": "string", - "description": "Optional. Changes the password used to access the database with the 'default' user." - }, - "enableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database." - }, - "alerts": { - "type": "array", - "description": "Optional. Changes Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials database update request" - }, - "CloudAccountCreateRequest": { - "required": [ - "accessKeyId", - "accessSecretKey", - "consolePassword", - "consoleUsername", - "name", - "signInLoginUrl" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Cloud account display name.", - "example": "My new Cloud Account" - }, - "provider": { - "type": "string", - "description": "Optional. Cloud provider. Default: 'AWS'", - "example": "AWS", - "enum": [ - "AWS", - "GCP" - ] - }, - "accessKeyId": { - "type": "string", - "description": "Cloud provider access key.", - "example": "****" - }, - "accessSecretKey": { - "type": "string", - "description": "Cloud provider secret key.", - "example": "****" - }, - "consoleUsername": { - "type": "string", - "description": "Cloud provider management console username.", - "example": "me@mycompany.com" - }, - "consolePassword": { - "type": "string", - "description": "Cloud provider management console password.", - "example": "****" - }, - "signInLoginUrl": { - "type": "string", - "description": "Cloud provider management console login URL.", - "example": "https://.signin.aws.amazon.com/console" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Cloud Account definition" - }, - "ModulesData": { - "type": "object", - "properties": { - "modules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Module" - } - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "example": { - "modules": [ - { - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, - { - "name": "RedisJSON", - "capabilityName": "JSON", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, - { - "name": "RediSearch", - "capabilityName": "Search and query", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [ - { - "name": "number-of-documents", - "description": "Expected number of documents the database module will be indexing", - "type": "integer", - "defaultValue": 1000000, - "required": false - } - ] - }, - { - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "description": "Time-Series data structure for redis", - "parameters": [] - } - ] - } - }, - "ActiveActiveRegionDeleteRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regions": { - "type": "array", - "description": "The names of the regions to delete.", - "items": { - "$ref": "#/components/schemas/ActiveActiveRegionToDelete" - } - }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, deleting any resources required by the plan. When 'true': creates a read-only deployment plan and does not delete or modify any resources. Default: 'false'", - "example": false - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Active active region deletion request message" - }, - "AccountACLUsers": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis list of ACL users in current account", - "example": { - "accountId": 1001, - "users": [ - { - "id": 1, - "name": "user", - "role": "role-name", - "status": "active", - "links": [] - } - ] - } - }, - "AclRoleRedisRuleSpec": { - "required": [ - "databases", - "ruleName" - ], - "type": "object", - "properties": { - "ruleName": { - "type": "string", - "description": "The name of a Redis ACL rule to assign to the role. Use 'GET /acl/redisRules' to get a list of available rules for your account.", - "example": "Read-Only" - }, - "databases": { - "type": "array", - "description": "A list of databases where the specified rule applies for this role.", - "items": { - "$ref": "#/components/schemas/AclRoleDatabaseSpec" - } - } - }, - "description": "Optional. Changes the Redis ACL rules to assign to this database access role." - }, - "ActiveActiveSubscriptionRegions": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "List of active-active subscription regions", - "example": { - "subscriptionId": 126, - "regions": [ - { - "regionId": 1, - "region": "us-east-1", - "deploymentCidr": "10.0.0.0/24", - "vpcId": "vpc-0bf863584c46321e4", - "databases": [ - { - "databaseId": 862, - "databaseName": "Bdb", - "readOperationsPerSecond": 500, - "writeOperationsPerSecond": 500, - "respVersion": "resp3", - "links": [] - }, - { - "databaseId": 864, - "databaseName": "Bdb2", - "readOperationsPerSecond": 1000, - "writeOperationsPerSecond": 1000, - "respVersion": "resp3", - "links": [] - } - ], - "links": [] - }, - { - "regionId": 4, - "region": "eu-west-1", - "deploymentCidr": "10.0.1.0/24", - "vpcId": "vpc-0108fb753063ecf8b", - "databases": [ - { - "databaseId": 862, - "databaseName": "Bdb", - "readOperationsPerSecond": 500, - "writeOperationsPerSecond": 500, - "respVersion": "resp3", - "links": [] - }, - { - "databaseId": 864, - "databaseName": "Bdb2", - "readOperationsPerSecond": 1000, - "writeOperationsPerSecond": 1000, - "respVersion": "resp3", - "links": [] - } - ], - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/133876/regions", - "type": "GET" - } - ] - } - }, - "AccountFixedSubscriptionDatabases": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "RedisLabs Account Subscription Databases information", - "example": { - "accountId": 40131, - "subscription": { - "subscriptionId": 154714, - "numberOfDatabases": 2, - "databases": [ - { - "databaseId": 51324587, - "name": "bdb", - "protocol": "stack", - "provider": "AWS", - "region": "us-east-1", - "redisVersion": "7.4", - "status": "draft", - "planMemoryLimit": 250, - "respVersion": "resp2", - "memoryLimitMeasurementUnit": "MB", - "memoryUsedInMb": 1, - "memoryStorage": "ram", - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "noeviction", - "clustering": { - "enabled": false, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "defaultUserEnabled": true, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18534, - "name": "searchlight", - "capabilityName": "Search and query", - "version": "2.2.6", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - }, - { - "id": 18535, - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "version": "2.2.12", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, - { - "id": 18537, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.6.8", - "description": "Time-Series data structure for Redis", - "parameters": [] - } - ], - "alerts": [ - { - "name": "connections-limit", - "value": 80, - "defaultValue": 80 - } - ], - "backup": { - "remoteBackupEnabled": false - }, - "links": [] - }, - { - "databaseId": 51324586, - "name": "firstDB", - "protocol": "stack", - "provider": "AWS", - "region": "us-east-1", - "status": "draft", - "planMemoryLimit": 250, - "memoryLimitMeasurementUnit": "MB", - "memoryUsedInMb": 1, - "memoryStorage": "ram", - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "noeviction", - "clustering": { - "enabled": false, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "defaultUserEnabled": true, - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18529, - "name": "searchlight", - "capabilityName": "Search and query", - "version": "2.2.6", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - }, - { - "id": 18530, - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "version": "2.2.12", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, - { - "id": 18531, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, - { - "id": 18532, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.6.8", - "description": "Time-Series data structure for Redis", - "parameters": [] - } - ], - "alerts": [ - { - "name": "connections-limit", - "value": 80, - "defaultValue": 80 - } - ], - "backup": { - "remoteBackupEnabled": false - }, - "links": [] - } - ], - "links": [] - }, - "links": [] - } - }, - "DatabaseAlertSpec": { - "required": [ - "name", - "value" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Alert type. Available options depend on Plan type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", - "example": "dataset-size", - "enum": [ - "dataset-size", - "datasets-size", - "throughput-higher-than", - "throughput-lower-than", - "latency", - "syncsource-error", - "syncsource-lag", - "connections-limit" - ] - }, - "value": { - "type": "integer", - "description": "Value over which an alert will be sent. Default values and range depend on the alert type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", - "format": "int32", - "example": 80 - } - }, - "description": "Optional. Changes Redis database alert details." - }, - "LocalThroughput": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Specify one of the selected cloud provider regions for the subscription." - }, - "writeOperationsPerSecond": { - "type": "integer", - "description": "Write operations for this region per second. Default: 1000 ops/sec", - "format": "int64", - "example": 1000 - }, - "readOperationsPerSecond": { - "type": "integer", - "description": "Read operations for this region per second. Default: 1000 ops/sec", - "format": "int64", - "example": 1000 - } - }, - "description": "Optional. Expected read and write throughput for this region." - }, - "PscEndpointUpdateRequest": { - "required": [ - "endpointId", - "pscServiceId", - "subscriptionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "pscServiceId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "endpointId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" - }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" - }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" - }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" - }, - "action": { - "type": "string", - "description": "Action to perform on the endpoint.", - "enum": [ - "accept", - "reject" - ] - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Private Service Connect endpoint update request" - }, - "DatabaseSlowLogEntries": { - "type": "object", - "properties": { - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DatabaseSlowLogEntry" - } - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - } - }, - "DatabaseSlowLogEntry": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "startTime": { - "type": "string", - "format": "date-time" - }, - "duration": { - "type": "integer", - "format": "int32" - }, - "arguments": { - "type": "string" - } - }, - "description": "Database slowlog entry" - }, - "ActiveActivePscEndpointUpdateRequest": { - "required": [ - "endpointId", - "pscServiceId", - "regionId", - "subscriptionId" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "pscServiceId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "endpointId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "regionId": { - "type": "integer", - "description": "Deployment region id as defined by cloud provider", - "format": "int32", - "readOnly": true, - "example": 27 - }, - "gcpProjectId": { - "type": "string", - "description": "Google Cloud project ID.", - "example": "my-gcp-project" - }, - "gcpVpcName": { - "type": "string", - "description": "Name of the Google Cloud VPC that hosts your application.", - "example": "my-vpc" - }, - "gcpVpcSubnetName": { - "type": "string", - "description": "Name of your VPC's subnet of IP address ranges.", - "example": "my-vpc-subnet" - }, - "endpointConnectionName": { - "type": "string", - "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", - "example": "my-endpoint-connection" - }, - "action": { - "type": "string", - "description": "Action to perform on the endpoint.", - "enum": [ - "accept", - "reject" - ] - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Private Service Connect endpoint update request" - }, - "SubscriptionMaintenanceWindows": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "manual", - "automatic" - ] - }, - "timeZone": { - "type": "string" - }, - "windows": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MaintenanceWindow" - } - }, - "skipStatus": { - "$ref": "#/components/schemas/MaintenanceWindowSkipStatus" - } - } - }, - "FixedSubscriptionsPlan": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "size": { - "type": "number", - "format": "double" - }, - "datasetSize": { - "type": "number", - "format": "double" - }, - "sizeMeasurementUnit": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "region": { - "type": "string" - }, - "regionId": { - "type": "integer", - "format": "int32" - }, - "price": { - "type": "integer", - "format": "int32" - }, - "priceCurrency": { - "type": "string" - }, - "pricePeriod": { - "type": "string" - }, - "maximumDatabases": { - "type": "integer", - "format": "int32" - }, - "maximumThroughput": { - "type": "integer", - "format": "int32" - }, - "maximumBandwidthGB": { - "type": "integer", - "format": "int32" - }, - "availability": { - "type": "string" - }, - "connections": { - "type": "string" - }, - "cidrAllowRules": { - "type": "integer", - "format": "int32" - }, - "supportDataPersistence": { - "type": "boolean" - }, - "redisFlex": { - "type": "boolean" - }, - "supportInstantAndDailyBackups": { - "type": "boolean" - }, - "supportReplication": { - "type": "boolean" - }, - "supportClustering": { - "type": "boolean" - }, - "supportSsl": { - "type": "boolean" - }, - "customerSupport": { - "type": "string" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis Essentials subscription plan information", - "example": { - "id": 98273, - "name": "Cache 5GB", - "size": 5, - "sizeMeasurementUnit": "GB", - "provider": "AWS", - "region": "eu-west-1", - "regionId": 4, - "price": 77, - "priceCurrency": "USD", - "pricePeriod": "Month", - "maximumDatabases": 1, - "availability": "No replication", - "connections": "unlimited", - "cidrAllowRules": 4, - "supportDataPersistence": true, - "supportInstantAndDailyBackups": true, - "supportReplication": false, - "supportClustering": true, - "supportSsl": false, - "supportedAlerts": [ - "throughput-higher-than" - ], - "customerSupport": "Standard", - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/plans/16583", - "type": "GET" - } - ] - } - }, - "AccountACLRoles": { - "type": "object", - "properties": { - "accountId": { - "type": "integer", - "format": "int32" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "description": "Redis list of ACL roles in current account", - "example": { - "accountId": 1001, - "roles": [ - { - "id": 395, - "name": "role-name", - "redisRules": [ - { - "ruleId": 7, - "ruleName": "Full-Access", - "databases": [ - { - "subscriptionId": 126, - "databaseId": 1, - "databaseName": "DB-RCP-2-81-7" - } - ] - } - ], - "users": [], - "status": "error" - } - ] - } - }, - "tag": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Database tag key.", - "example": "environment" - }, - "value": { - "type": "string", - "description": "Database tag value.", - "example": "production" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Database tag" - }, - "SubscriptionSpec": { - "required": [ - "regions" - ], - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "Optional. Cloud provider. Default: 'AWS'", - "example": "AWS", - "enum": [ - "AWS", - "GCP" - ] - }, - "cloudAccountId": { - "type": "integer", - "description": "Optional. Cloud account identifier. Default: Redis internal cloud account (Cloud Account ID = 1). Use GET /cloud-accounts to list all available cloud accounts. Note: A subscription on Google Cloud can be created only with Redis internal cloud account.", - "format": "int32", - "example": 1 - }, - "regions": { - "type": "array", - "description": "The cloud provider region or list of regions (Active-Active only) and networking details.", - "items": { - "$ref": "#/components/schemas/SubscriptionRegionSpec" - } - }, - "resourceTags": { - "type": "array", - "description": "Optional. A list of resource tags to apply to the subscription. (max. 30 tags).", - "items": { - "$ref": "#/components/schemas/ResourceTag" - } - } - }, - "description": "Cloud provider, region, and networking details." - }, - "FixedDatabaseBackupRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "adhocBackupPath": { - "type": "string", - "description": "Optional. Manually backs up data to this location, instead of the set 'periodicBackupPath' location.", - "example": "s3://" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials database backup request message" - }, - "DatabaseVersionUpgradeStatus": { - "type": "object", - "properties": { - "databaseId": { - "type": "integer", - "format": "int32" - }, - "targetRedisVersion": { - "type": "string" - }, - "progress": { - "type": "number", - "format": "double" - }, - "upgradeStatus": { - "type": "string", - "enum": [ - "in-progress", - "in-progress-recovery-pending", - "done", - "failed" - ] - } - } - }, - "DatabaseModuleSpec": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Redis advanced capability name. Use GET /database-modules for a list of available capabilities." - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "object", - "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", - "example": {} - }, - "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", - "example": {} - } - }, - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default." - }, - "FixedSubscriptionCreateRequest": { - "required": [ - "name", - "planId" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "New Essentials subscription name.", - "example": "My new subscription" - }, - "planId": { - "type": "integer", - "description": "An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans to get a list of available options.", - "format": "int32" - }, - "paymentMethod": { - "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", - "enum": [ - "credit-card", - "marketplace" - ] - }, - "paymentMethodId": { - "type": "integer", - "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", - "format": "int32" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Essentials subscription create request" - }, - "SubscriptionRegionNetworkingSpec": { - "type": "object", - "properties": { - "deploymentCIDR": { - "type": "string", - "description": "Optional. Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses. Default for single-region subscriptions: If using Redis internal cloud account, 192.168.0.0/24", - "example": "10.0.0.0/24" - }, - "vpcId": { - "type": "string", - "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format (for example: 'vpc-0125be68a4625884ad') and must exist within the hosting account.", - "example": "" - }, - "subnetIds": { - "type": "array", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "items": { - "type": "string", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account." - } - }, - "securityGroupId": { - "type": "string", - "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account." - } - }, - "description": "Optional. Cloud networking details, per region. Required if creating an Active-Active subscription." - }, - "SubscriptionResourceTagsUpdateRequest": { - "required": [ - "resourceTags" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "resourceTags": { - "type": "array", - "description": "List of resource tags to apply to the subscription. This will replace all existing tags.", - "items": { - "$ref": "#/components/schemas/ResourceTag" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Resource tags update request" - }, - "DatabaseTagsUpdateRequest": { - "required": [ - "tags" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "tags": { - "type": "array", - "description": "List of database tags.", - "items": { - "$ref": "#/components/schemas/tag" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Database tags update request message" - }, - "PrivateLinkConnectionsDisassociateRequest": { - "required": [ - "connections" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "connections": { - "type": "array", - "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", - "items": { - "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" - } - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Private Link connections disassociate request" - }, - "AccountUsers": { - "type": "object", - "properties": { - "account": { - "type": "integer", - "format": "int32" - } - }, - "description": "RedisLabs list of users in current account", - "example": { - "account": 1001, - "users": [ - { - "id": 60192, - "name": "Clifford O'neill", - "email": "clifford.mail@gmail.com", - "role": "Viewer", - "userType": "Local", - "hasApiKey": false, - "options": { - "billing": false, - "emailAlerts": false, - "operationalEmails": false, - "mfaEnabled": false - } - } - ] - } - }, - "FixedDatabaseUpgradeRedisVersionRequest": { - "required": [ - "targetRedisVersion" - ], - "type": "object", - "properties": { - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "targetRedisVersion": { - "type": "string", - "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", - "example": "7.4" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Upgrades the specified Essentials database to a later Redis version." - }, - "CrdbUpdatePropertiesRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "name": { - "type": "string", - "description": "Optional. Updated database name. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-database-example" - }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", - "example": false - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'" - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", - "example": false - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." - }, - "globalDataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in all regions that don't set local 'dataPersistence'.", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "globalPassword": { - "type": "string", - "description": "Optional. Changes the password used to access the database in all regions that don't set a local 'password'." - }, - "globalEnableDefaultUser": { - "type": "boolean", - "description": "Optional. When 'true', allows connecting to the database with the 'default' user in all regions that don't set local 'enableDefaultUser'. When 'false', only defined access control users can connect to the database." - }, - "globalSourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']" - } - }, - "globalAlerts": { - "type": "array", - "description": "Optional. Redis database alert settings in all regions that don't set local 'alerts'.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } - }, - "regions": { - "type": "array", - "description": "Optional. A list of regions and local settings to update.", - "items": { - "$ref": "#/components/schemas/LocalRegionProperties" - } - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy.", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Active-Active database update local properties request message" - }, - "AclRedisRuleCreateRequest": { - "required": [ - "name", - "redisRule" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Redis ACL rule name.", - "example": "ACL-rule-example" - }, - "redisRule": { - "type": "string", - "description": "Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", - "example": "+set allkeys allchannels" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "ACL redis rule create request" - }, - "Cidr": { - "type": "object", - "properties": { - "cidrAddress": { - "type": "string" - } - }, - "description": "Optional. List of transit gateway attachment CIDRs.", - "example": [ - "10.10.10.0/24", - "10.10.20.0/24" - ] - }, - "SubscriptionRegionSpec": { - "required": [ - "region" - ], - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Deployment region as defined by the cloud provider.", - "example": "us-east-1" - }, - "multipleAvailabilityZones": { - "type": "boolean", - "description": "Optional. Support deployment on multiple availability zones within the selected region. Default for Active-Active: matches the region's multi-AZ capability (true on multi-AZ regions, false on non-multi-AZ regions). Default for Pro / single-region: `false`.", - "example": false - }, - "preferredAvailabilityZones": { - "type": "array", - "description": "Optional. List the zone ID(s) for your preferred availability zone(s) for the cloud provider and region. If ‘multipleAvailabilityZones’ is set to 'true', you must list three availability zones. Otherwise, list one availability zone.", - "items": { - "type": "string", - "description": "Optional. List the zone ID(s) for your preferred availability zone(s) for the cloud provider and region. If ‘multipleAvailabilityZones’ is set to 'true', you must list three availability zones. Otherwise, list one availability zone." - } - }, - "networking": { - "$ref": "#/components/schemas/SubscriptionRegionNetworkingSpec" - } - }, - "description": "The cloud provider region or list of regions (Active-Active only) and networking details." - }, - "VpcPeeringCreateGcpRequest": { - "required": [ - "vpcNetworkName", - "vpcProjectUid" - ], - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "vpcProjectUid": { - "type": "string", - "description": "VPC project ID.", - "example": "" - }, - "vpcNetworkName": { - "type": "string", - "description": "VPC network name.", - "example": "" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Vpc peering creation request message" - }, - "DatabaseCreateRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", - "example": false - }, - "name": { - "type": "string", - "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", - "example": "Redis-database-example" - }, - "protocol": { - "type": "string", - "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", - "enum": [ - "redis", - "memcached" - ] - }, - "port": { - "type": "integer", - "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", - "format": "int32", - "example": 10000 - }, - "memoryLimitInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", - "format": "double", - "example": 1, - "deprecated": true - }, - "datasetSizeInGb": { - "minimum": 0.1, - "exclusiveMinimum": false, - "type": "number", - "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", - "format": "double", - "example": 1 - }, - "redisVersion": { - "type": "string", - "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", - "example": "7.2" - }, - "autoMinorVersionUpgrade": { - "type": "boolean", - "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." - }, - "respVersion": { - "type": "string", - "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", - "example": "resp3", - "enum": [ - "resp2", - "resp3" - ] - }, - "supportOSSClusterApi": { - "type": "boolean", - "description": "Optional. Support [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", - "example": false - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean", - "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", - "example": false - }, - "dataPersistence": { - "type": "string", - "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "dataEvictionPolicy": { - "type": "string", - "description": "Optional. Data eviction policy. Default: 'volatile-lru'", - "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" - ] - }, - "replication": { - "type": "boolean", - "description": "Optional. Sets database replication. Default: 'true'" - }, - "replicaOf": { - "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", - "deprecated": true, - "items": { - "type": "string", - "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." - } - }, - "replica": { - "$ref": "#/components/schemas/ReplicaOfSpec" - }, - "throughputMeasurement": { - "$ref": "#/components/schemas/DatabaseThroughputSpec" - }, - "localThroughputMeasurement": { - "type": "array", - "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", - "items": { - "$ref": "#/components/schemas/LocalThroughput" - } - }, - "averageItemSizeInBytes": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", - "format": "int64", - "deprecated": true - }, - "ramPercentage": { - "type": "integer", - "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", - "format": "int32", - "example": 20 - }, - "periodicBackupPath": { - "type": "string", - "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time.", - "example": "s3://", - "deprecated": true - }, - "remoteBackup": { - "$ref": "#/components/schemas/DatabaseBackupConfig" - }, - "sourceIp": { - "type": "array", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", - "items": { - "type": "string", - "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" - } - }, - "clientSslCertificate": { - "type": "string", - "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", - "deprecated": true - }, - "clientTlsCertificates": { - "type": "array", - "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", - "items": { - "$ref": "#/components/schemas/DatabaseCertificateSpec" - } - }, - "enableTls": { - "type": "boolean", - "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" - }, - "password": { - "type": "string", - "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated. Can only be set if 'protocol' is 'redis'." - }, - "saslUsername": { - "type": "string", - "description": "Optional. Memcached (SASL) Username to access the database. If not set, the username will be set to a 'mc-' prefix followed by a random 5 character long alphanumeric. Can only be set if 'protocol' is 'memcached'." - }, - "saslPassword": { - "type": "string", - "description": "Optional. Memcached (SASL) Password to access the database. If not set, a random 32 character long alphanumeric password will be automatically generated. Can only be set if 'protocol' is 'memcached'." - }, - "alerts": { - "type": "array", - "description": "Optional. Redis database alert details.", - "items": { - "$ref": "#/components/schemas/DatabaseAlertSpec" - } - }, - "modules": { - "type": "array", - "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", - "items": { - "$ref": "#/components/schemas/DatabaseModuleSpec" - } - }, - "shardingType": { - "type": "string", - "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", - "enum": [ - "default-regex-rules", - "custom-regex-rules", - "redis-oss-hashing" - ] - }, - "commandType": { - "type": "string", - "readOnly": true - }, - "queryPerformanceFactor": { - "type": "string", - "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", - "example": "2x" - } - }, - "description": "Database definition" - }, - "Region": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string", - "enum": [ - "AWS", - "GCP" - ] - } - }, - "description": "RedisLabs region information" - }, - "TasksStateUpdate": { - "type": "object", - "properties": { - "tasks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TaskStateUpdate" - } - } - } - }, - "AclUserUpdateRequest": { - "type": "object", - "properties": { - "userId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "role": { - "type": "string", - "description": "Optional. Changes the ACL role assigned to the user. Use GET '/acl/roles' to get a list of database access roles.", - "example": "ACL-role-example" - }, - "password": { - "type": "string", - "description": "Optional. Changes the user's database password.", - "example": "ab123AB$%^" - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "ACL user update request" - }, - "PrivateLinkConnectionDisassociate": { - "required": [ - "associationId", - "principalId", - "type" - ], - "type": "object", - "properties": { - "associationId": { - "type": "string", - "description": "Resource share association ID", - "example": "rsa-12345678" - }, - "connectionId": { - "type": "string", - "description": "VPC endpoint connection ID", - "example": "vpce-con-12345678" - }, - "type": { - "type": "string", - "description": "Type of the connection", - "example": "vpc_endpoint" - }, - "principalId": { - "type": "string", - "description": "Principal ID that owns the connection, e.g. AWS account ID", - "example": "123456789012" - } - }, - "description": "Private link connection information for disassociation request" - }, - "ProcessorResponse": { - "type": "object", - "properties": { - "resourceId": { - "type": "integer", - "format": "int32" - }, - "additionalResourceId": { - "type": "integer", - "format": "int32" - }, - "resource": { - "type": "object" - }, - "error": { - "type": "string", - "enum": [ - "UNAUTHORIZED", - "ACCOUNT_POC_INACTIVE_PENDING", - "CLOUD_ACCOUNT_NOT_ACTIVE", - "CLOUD_ACCOUNT_NOT_FOUND", - "CLOUD_ACCOUNT_USED", - "CLOUD_ACCOUNT_INVALID_CREDS", - "CLOUD_ACCOUNT_NAME_EXISTS", - "CLOUD_ACCOUNT_ACCESS_KEY_EXISTS", - "CLOUD_ACCOUNT_PERMISSION_FAILED", - "CLOUD_ACCOUNT_ALLOCATION_FAILURE", - "NOT_KNOWN_CLOUD_PROVIDER", - "MULTIPLE_CLOUD_PROVIDERS_NOT_SUPPORTED", - "SUBSCRIPTION_NOT_ACTIVE", - "SUBSCRIPTION_CONTAINS_NON_ACTIVE_DATABASE", - "SUBSCRIPTION_NOT_FOUND", - "SUBSCRIPTION_IN_USE", - "SUBSCRIPTION_CA_PROVIDER_MISMATCH", - "SUBSCRIPTION_NETWORKING_MISSING", - "NETWORKING_CIDR_MISSING", - "SUBSCRIPTION_INVALID_CIDR", - "NETWORKING_SECURITY_GROUP_MISSING", - "NETWORKING_SUBNET_IDS_MISSING", - "NETWORKING_VPC_ID_MISSING", - "NETWORKING_CIDR_IS_NOT_SUPPORTED", - "NETWORKING_VPC_WITH_SUBNETS_AND_SECURITY_GROUP_IS_NOT_SUPPORTED", - "NETWORKING_VPC_WITH_SUBNETS_AND_SECURITY_GROUP_IS_NOT_SUPPORTED_FOR_INTERNAL_CLOUD_ACCOUNT", - "INVALID_NUMBER_OF_SUBNET_IDS", - "SUBSCRIPTION_PI_NOT_FOUND", - "SUBSCRIPTION_INVALID_REGION_NAME", - "SUBSCRIPTION_INVALID_REGION_ID", - "SUBSCRIPTION_BAD_PREFERRED_AZ_SIZE", - "SUBSCRIPTION_REGION_DOES_NOT_SUPPORT_MULTI_AZ", - "SUBSCRIPTION_AA_NON_MAZ_REGION_NOT_SUPPORTED", - "SUBSCRIPTION_PREFERRED_AZ_INVALID_VALUE", - "SUBSCRIPTION_PREFERRED_AZ_MUST_BE_DEFINED_ONCE", - "SUBSCRIPTION_PREFERRED_AZ_IS_DISABLED", - "SUBSCRIPTION_MUST_HAVE_AT_LEAST_ONE_DATABASE", - "SUBSCRIPTION_REDIS_VERSION_INVALID_VALUE", - "SUBSCRIPTION_REDIS_VERSION_CONFLICT", - "ACTIVE_ACTIVE_SUBSCRIPTION_PREVIEW_REDIS_VERSION_IS_NOT_SUPPORTED", - "SUBSCRIPTION_GCP_ALLOW_ONLY_INTERNAL", - "CLUSTER_UNDER_MAINTENANCE", - "ACTIVE_ACTIVE_SUBSCRIPTION_IS_NOT_SUPPORTED", - "RESOURCE_TAGS_EXCEEDS_MAXIMUM_COUNT", - "RESOURCE_TAG_KEY_EXCEEDS_MAXIMUM_LENGTH", - "RESOURCE_TAG_VALUE_EXCEEDS_MAXIMUM_LENGTH", - "RESOURCE_TAGS_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", - "RESOURCE_TAGS_NOT_ALLOWED", - "RESOURCE_TAGS_NAME_NOT_ALLOWED", - "RESOURCE_TAGS_EMPTY_KEY", - "RESOURCE_TAGS_DUPLICATE_KEY", - "RESOURCE_TAGS_MISSING_VALUE", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_IS_NOT_SUPPORTED", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_USAGE_PERMISSIONS", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_GET_KEY_PERMISSIONS", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_GET_IAM_POLICY_PERMISSIONS", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DISABLED_KEY", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_KEY_NAME", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_WRONG_REGION", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_NOT_ALLOWED_WITH_CLOUD_PROVIDER_MANAGED_KEY", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REQUIRED_FOR_EXTERNAL_CLOUD_ACCOUNT", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DELETION_GRACE_PERIOD_REQUIRED", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_NUMBER_OF_KEYS", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REGION_NOT_REQUIRED", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REGION_REQUIRED", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_KEYS", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_REGION", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DUPLICATE_REGIONS", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_FORMAT", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_UPDATE_IS_NOT_SUPPORTED", - "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_SUBSCRIPTION_INVALID_STATUS", - "ACTIVE_ACTIVE_CREATE_A_REGION_CUSTOMER_MANAGED_KEY_RESOURCE_NAME_SUBSCRIPTION_IS_NOT_CUSTOMER_MANAGED", - "ACTIVE_ACTIVE_CREATE_A_REGION_CUSTOMER_MANAGED_KEY_RESOURCE_NAME_IS_NOT_SET", - "PLANNED_SUBSCRIPTION_INVALID_PLAN_ID", - "PLANNER_TIMEOUT", - "PLANNER_FAILURE", - "PLANNER_NOT_ENOUGH_AZS", - "PLANNER_INVALID_INSTANCE_TYPE_PER_AZ", - "PLANNER_MODULE_PLAN_CLUSTERING_ERROR", - "PLANNER_MODULE_PLAN_RESHARDING_ERROR", - "PLANNER_INVALID_PLAN", - "PLANNER_INVALID_SIZE", - "PLANNER_INVALID_NUMBER", - "PLANNER_INVALID_THROUGHPUT", - "PROVISION_FAILURE", - "DATABASE_NOT_ACTIVE", - "DATABASE_NOT_FOUND", - "DATABASE_SUBSCRIPTION_MISMATCH", - "DATABASE_CANT_EDIT_THROUGHPUT_BY", - "DATABASE_INVALID_SHARDS_COUNT", - "DATABASE_CONTAIN_MEMCACHED_USERNAME", - "DATABASE_CONTAIN_MEMCACHED_PASSWORD", - "DATABASE_SUBSCRIPTION_IN_PENDING_STATUS", - "DATABASE_THROUGHPUT_TOO_BIG", - "DATABASE_INVALID_THROUGHPUT_INCREMENT", - "DATABASE_MODULE_NOT_SUPPORTING_SHARD_THROUGHPUT_OPTION", - "DATABASE_MODULE_NOT_SUPPORTED", - "DATABASE_QUERY_PERFORMANCE_FACTOR_INVALID_VALUE", - "DATABASE_QUERY_PERFORMANCE_FACTOR_SEARCH_IS_REQUIRED", - "DATABASE_QUERY_PERFORMANCE_FACTOR_IS_NOT_SUPPORTED", - "DATABASE_QUERY_PERFORMANCE_FACTOR_IS_NOT_SUPPORTED_ON_ACTIVE_ACTIVE", - "REDISEARCH_SUPPORTS_ONLY_OPERATIONS_PER_SECOND_AS_THROUGHPUT_MEASUREMENT", - "REDIS_GRAPH_SUPPORTS_ONLY_OPS_PER_SECOND_AS_THROUGHPUT_MEASUREMENT", - "DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", - "DATABASE_RESP_VERSION_IS_NOT_SUPPORTED_ON_CREATE_SUBSCRIPTION", - "DATABASE_ROF_NOT_SUPPORTED", - "DATABASE_REDISGRAPH_OVERSIZED", - "DATABASE_BACKUP_NOT_SUPPORTED", - "DATABASE_EVICTION_NOT_SUPPORTED", - "DATABASE_AOF_NOT_SUPPORTED", - "DATABASE_REPLICA_OF_NOT_SUPPORTED", - "DATABASE_SNAPSHOT_NOT_SUPPORTED", - "DATABASE_CLUSTERING_NOT_SUPPORTED", - "DATABASE_INVALID_THREAD_NUMBER", - "DATABASE_HASH_NOT_SUPPORTED", - "DATABASE_RESHARD_NOT_SUPPORTED", - "DATABASE_FEATURE_NOT_SUPPORTED", - "DATABASE_NAME_EXISTS", - "DATABASE_NAME_DUPLICATE", - "DATABASE_INVALID_NAME", - "DATABASE_NAME_TOO_LONG", - "DATABASE_SIZE_TOO_SMALL", - "DATABASE_SIZE_TOO_BIG", - "DATABASE_SIZE_LIMIT_NOT_DEFINED", - "DATABASE_SIZE_LIMIT_INVALID_TOO_MANY_MEMORY_SPECIFICATIONS", - "DATABASE_PASSWORD_IS_BLANK", - "DATABASE_PASSWORD_IS_TOO_LONG", - "DATABASE_REDIS_SEARCH_MODULE_VALUE_IS_NOT_INTEGER", - "DATABASE_REDIS_SEARCH_MODULE_VALUE_NOT_IN_RANGE", - "DATABASE_MODULE_MUST_BE_DEFINED_ONCE", - "DATABASE_MEMCACHED_CONTAINS_MODULES", - "DATABASE_MEMCACHED_NOT_SUPPORT_OSS_CLUSTER_API", - "REDIS_ON_FLASH_DATABASE_MEMCACHED_PROTOCOL_IS_NOT_ALLOWED", - "DATABASE_MEMCACHED_CONTAINS_REDIS_PASSWORD", - "DATABASE_MEMCACHED_CONTAINS_REDIS_DEFAULT_USER", - "DATABASE_MEMCACHED_SASL_USERNAME_IS_BLANK", - "DATABASE_MEMCACHED_SASL_PASSWORD_IS_BLANK", - "DATABASE_MEMCACHED_SASL_PASSWORD_MAX_LENGTH", - "DATABASE_REDIS_FLEX_CONTAINS_MODULES", - "DATABASE_AVERAGE_ITEM_SIZE_NOT_ALLOWED", - "DATABASE_RAM_PERCENTAGE_NOT_ALLOWED", - "DATABASE_RAM_PERCENTAGE_NOT_SUPPORTED", - "DATABASE_RAM_PERCENTAGE_IS_INVALID", - "DATABASE_AVERAGE_ITEM_SIZE_IS_DEPRECATED", - "DATABASE_MEMORY_LIMIT_IS_INVALID_FOR_ROF", - "DATABASE_DATASET_SIZE_IS_INVALID_FOR_ROF", - "DATABASE_SIZE_SMALLER_THAN_USAGE", - "DATABASE_USAGE_EXCEEDS_GLOBAL_LIMIT", - "DATABASE_USAGE_EXCEEDS_LOCAL_LIMIT", - "DATABASE_INVALID_CERT", - "DATABASE_EXPIRED_CERT", - "DATABASE_MISSING_CERT", - "DATABASE_CLIENT_SSL_CERTIFICATE_DEPRECATED", - "DATABASE_CLIENT_SSL_CERTIFICATE_MORE_THAN_1_ACTIVE", - "DATABASE_SIP_OVER_LIMIT", - "DATABASE_INVALID_SIP", - "DATABASE_INVALID_SIP_FREE_PLAN", - "DATABASE_INVALID_ALERTS", - "DATABASE_INVALID_MODULE", - "DATABASE_INVALID_MODULE_PARAMETER", - "DATABASE_INVALID_MODULE_PARAMETER_VALUE", - "DATABASE_EXPLICIT_MODULES_NOT_SUPPORTED_FOR_THIS_REDIS_VERSION", - "DATABASE_INVALID_ALERT_VALUE", - "DATABASE_SHARDING_TYPE_IS_IMMUTABLE", - "DATABASE_SHARDING_TYPE_IS_NOT_SUPPORTED", - "DATABASE_REGEX_RULES_NO_CLUSTERING", - "DATABASE_REGEX_RULES_CHANGES_BLOCKED", - "DATABASE_OSS_CLUSTER_NOT_SUPPORTED", - "DATABASE_EXTERNAL_ENDPOINT_WITHOUT_OSS_CLUSTER", - "CUSTOM_REGEX_RULES_IS_NOT_ALLOWED_WITHOUT_ENABLE_DATABASE_CLUSTERING_IS_TRUE", - "DATABASE_OSS_CLUSTER_CUSTOM_REGEX_NOT_SUPPORTED", - "DATABASE_OSS_CLUSTER_REPLICA_NOT_SUPPORTED", - "DATABASE_REPLICA_OF_PROPERTY_DEPRECATED", - "DATABASE_REPLICA_PER_SOURCE_OVER_LIMIT", - "DATABASE_REPLICA_CYCLE", - "DATABASE_INVALID_REPLICA", - "DATABASE_UNSUPPORTED_REPLICA_OF_REDIS_FLEX", - "DATABASE_REPLICAS_OVER_LIMIT", - "DATABASE_BACKUP_DISABLED", - "DATABASE_BACKUP_FAILED", - "DATABASE_BACKUP_NOT_CONFIGURED", - "DATABASE_INVALID_BACKUP_PATH", - "DATABASE_INVALID_BACKUP_INTERVAL", - "DATABASE_INVALID_TOO_MANY_BACKUP_SPECIFICATIONS", - "DATABASE_INVALID_BACKUP_STORAGE_TYPE", - "DATABASE_INVALID_IMPORT_SOURCE_TYPE", - "DATABASE_INVALID_BACKUP_TIME_UTC", - "DATABASE_INVALID_BACKUP_INTERVAL_AND_TIME_UTC_MISMATCH", - "DATABASE_INVALID_BACKUP_PATH_USED_BY_ANOTHER_ACCOUNT", - "DATABASE_INVALID_BACKUP_CONFIGURATION", - "DATABASE_INVALID_REGEX_RULES", - "DATABASE_INVALID_QUANTITY", - "DATABASE_REPLICA_OF_VERSION_NOT_COMPATIBLE", - "DATABASE_REPLICA_OF_SOURCE_INCOMPATIBLE", - "DATABASE_IMPORT_FAILED", - "DATABASE_IMPORT_FROM_NON_OSS", - "DATABASE_IMPORT_SOURCE_NOT_FOUND", - "DUPLICATE_DATABASE_IMPORT_SOURCE_PATH", - "DATABASE_IMPORT_WRONG_SIZE", - "DATABASE_IMPORT_URI_NOT_PROVIDED", - "DATABASE_IMPORT_MULTIPLE_REDIS_SOURCES", - "DATABASE_IMPORT_REDIS_BAD_URI", - "DATABASE_REPLICA_OF_BAD_URI", - "DATABASE_IMPORT_S3_BAD_URI", - "DATABASE_IMPORT_HTTP_BAD_URI", - "DATABASE_IMPORT_FTP_BAD_URI", - "DATABASE_IMPORT_AZURE_BAD_URI", - "DATABASE_IMPORT_GCS_BAD_URI", - "DATABASE_IMPORT_NOT_ALLOWED", - "DATABASE_PORT_INVALID_VALUE", - "DATABASE_PORT_IS_UNAVAILABLE", - "DATABASE_CUSTOM_PORT_NOT_SUPPORTED", - "DATABASE_CUSTOM_PORT_NOT_UNIQUE", - "DATABASE_AVERAGE_ITEM_SIZE_INVALID_VALUE", - "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED", - "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED_FOR_REGION", - "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED_FOR_MEMCACHED", - "DATABASE_REDIS_VERSION_IS_REQUIRED", - "DATABASE_REDIS_VERSION_INVALID_VALUE", - "INCOMPATIBLE_TF_PROVIDER", - "DESIRED_SOFTWARE_VERSION_IS_NOT_SUPPORTED", - "CONNECTIVITY_REQUESTS_ON_CUSTOMER_MANAGED_VPC_SUBSCRIPTION", - "VPC_PEERING_NOT_ACTIVE", - "VPC_PEERING_GENERAL_ERROR", - "VPC_PEERING_INVALID_ACCOUNT", - "VPC_PEERING_INVALID_VPC", - "VPC_PEERING_INVALID_CIDR", - "VPC_PEERING_CIDR_IS_MISSING", - "VPC_PEERING_TOO_MANY_CIDR_SPECIFICATIONS", - "VPC_PEERING_INVALID_REGION", - "VPC_PEERING_ALREADY_EXIST", - "VPC_PEERING_NOT_FOUND", - "VPC_PEERING_INVALID_PROJECT", - "VPC_PEERING_CLUSTER_NOT_ACTIVE", - "VPC_PEERING_CIDR_OVERLAP", - "VPC_PEERING_BELONGS_TO_DIFFERENT_CLOUD_PROVIDER", - "VPC_PEERING_IS_NOT_KNOWN_CLOUD_PROVIDER", - "CREATING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "UPDATING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "DELETING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "DELETING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_FOR_A_SUBSCRIPTION_WITH_NO_VPC_PEERINGS", - "ACTIVE_ACTIVE_VPC_PEERING_NOT_FOUND", - "VPC_PEERING_MULTIPLE_CIDRS_IS_DISABLED", - "TGW_ACCEPTING_AN_ACTIVE_ACTIVE_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "TGW_REJECTING_AN_ACTIVE_ACTIVE_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "TGW_ACCEPTING_A_FLEXIBLE_SUBSCRIPTION_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "TGW_REJECTING_A_FLEXIBLE_SUBSCRIPTION_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "TGW_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "TGW_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "TGW_UPDATING_AN_ACTIVE_ACTIVE_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "TGW_CREATING_A_FLEXIBLE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "TGW_UPDATING_A_FLEXIBLE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "TGW_DELETING_A_FLEXIBLE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "TGW_CLOUD_PROVIDER_IS_NOT_SUPPORTED", - "TGW_RESOURCE_SHARE_DOES_NOT_EXIST", - "TGW_DOES_NOT_EXIST", - "TGW_ATTACHMENT_DOES_NOT_EXIST", - "TGW_ATTACHMENT_IS_NOT_ACTIVE", - "TGW_ATTACHMENT_CIDRS_INVALID_LENGTH", - "TGW_ATTACHMENT_CIDRS_ARE_THE_SAME_AS_EXISTING_ONES", - "TGW_ATTACHMENT_CIDRS_REQUEST_CONTAINS_DUPLICATES", - "TGW_REGION_DOES_NOT_EXIST", - "TGW_GETTING_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "TGW_GETTING_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_INVITATIONS_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "TGW_GETTING_SINGLE_REGION_TGWS_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "TGW_GETTING_SINGLE_REGION_TGW_INVITATIONS_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "PSC_ENDPOINT_INVALID_GCP_PROJECT_ID", - "PSC_ENDPOINT_INVALID_VPC_NAME", - "PSC_ENDPOINT_INVALID_VPC_SUBNET_NAME", - "PSC_ENDPOINT_INVALID_CONNECTION_NAME", - "PSC_SERVICE_ALREADY_EXISTS", - "PSC_ENDPOINT_ALREADY_EXISTS", - "PSC_CLOUD_PROVIDER_IS_NOT_SUPPORTED", - "PSC_GET_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINTS_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "PSC_GET_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PSC_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "PSC_CREATING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PSC_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "PSC_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PSC_CREATING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PSC_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "PSC_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_SUPPORTED", - "PSC_UPDATING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PSC_UPDATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "PSC_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PSC_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "PSC_UPDATE_ENDPOINT_REQUEST_ACTION_INVALID_VALUE", - "PSC_UPDATE_ENDPOINT_REQUEST_CANNOT_HAVE_BOTH_ACTION_AND_OTHER_FIELDS", - "PSC_UPDATE_ENDPOINT_REQUEST_CANNOT_UPDATE_INITIALIZED_ENDPOINT", - "PSC_SERVICE_NOT_FOUND", - "PSC_ENDPOINT_NOT_FOUND", - "PSC_ENDPOINT_NOT_ACTIVE", - "PSC_ENDPOINT_NOT_CREATED_OR_DELETED", - "PSC_ENDPOINT_CANNOT_BE_DELETED_WITHOUT_DELETION_SCRIPT", - "PSC_SERVICE_CANNOT_DELETE_SERVICE_WITH_ACTIVE_ENDPOINTS", - "PSC_SERVICE_NOT_ACTIVE", - "PSC_ENDPOINT_SCRIPT_FAILED_TO_PARSE", - "CIDR_WHITELIST_GENERAL_ERROR", - "CIDR_WHITELIST_INVALID_CIDRS", - "CIDR_WHITELIST_INVALID_SG", - "CIDR_WHITELIST_LIMIT_EXCEEDED", - "CIDR_WHITELIST_DUPLICATE_CIDRS", - "CIDR_WHITELIST_DUPLICATE_SG", - "CIDR_WHITELIST_NOT_ALLOWED", - "CLIENT_PUBLIC_ACCESS_INVALID_SOURCE_IPS", - "CLIENT_PUBLIC_ACCESS_NOT_SUPPORTED", - "CLIENT_PUBLIC_ACCESS_ALREADY_SET", - "CLIENT_PUBLIC_ACCESS_ON_NON_HOSTED", - "AWS_ERROR_INSTANCE_LIMIT_EXCEEDED", - "AWS_ERROR_VPC_LIMIT_EXCEEDED", - "AWS_ERROR_INSUFFICIENT_INSTANCE_CAPACITY", - "AWS_ERROR_VOLUME_LIMIT_EXCEEDED", - "AWS_ERROR_MISMATCHING_CIDR", - "AWS_ERROR_CONFLICTING_CIDR", - "AWS_ERROR_VPC_DOES_NOT_EXIST", - "AWS_ERROR_EXISTING_VPC_EQUAL_TO_REQUESTED", - "PAYMENT_INFO_NOT_PROVIDED", - "PAYMENT_INFO_EXPIRED", - "PAYMENT_INFO_NOT_ALLOWED_IN_GCP_ACCOUNT", - "CLOUD_PROVIDER_IS_NOT_GCP_IN_GCP_ACCOUNT", - "PAYMENT_INFO_NOT_ALLOWED_IN_CONTRACT_ASSOCIATED_ACCOUNT", - "PAYMENT_INFO_CHANGE_PROHIBITED_FOR_PRO_UNDER_CONTRACT", - "LOCAL_THROUGHPUT_READ_AND_WRITE_OPERATIONS_PER_SECOND_VALUES_MUST_BE_IN_INCREMENTS_OF_500_OR_MINIMUM", - "MISSING_REGIONS_BETWEEN_CLOUD_PROVIDERS_AND_DATABASES_LOCAL_THROUGHPUT_MEASUREMENTS", - "MISSING_REGIONS_BETWEEN_LOCAL_THROUGHPUT_MEASUREMENTS_AND_SUBSCRIPTION_REGIONS", - "CRDB_ACTIVE_ACTIVE_MISSING_LOCAL_THROUGHPUT_MEASUREMENT", - "CRDB_ACTIVE_ACTIVE_REGIONS_MUST_BE_DEFINED_ONCE", - "ACTIVE_ACTIVE_CREATE_A_REGION_MUST_CONTAIN_DATABASE_SPEC_TO_ALL_CRDBS_IN_SUBSCRIPTION", - "ACTIVE_ACTIVE_CREATE_A_REGION_MUST_CONTAIN_LOCAL_THROUGHPUT_MEASUREMENT_IN_DATABASE_SPEC", - "ACTIVE_ACTIVE_CREATE_A_REGION_MUST_BE_DEFINED_ONCE_PER_DATABASE", - "ACTIVE_ACTIVE_CREATE_A_REGION_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", - "TOO_MANY_LOCAL_THROUGHPUT_MEASUREMENTS_DEFINED_FOR_SPECIFIED_ACTIVE_ACTIVE_SUBSCRIPTION", - "ACTIVE_ACTIVE_RAM_AND_FLASH_MEMORY_STORAGE_NOT_SUPPORTED", - "ACTIVE_ACTIVE_DATABASE_MODULE_IS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_DATABASE_MODULES_IS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_FOR_GCP_ACCOUNT_IS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_DATABASE_ALERT_NOT_SUPPORTED", - "FLEXIBLE_DATABASE_ALERT_NOT_SUPPORTED", - "ACTIVE_ACTIVE_DATABASE_REPLICA_OF_NOT_SUPPORTED", - "ACTIVE_ACTIVE_DATABASE_PERIODIC_BACK_UP_PATH_NOT_ALLOWED", - "ACTIVE_ACTIVE_CHANGE_REQUEST_PLANNING_FAILED", - "ACTIVE_ACTIVE_CHANGE_REQUEST_PLANNING_EXPIRED", - "ACTIVE_ACTIVE_MISSING_LOCAL_THROUGHPUT_MEASUREMENT", - "ACTIVE_ACTIVE_BACKUP_MISSING_REGION_NAME", - "ACTIVE_ACTIVE_BACKUP_STATUS_MISSING_REGION_NAME", - "ACTIVE_ACTIVE_DATABASE_INVALID_CIDR_FORMAT", - "ACTIVE_ACTIVE_DATABASE_INVALID_CIDR_OVERLAPPING_OTHER_REGIONS", - "ACTIVE_ACTIVE_DATABASE_REPLICATION_CANNOT_BE_FALSE", - "ACTIVE_ACTIVE_REGIONS_MUST_BE_DEFINED_ONCE", - "ACTIVE_ACTIVE_SUBSCRIPTION_WITHOUT_REGIONS_IS_NOT_ALLOWED", - "ACTIVE_ACTIVE_DATABASE_MEMCACHED_PROTOCOL_IS_NOT_ALLOWED", - "ACTIVE_ACTIVE_DATABASE_SHARDING_MUST_BE_ENABLED", - "ACTIVE_ACTIVE_DATABASE_MISSING_DATABASE_CONFIGURATION", - "ACTIVE_ACTIVE_DATABASE_INVALID_THROUGHPUT", - "ACTIVE_ACTIVE_MISMATCH_BETWEEN_REQUEST_REGIONS_AND_SUBSCRIPTION_REGIONS", - "ACTIVE_ACTIVE_INVALID_UPDATE_DATABASE_NAME", - "ACTIVE_ACTIVE_INVALID_CREATE_REGION_NAME", - "ACTIVE_ACTIVE_INVALID_DELETE_REGION_NAME", - "ACTIVE_ACTIVE_INVALID_BACKUP_REGION_NAME", - "ACTIVE_ACTIVE_INVALID_BACKUP_STATUS_REGION_NAME", - "ACTIVE_ACTIVE_DELETE_REGIONS_MUST_BE_DEFINED_ONCE", - "ACTIVE_ACTIVE_DELETE_SUBSCRIPTION_MUST_BE_DEPLOYED_IN_AT_LEAST_ONE_REGION", - "ACTIVE_ACTIVE_REQUEST_GENERAL_ERROR", - "ACTIVE_ACTIVE_VPC_PEERING_INVALID_SOURCE_REGION_NAME", - "ACTIVE_ACTIVE_VPC_PEERING_INVALID_AWS_ACCOUNT", - "ACTIVE_ACTIVE_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_DATABASE_PREVIEW_REDIS_VERSION_IS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_DATABASE_UPGRADE_IS_NOT_SUPPORTED", - "LOCAL_THROUGHPUT_MEASUREMENT_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "BACKUP_REGION_NAME_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "BACKUP_STATUS_REGION_NAME_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "UPDATING_LOCAL_PROPERTIES_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "DISABLING_THE_DEFAULT_USER_AND_UPDATING_A_NEW_PASSWORD_IS_NOT_ALLOWED", - "NOT_ALLOWED_TO_UPDATE_A_DATABASE_PASSWORD_WHEN_DEFAULT_USER_IS_DISABLED", - "UPDATING_SINGLE_REGION_DATABASE_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "GETTING_ACTIVE_ACTIVE_SUBSCRIPTION_VPC_PEERINGS_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "UPDATING_SINGLE_REGION_CIDR_WHITE_LIST_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "GETTING_SINGLE_REGION_CIDR_WHITE_LIST_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "ADDING_REGION_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "DELETING_REGION_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "SINGLE_REGION_SUBSCRIPTION_MUST_DEFINE_ONLY_ONE_REGION", - "CREATING_A_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "UPDATING_A_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "DELETING_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "GETTING_SINGLE_REGION_VPC_PEERINGS_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", - "ACTIVE_ACTIVE_DATABASE_LIMIT_EXCEEDED", - "ACTIVE_ACTIVE_REGION_LIMIT_REACHED", - "FIXED_DATABASE_NAME_IS_MISSING", - "CREATING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "UPDATING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "DELETING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "FIXED_DATABASE_MEMORY_LIMIT_IN_GB_AND_DATA_SET_SIZE_SUPPORTED_ONLY_FOR_PAY_AS_YOU_GO", - "FIXED_DATABASE_FIXED_SUBSCRIPTION_REACHED_MAX_DATABASES_COUNT", - "FIXED_DATABASE_SOURCE_IPS_LIST_IS_GREATER_THAN_PLAN_MAX_COUNT_ALLOWED_SOURCE_IPS", - "FIXED_DATABASE_ENABLE_DATABASE_CLUSTERING_SUPPORTED_ONLY_FOR_PAY_AS_YOU_GO", - "FIXED_DATABASE_ENABLE_DATABASE_CLUSTERING_WITH_REDIS_SEARCH_OR_GRAPH_MODULES_IS_NOT_ALLOWED", - "FIXED_DATABASE_PAYG_MEMORY_LIMIT_IN_GB_IS_MISSING", - "FIXED_DATABASE_PAYG_MEMORY_LIMIT_IN_GB_OR_DATA_SET_SIZE_IN_GB_IS_MISSING", - "FIXED_DATABASE_ALERT_NOT_SUPPORTED", - "PAY_AS_YOU_GO_DATABASE_ALERT_NOT_SUPPORTED", - "FIXED_DATABASE_REPLICA_OF_MEMCACHED_IS_NOT_SUPPORTED", - "FIXED_DATABASE_STACK_PROTOCOL_CONTAINS_MODULES", - "FIXED_DATABASE_STACK_PROTOCOL_IS_NOT_SUPPORTED_IN_SELECTED_PLAN_OR_CLUSTER", - "FIXED_DATABASE_REDIS_PROTOCOL_IS_NOT_SUPPORTED_IN_SELECTED_PLAN", - "FIXED_DATABASE_REPLICATION_IS_NOT_SUPPORTED_IN_REQUESTED_PLAN", - "FIXED_DATABASE_OSS_CLUSTER_API_IS_NOT_SUPPORTED_IN_REQUESTED_PLAN", - "FIXED_DATABASE_USE_EXTERNAL_ENDPOINT_FOR_OSS_CLUSTER_API_NOT_SUPPORTED_IN_REQUESTED_PLAN", - "FIXED_DATABASE_REGEX_RULES_NOT_SUPPORTED_IN_REQUESTED_PLAN", - "FIXED_DATABASE_ENABLE_TLS_NOT_SUPPORTED_IN_REQUESTED_PLAN", - "FIXED_DATABASE_CLIENT_SSL_CERTIFICATE_NOT_SUPPORTED_IN_REQUESTED_PLAN", - "FIXED_DATABASE_REPLICA_OF_NOT_SUPPORTED_IN_REQUESTED_PLAN", - "FIXED_DATABASE_CLUSTER_DOES_NOT_SUPPORT_DATA_PERSISTENCE", - "FIXED_DATABASE_NO_EVICTION_IS_NOT_SUPPORTED_BY_CLUSTER", - "FIXED_DATABASE_DATA_EVICTION_POLICY_IS_NOT_SUPPORTED_BY_CLUSTER", - "FIXED_DATABASE_DATA_EVICTION_POLICY_IS_NOT_SUPPORTED_BY_SELECTED_MODULES", - "FIXED_DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_VERSION", - "DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_VERSION", - "DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_FLEX", - "FIXED_DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_FLEX", - "FIXED_DATABASE_REPLICA_OF_IS_NOT_SUPPORTED_BY_SELECTED_MODULES", - "FIXED_DATABASE_DATA_PERSISTENCE_VALUE_NOT_SUPPORTED_FOR_FIXED", - "FIXED_DATABASE_DATA_EVICTION_POLICY_IS_NOT_SUPPORTED_BY_ALL_MODULES_IN_SELECTED_PLAN_OR_CLUSTER", - "FIXED_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", - "FIXED_DATABASE_REDIS_FLEX_IS_NOT_SUPPORTED", - "FIXED_DATABASE_STACK_PROTOCOL_IS_NOT_SUPPORTED_FOR_REDIS_FLEX", - "FIXED_DATABASE_MEMCACHED_PROTOCOL_IS_NOT_SUPPORTED_FOR_REDIS_FLEX", - "FIXED_DATABASE_NUMBER_OF_SHARDS_IS_NOT_SUPPORTED_FOR_THIS_ACCOUNT", - "FIXED_DATABASE_NUMBER_OF_SHARDS_REQUIRES_DATABASE_CLUSTERING_ENABLED", - "FIXED_DATABASE_NUMBER_OF_SHARDS_INVALID_VALUE", - "PAYMENT_INFO_NOT_ALLOWED_WHEN_ACCOUNT_POC_ACTIVE", - "FIXED_DATABASE_NUMBER_OF_SHARDS_SUPPORTED_ONLY_FOR_PAY_AS_YOU_GO", - "FIXED_DATABASE_NUMBER_OF_SHARDS_NOT_A_MULTIPLE_OF_CURRENT_VALUE", - "VPC_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", - "SUBNET_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", - "SECURITY_GROUP_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", - "CLIENT_SSL_CERTIFICATE_IS_NOT_ALLOWED_WITHOUT_ENABLE_TLS_IS_TRUE", - "MARKETPLACE_PAYMENT_INFO_COLLISION", - "ACCOUNT_MARKETPLACE_IS_NOT_ACTIVE", - "ACCOUNT_MARKETPLACE_NOT_FOUND", - "ACCOUNT_MARKETPLACE_NOT_SUPPORT_NON_HOSTED_ACCOUNTS", - "PAYMENT_INVALID_CARD_NUMBER", - "PAYMENT_INVALID_CCV", - "PAYMENT_INVALID_CARD_TYPE", - "PAYMENT_CVV_MISSING", - "PAYMENT_GENERAL_ERROR", - "PAYMENT_HOLD_FAILED", - "ACL_USER_NAME_ALREADY_EXISTS", - "ACL_USER_NAME_NOT_VALID", - "ACL_USER_NOT_FOUND", - "ACL_USER_NAME_IS_MISSING", - "ACL_ROLE_NAME_IS_MISSING", - "ACL_ROLE_REDIS_RULE_MUST_BE_DEFINED_ONLY_ONCE_PER_DATABASE", - "ACL_ROLE_REDIS_RULE_ALREADY_EXISTS_FOR_REQUESTED_RESOURCE", - "ACL_ROLE_REDIS_RULES_IS_MISSING", - "ACL_ROLE_REDIS_RULES_DATABASES_SPEC_IS_MISSING", - "ACL_ROLE_REDIS_RULES_DATABASES_DATABASE_ID_IS_MISSING", - "ACL_ROLE_REDIS_RULES_DATABASES_SUBSCRIPTION_ID_IS_MISSING", - "ACL_ROLE_REDIS_RULES_DATABASES_REGIONS_IS_MISSING", - "ACL_ROLE_REDIS_RULES_DATABASES_REGION_MUST_BE_CRDB", - "ACL_ROLE_REDIS_RULES_DATABASES_REGION_NOT_IN_PLAN", - "ACL_ROLE_REDIS_RULES_DATABASES_REGION_NOT_UNIQUE", - "ACL_ROLE_REDIS_RULES_DATABASES_REGION_IS_NOT_BELONGS_TO_DATABASE", - "ACL_ROLE_NAME_NOT_VALID", - "ACL_ROLE_DOES_NOT_EXISTS", - "ACL_USER_PASSWORD_NOT_VALID", - "ACL_USER_PASSWORD_IS_MISSING", - "ACL_USER_CREATION_FAILURE", - "ACL_REDIS_RULE_NAME_IS_MISSING", - "ACL_REDIS_RULE_NAME_ALREADY_EXISTS", - "ACL_REDIS_RULE_NAME_NOT_VALID", - "ACL_REDIS_RULE_NAME_NOT_IN_RANGE", - "ACL_REDIS_RULE_PATTERN_IS_MISSING", - "ACL_REDIS_RULE_PATTERN_NOT_VALID", - "ACL_REDIS_RULE_INVALID_PUBSUB_PATTERN", - "ACL_REDIS_RULE_ACCOUNT_NOT_SUPPORT_PUBSUB_PATTERN", - "ACL_REDIS_RULE_ALLCHANNELS_BEFORE_SPECIFIC_CHANNEL", - "ACL_REDIS_RULE_INVALID_CATEGORY_RULE_PATTERN", - "ACL_REDIS_RULE_INVALID_KEYSPACE_RULE_PATTERN", - "ACL_REDIS_RULE_INVALID_COMMAND_OR_MODULE_COMMAND_RULE_PATTERN", - "ACL_REDIS_RULE_ALLKEYS_BEFORE_SPECIFIC_KEY", - "ACL_REDIS_RULE_CREATION_FAILURE", - "ACL_REDIS_RULE_NOT_FOUND", - "ACL_REDIS_RULE_CANNOT_UPDATE_DEFAULT", - "ACL_REDIS_RULE_CANNOT_DELETE_DEFAULT", - "ACL_REDIS_RULE_CANNOT_DELETE_WHEN_ASSOCIATED_WITH_ROLES", - "ACL_REDIS_RULE_NOT_ACTIVE", - "ACL_GENERAL_ERROR", - "ACL_ROLE_NAME_ALREADY_EXISTS", - "ACL_ROLE_HAS_ACTIVE_USERS_AND_CANNOT_BE_DELETED", - "ACL_ROLE_IS_IN_PENDING_STATUS_AND_CANNOT_BE_DELETED", - "ACL_ROLE_IS_IN_PENDING_STATUS_AND_CANNOT_BE_UPDATED", - "ACL_ROLE_NOT_FOUND", - "ACL_ROLE_ID_IS_MISSING", - "ACL_REDIS_RULE_DOES_NOT_EXISTS", - "ACL_REDIS_RULE_INVALID_KEY_PERMISSION_PATTERN", - "ACL_REDIS_RULE_INVALID_SELECTORS_PATTERN", - "BDB_IS_NOT_IN_CORRECT_VERSION_FOR_GIVEN_ACL_VERSION", - "USER_NOT_FOUND", - "USER_INSUFFICIENT_ROLE", - "USER_NAME_IS_INVALID", - "USER_CANNOT_UPDATE_IT_IS_OWN_ROLE", - "USER_WITHOUT_OWNER_PERMISSION_CANNOT_UPDATE_USERS", - "USER_WITHOUT_OWNER_PERMISSION_CANNOT_PERFORM_ACTIONS_ON_USERS", - "USER_CANNOT_BE_UPDATED_OR_DELETED_BEFORE_VERIFICATION", - "USER_ROLE_DOES_NOT_EXISTS", - "USER_ROLE_IS_MISSING", - "USER_CANNOT_DELETE_OWN_USER", - "ENTITY_NOT_FOUND", - "FIXED_SUBSCRIPTION_CREATE_PLAN_NOT_FOUND", - "FIXED_SUBSCRIPTION_UPDATE_INVALID_PLAN", - "FIXED_SUBSCRIPTION_PLAN_NOT_PROVIDED", - "FIXED_SUBSCRIPTION_ACCOUNT_ALREADY_HAS_A_FREE_PLAN", - "FIXED_MISMATCH_BETWEEN_REQUEST_PLAN_CLOUD_PROVIDER_AND_SUBSCRIPTION_CLOUD_PROVIDER", - "FIXED_MISMATCH_BETWEEN_REQUEST_PLAN_REGION_AND_SUBSCRIPTION_REGION", - "FIXED_SUBSCRIPTION_PLAN_MAX_DATABASES_SMALLER_THEN_CURRENT_SUBSCRIPTION_DATABASES_COUNT", - "FIXED_SUBSCRIPTION_PLAN_SIZE_SMALLER_THEN_CURRENT_SUBSCRIPTION_USAGE", - "FIXED_SUBSCRIPTION_PLAN_NOT_SUPPORT_REPLICA_OF", - "FIXED_SUBSCRIPTION_PLAN_DATABASES_ARE_RESTRICTED_TO_A_SINGLE_CLUSTER", - "FIXED_SUBSCRIPTION_PLAN_NOT_SUPPORT_TLS", - "FIXED_SUBSCRIPTION_PLAN_CANNOT_CHANGED_FROM_AVAILABILITY_OF_SINGLE_ZONE_OR_NO_REPLICATION_TO_MULTI_ZONE", - "FIXED_SUBSCRIPTION_PLAN_CANNOT_CHANGED_FROM_AVAILABILITY_OF_MULTI_ZONE_TO_SINGLE_ZONE_OR_NO_REPLICATION", - "FIXED_SUBSCRIPTION_PLAN_MAX_SOURCE_IPS_IS_SMALLER_THEN_ONE_OF_EXISTING_DATABSE_SOURCE_IPS", - "FIXED_SUBSCRIPTION_INVALID_NAME", - "FIXED_SUBSCRIPTION_NAME_NOT_PROVIDED", - "REDIS_FLEX_PLAN_CANNOT_BE_UPDATED_TO_NON_REDIS_FLEX", - "NON_REDIS_FLEX_PLAN_CANNOT_BE_UPDATED_TO_REDIS_FLEX_PLAN", - "DELETING_A_FIXED_SUBSCRIPTION_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "UPDATING_A_FIXED_SUBSCRIPTION_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "UPDATING_A_FIXED_SUBSCRIPTION_PLAN_IS_NOT_ALLOWED_WHILE_THE_SUBSCRIPTION_OR_BDB_IS_PENDING", - "FIXED_PAYMENT_INFO_NOT_ALLOWED_IN_FREE_FIXED_PLAN", - "FREE_PLAN_IS_ALLOWED_ONLY_FOR_ACCOUNTS_WITH_VALID_PAYMENT_INFO", - "BACKUP_A_FIXED_DATABASE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "IMPORT_A_FIXED_DATABASE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", - "TOO_MANY_PENDING_SUBSCRIPTIONS", - "BAD_REQUEST", - "GENERAL_ERROR", - "CONFLICT_ERROR", - "UNKNOWN_STATUS", - "CRDB_FLUSH_FAILURE", - "CRDB_FLUSH_ACTION_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", - "DATABASE_NAME_CHANGE_NOT_SUPPORTED", - "DATABASE_INVALID_LOCATION_BACKUP", - "DATABASE_GENERAL_ERROR_BACKUP", - "CLUSTER_COMMUNICATION_ERROR", - "MAINTENANCE_WINDOW_INVALID_MAINTENANCE_WINDOW_SPEC_PROVIDED", - "MAINTENANCE_WINDOW_INVALID_MAINTENANCE_WINDOW_MODE_PROVIDED", - "MAINTENANCE_WINDOW_MANUAL_MODE_WITH_NO_MAINTENANCE_WINDOWS", - "MAINTENANCE_WINDOW_AUTOMATIC_MODE_WITH_MAINTENANCE_WINDOWS", - "MAINTENANCE_WINDOW_GREATER_THAN_MAXIMUM_ALLOWABLE_MAINTENANCE_WINDOWS_PROVIDED", - "MAINTENANCE_WINDOW_INVALID_START_HOUR", - "MAINTENANCE_WINDOW_INVALID_DURATION_IN_HOURS", - "MAINTENANCE_WINDOW_INVALID_DAYS", - "MAINTENANCE_WINDOW_DUPLICATE_DAYS", - "MAINTENANCE_WINDOW_INVALID_DURATION_FOR_ROF_SUBSCRIPTION", - "MAINTENANCE_WINDOW_UNKNOWN_MEMORY_STORAGE_TYPE", - "DATABASE_UPGRADE_IS_ALREADY_RUNNING", - "DATABASE_CLUSTER_IS_IN_MAINTENANCE", - "DATABASE_IS_NOT_ACTIVE", - "DATABASE_UPGRADE_WORKFLOW_NOT_FOUND", - "DATABASE_UPGRADE_INVALID_REDIS_VERSION", - "DATABASE_UPGRADE_OF_MEMCACHED_IS_NOT_SUPPORTED", - "DATABASE_REPLICA_OF_INCOMPATIBLE_VERSION", - "DATABASE_UPGRADE_FAILED", - "DATABASE_INVALID_PLAN_TYPE", - "DATABASE_UPGRADE_IS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_EXTERNAL_ACCOUNTS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_MULTIPLE_CLOUD_ACCOUNTS_NOT_SUPPORTED", - "ACTIVE_ACTIVE_GCP_EXTERNAL_CLOUD_ACCOUNT_NOT_SUPPORTED", - "DEDICATED_SUBSCRIPTION_PREFERRED_AZ_INVALID_VALUE", - "DEDICATED_SUBSCRIPTION_INVALID_INSTANCE_NAME", - "DEDICATED_SUBSCRIPTION_INVALID_REPLICATION", - "PRIVATE_LINK_NOT_FOUND", - "PRIVATE_LINK_ALREADY_EXISTS", - "PRIVATE_LINK_PRINCIPAL_ALREADY_EXISTS", - "PRIVATE_LINK_PRINCIPAL_NOT_FOUND", - "PRIVATE_LINK_PRINCIPAL_INVALID_PRINCIPLE", - "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", - "PRIVATE_LINK_CREATING_PRINCIPLES_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PRIVATE_LINK_CREATING_PRINCIPLES_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", - "PRIVATE_LINK_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRINCIPALS_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PRIVATE_LINK_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRINCIPALS_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", - "PRIVATE_LINK_CREATE_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PRIVATE_LINK_CREATE_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", - "PRIVATE_LINK_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PRIVATE_LINK_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", - "PRIVATE_LINK_IS_NOT_SUPPORTED", - "PRIVATE_LINK_SERVICE_ERROR", - "PRIVATE_LINK_SUBSCRIPTION_REACHED_MAX_DATABASES_COUNT", - "PRIVATE_LINK_ALL_PRINCIPALS_MUST_BE_DELETED_BEFORE_DELETING_RESOURCE_LINK", - "PRIVATE_LINK_DISASSOCIATE_CONNECTIONS_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", - "PRIVATE_LINK_DISASSOCIATE_CONNECTIONS_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", - "COST_REPORT_IS_NOT_SUPPORTED", - "COST_REPORT_START_DATE_IS_MISSING", - "COST_REPORT_END_DATE_IS_MISSING", - "COST_REPORT_INVALID_DATE_FORMAT", - "COST_REPORT_END_DATE_BEFORE_START_DATE", - "COST_REPORT_DATE_RANGE_EXCEEDS_LIMIT", - "COST_REPORT_TAG_KEY_EMPTY", - "COST_REPORT_TAG_VALUE_EMPTY", - "COST_REPORT_FUTURE_DATES_NOT_ALLOWED" + "subscriptionId": 1206, + "numberOfDatabases": 6, + "databases": [ + { + "databaseId": 1, + "name": "DB-RCP-2-81-7", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "respVersion": "resp2", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 + }, + "activatedOn": "2021-08-29T13:03:08Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 2, + "name": "DB-RCP-2-81-5", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 2, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:27Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 6652, + "name": "RediSearch", + "capabilityName": "Search and query", + "version": "2.0.11", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 3, + "name": "Redis-database-example-updated", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 2, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 2500 + }, + "activatedOn": "2021-08-29T13:03:26Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": false, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 4, + "name": "DB-RCP-2-81-6", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 2, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:27Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 6653, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.4.10", + "description": "Time-Series data structure for redis", + "parameters": [] + } + ], + "alerts": [], + "links": [] + }, + { + "databaseId": 5, + "name": "CI-tests-DO-NOT-DELETE", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 4, + "memoryStorage": "ram", + "supportOSSClusterApi": false, + "useExternalEndpointForOSSClusterApi": false, + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "volatile-lru", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:22Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [], + "alerts": [], + "links": [] + }, + { + "databaseId": 6, + "name": "DB-RCP-2-81-4", + "protocol": "redis", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "active", + "datasetSizeInGb": 2, + "memoryUsedInMb": 1, + "memoryStorage": "ram", + "supportOSSClusterApi": true, + "useExternalEndpointForOSSClusterApi": true, + "dataPersistence": "snapshot-every-1-hour", + "replication": false, + "dataEvictionPolicy": "noeviction", + "throughputMeasurement": { + "by": "operations-per-second", + "value": 25000 + }, + "activatedOn": "2021-08-29T13:03:27Z", + "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", + "replica": { + "syncSources": [ + { + "endpoint": "redis://localhost:6379", + "encryption": true, + "clientCert": "-----BEGIN CERTIFICATE-----\n ... -----END CERTIFICATE-----" + } + ] + }, + "clustering": { + "numberOfShards": 1, + "regexRules": [ + { + "ordinal": 1, + "pattern": "(?.*)" + }, + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "enableDefaultUser": true, + "sslClientAuthentication": false, + "tlsClientAuthentication": false, + "enableTls": false, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 6651, + "name": "RediSearch", + "capabilityName": "Search and query", + "version": "2.0.11", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + } + ], + "alerts": [], + "links": [] + } + ], + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/120416/databases?offset=0&limit=100", + "type": "GET" + } + ] + } + }, + "AccountSystemLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "originator": { + "type": "string" + }, + "apiKeyName": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "resourceId": { + "type": "integer", + "format": "int32" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "description": "Account system log entry" + }, + "CloudTag": { + "type": "object", + "properties": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "key": { + "type": "string" + }, + "value": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "description": "Database tag", + "example": { + "key": "environment", + "value": "production", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [ + { + "rel": "self", + "type": "GET", + "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags" + } + ] + } + }, + "AccountACLRedisRules": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of ACL redis rules in current account", + "example": { + "accountId": 1001, + "redisRules": [ + { + "id": 7, + "name": "Full-Access", + "acl": "+@all ~*", + "isDefault": true, + "status": "active" + }, + { + "id": 8, + "name": "Read-Write", + "acl": "+@all -@dangerous ~*", + "isDefault": true, + "status": "active" + }, + { + "id": 9, + "name": "Read-Only", + "acl": "+@read ~*", + "isDefault": true, + "status": "active" + } + ] + } + }, + "FixedSubscription": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "paymentMethodId": { + "type": "integer", + "format": "int32" + }, + "paymentMethodType": { + "type": "string" + }, + "planId": { + "type": "integer", + "format": "int32" + }, + "planName": { + "type": "string" + }, + "planType": { + "type": "string" + }, + "size": { + "type": "number", + "format": "double" + }, + "sizeMeasurementUnit": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "region": { + "type": "string" + }, + "price": { + "type": "integer", + "format": "int32" + }, + "pricePeriod": { + "type": "string" + }, + "priceCurrency": { + "type": "string" + }, + "maximumDatabases": { + "type": "integer", + "format": "int32" + }, + "availability": { + "type": "string" + }, + "connections": { + "type": "string" + }, + "cidrAllowRules": { + "type": "integer", + "format": "int32" + }, + "supportDataPersistence": { + "type": "boolean" + }, + "supportInstantAndDailyBackups": { + "type": "boolean" + }, + "supportReplication": { + "type": "boolean" + }, + "supportClustering": { + "type": "boolean" + }, + "customerSupport": { + "type": "string" + }, + "creationDate": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "databaseStatus": { + "type": "string" + } + }, + "description": "Redis Essentials Subscription information", + "example": { + "id": 151367, + "name": "fixed-sub-2", + "status": "active", + "paymentMethodId": 8241, + "paymentMethodType": "credit-card", + "planId": 98276, + "planName": "Standard 1GB", + "size": 1, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "us-west-1", + "price": 22, + "pricePeriod": "Month", + "priceCurrency": "USD", + "maximumDatabases": 1, + "availability": "Single-zone", + "connections": "1024", + "cidrAllowRules": 8, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": true, + "customerSupport": "Standard", + "creationDate": "2022-11-21T20:02:21+02:00", + "supportClustering": false, + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions/151367", + "type": "GET" + } + ] + } + }, + "DatabaseCertificateSpec": { + "required": [ + "publicCertificatePEMString" + ], + "type": "object", + "properties": { + "publicCertificatePEMString": { + "type": "string", + "description": "Client certificate public key in PEM format, with new line characters replaced with '\\n'." + } + }, + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'." + }, + "AclRoleUpdateRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Optional. Changes the database access role name.", + "example": "ACL-role-example" + }, + "redisRules": { + "type": "array", + "description": "Optional. Changes the Redis ACL rules to assign to this database access role.", + "items": { + "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + } + }, + "roleId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL role update request" + }, + "AccountUserOptions": { + "type": "object", + "properties": { + "billing": { + "type": "boolean" + }, + "emailAlerts": { + "type": "boolean" + }, + "operationalEmails": { + "type": "boolean" + }, + "mfaEnabled": { + "type": "boolean" + } + }, + "description": "RedisLabs User options information" + }, + "AccountSystemLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountSystemLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "entries": [ + { + "id": 2900349, + "time": "2022-10-12T10:54:31Z", + "originator": "example-value", + "type": "Account", + "description": "example-value (example.value@redis.com)'s user name was changed to Example Value" + }, + { + "id": 2900348, + "time": "2022-10-12T10:54:11Z", + "originator": "invalid-name", + "type": "Account", + "description": "Invited invalid-name (cab@fufu.com) to join team" + } + ] + } + }, + "TgwUpdateCidrsRequest": { + "type": "object", + "properties": { + "cidrs": { + "type": "array", + "description": "Optional. List of transit gateway attachment CIDRs.", + "example": [ + "10.10.10.0/24", + "10.10.20.0/24" + ], + "items": { + "$ref": "#/components/schemas/Cidr" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Transit Gateway update attachment cidr/s request message" + }, + "AccountSessionLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + }, + "userAgent": { + "type": "string" + }, + "ipAddress": { + "type": "string" + }, + "userRole": { + "type": "string" + }, + "type": { + "type": "string" + }, + "action": { + "type": "string" + } + }, + "description": "Account session log entry" + }, + "AccountUser": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "role": { + "type": "string" + }, + "signUp": { + "type": "string" + }, + "userType": { + "type": "string" + }, + "hasApiKey": { + "type": "boolean" + }, + "options": { + "$ref": "#/components/schemas/AccountUserOptions" + } + }, + "description": "RedisLabs User information", + "example": { + "id": 60192, + "name": "Clifford O'neill", + "email": "clifford.mail@gmail.com", + "role": "Viewer", + "userType": "Local", + "hasApiKey": false, + "options": { + "billing": false, + "emailAlerts": false, + "operationalEmails": false, + "mfaEnabled": false + } + } + }, + "ResourceTag": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "description": "List of resource tags to apply to the subscription. This will replace all existing tags." + }, + "CustomerManagedKeyAccessDetails": { + "type": "object", + "properties": { + "redisServiceAccount": { + "type": "string" + }, + "googlePredefinedRoles": { + "type": "array", + "items": { + "type": "string" + } + }, + "googleCustomPermissions": { + "type": "array", + "items": { + "type": "string" + } + }, + "redisIamRole": { + "type": "string" + }, + "requiredKeyPolicyStatements": { + "type": "object" + }, + "deletionGracePeriodOptions": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "Configuration regarding customer managed persistent storage encryption" + }, + "SubscriptionMaintenanceWindowsSpec": { + "required": [ + "mode" + ], + "type": "object", + "properties": { + "mode": { + "type": "string", + "description": "Maintenance window mode: either 'manual' or 'automatic'. Must provide 'windows' if manual.", + "example": "manual", + "enum": [ + "manual", + "automatic" + ] + }, + "windows": { + "type": "array", + "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided.", + "items": { + "$ref": "#/components/schemas/MaintenanceWindowSpec" + } + } + } + }, + "ACLUser": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "status": { + "type": "string" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis ACL user information", + "example": { + "id": 1, + "name": "abc", + "role": "role-name", + "status": "active" + } + }, + "DatabaseCertificate": { + "type": "object", + "properties": { + "publicCertificatePEMString": { + "type": "string", + "description": "An X.509 PEM (base64) encoded server certificate with new line characters replaced by '\\n'." + } + }, + "description": "Database certificate" + }, + "AccountSessionLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountSessionLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "Tag": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Tag key", + "example": "environment" + }, + "value": { + "type": "string", + "description": "Tag value", + "example": "production" + } + }, + "description": "Tag filter for cost report" + }, + "AccountSubscriptions": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs list of subscriptions in current account", + "example": { + "accountId": 1001, + "subscriptions": [ + { + "id": 1206, + "name": "subscription name", + "status": "active", + "deploymentType": "single-region", + "paymentMethodId": 123, + "publicEndpointAccess": true, + "memoryStorage": "ram", + "numberOfDatabases": 6, + "paymentMethodType": "credit-card", + "storageEncryption": false, + "subscriptionPricing": [ + { + "type": "Shards", + "typeDetails": "high-throughput", + "quantity": 7, + "quantityMeasurement": "shards", + "pricePerUnit": 0.124, + "priceCurrency": "USD", + "pricePeriod": "hour" + } + ], + "cloudDetails": [ + { + "provider": "AWS", + "awsAccountId": "550680565604", + "cloudAccountId": 1666, + "totalSizeInGb": 0.0272, + "regions": [ + { + "region": "us-east-1", + "networking": [ + { + "deploymentCIDR": "10.0.0.0/24", + "subnetId": "subnet-009ce004ed90da8a6" + } + ], + "preferredAvailabilityZones": [ + "us-east-1a" + ], + "multipleAvailabilityZones": false + } + ], + "links": [] + } + ], + "links": [] + } + ] + } + }, + "CrdbRegionSpec": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name." + }, + "localThroughputMeasurement": { + "$ref": "#/components/schemas/LocalThroughput" + } + }, + "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database" + }, + "VpcPeeringCreateAwsRequest": { + "required": [ + "awsAccountId", + "region", + "vpcId" + ], + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "region": { + "type": "string", + "description": "Deployment region as defined by the cloud provider.", + "example": "us-east-1" + }, + "awsAccountId": { + "type": "string", + "description": "AWS Account ID.", + "example": "" + }, + "vpcId": { + "type": "string", + "description": "VPC ID.", + "example": "" + }, + "vpcCidr": { + "type": "string", + "description": "Optional. VPC CIDR.", + "example": "<10.10.10.0/24>" + }, + "vpcCidrs": { + "type": "array", + "description": "Optional. List of VPC CIDRs.", + "example": [ + "<10.10.10.0/24>", + "<10.10.20.0/24>" + ], + "items": { + "type": "string", + "description": "Optional. List of VPC CIDRs.", + "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "VPC peering creation request message" + }, + "FixedDatabaseUpdateRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Updated database name.", + "example": "Redis-Essentials-database-example" + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "(Pay-as-you-go subscriptions only) Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api).", + "example": true + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", + "example": true + }, + "enableDatabaseClustering": { + "type": "boolean", + "description": "(Pay-as-you-go subscriptions only) Optional. Distributes database data to different cloud instances.", + "example": false + }, + "numberOfShards": { + "type": "integer", + "description": "(Pay-as-you-go subscriptions only) Optional. Changes the number of master shards.", + "format": "int32", + "example": 2 + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage. Use GET /fixed/plans/{planId} to see if your plan supports data persistence.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Turns database replication on or off.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] + }, + "replication": { + "type": "boolean", + "description": "Optional. Sets database replication. Use GET /fixed/plans/{planId} to see if your plan supports database replication." + }, + "periodicBackupPath": { + "type": "string", + "description": "Optional. Changes the backup location path. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time. Use GET /fixed/plans/{planId} to see if your plan supports database backups. If set to an empty string, the backup path will be removed.", + "example": "s3://" + }, + "sourceIps": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" + } + }, + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )." + } + }, + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" + }, + "regexRules": { + "type": "array", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'.", + "items": { + "type": "string", + "description": "(Pay-as-you-go subscriptions only) Optional. Hashing policy Regex rules. Used only if 'shardingType' is 'custom-regex-rules'." + } + }, + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "deprecated": true + }, + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." + }, + "password": { + "type": "string", + "description": "Optional. Changes the password used to access the database with the 'default' user." + }, + "enableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user. When 'false', only defined access control users can connect to the database." + }, + "alerts": { + "type": "array", + "description": "Optional. Changes Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials database update request" + }, + "CloudAccountCreateRequest": { + "required": [ + "accessKeyId", + "accessSecretKey", + "consolePassword", + "consoleUsername", + "name", + "signInLoginUrl" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Cloud account display name.", + "example": "My new Cloud Account" + }, + "provider": { + "type": "string", + "description": "Optional. Cloud provider. Default: 'AWS'", + "example": "AWS", + "enum": [ + "AWS", + "GCP" + ] + }, + "accessKeyId": { + "type": "string", + "description": "Cloud provider access key.", + "example": "****" + }, + "accessSecretKey": { + "type": "string", + "description": "Cloud provider secret key.", + "example": "****" + }, + "consoleUsername": { + "type": "string", + "description": "Cloud provider management console username.", + "example": "me@mycompany.com" + }, + "consolePassword": { + "type": "string", + "description": "Cloud provider management console password.", + "example": "****" + }, + "signInLoginUrl": { + "type": "string", + "description": "Cloud provider management console login URL.", + "example": "https://.signin.aws.amazon.com/console" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Cloud Account definition" + }, + "ModulesData": { + "type": "object", + "properties": { + "modules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Module" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "modules": [ + { + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "name": "RedisJSON", + "capabilityName": "JSON", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "name": "RediSearch", + "capabilityName": "Search and query", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [ + { + "name": "number-of-documents", + "description": "Expected number of documents the database module will be indexing", + "type": "integer", + "defaultValue": 1000000, + "required": false + } + ] + }, + { + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "description": "Time-Series data structure for redis", + "parameters": [] + } + ] + } + }, + "ActiveActiveRegionDeleteRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regions": { + "type": "array", + "description": "The names of the regions to delete.", + "items": { + "$ref": "#/components/schemas/ActiveActiveRegionToDelete" + } + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, deleting any resources required by the plan. When 'true': creates a read-only deployment plan and does not delete or modify any resources. Default: 'false'", + "example": false + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active active region deletion request message" + }, + "AccountACLUsers": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of ACL users in current account", + "example": { + "accountId": 1001, + "users": [ + { + "id": 1, + "name": "user", + "role": "role-name", + "status": "active", + "links": [] + } + ] + } + }, + "AclRoleRedisRuleSpec": { + "required": [ + "databases", + "ruleName" + ], + "type": "object", + "properties": { + "ruleName": { + "type": "string", + "description": "The name of a Redis ACL rule to assign to the role. Use 'GET /acl/redisRules' to get a list of available rules for your account.", + "example": "Read-Only" + }, + "databases": { + "type": "array", + "description": "A list of databases where the specified rule applies for this role.", + "items": { + "$ref": "#/components/schemas/AclRoleDatabaseSpec" + } + } + }, + "description": "Optional. Changes the Redis ACL rules to assign to this database access role." + }, + "ActiveActiveSubscriptionRegions": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "List of active-active subscription regions", + "example": { + "subscriptionId": 126, + "regions": [ + { + "regionId": 1, + "region": "us-east-1", + "deploymentCidr": "10.0.0.0/24", + "vpcId": "vpc-0bf863584c46321e4", + "databases": [ + { + "databaseId": 862, + "databaseName": "Bdb", + "readOperationsPerSecond": 500, + "writeOperationsPerSecond": 500, + "respVersion": "resp3", + "links": [] + }, + { + "databaseId": 864, + "databaseName": "Bdb2", + "readOperationsPerSecond": 1000, + "writeOperationsPerSecond": 1000, + "respVersion": "resp3", + "links": [] + } + ], + "links": [] + }, + { + "regionId": 4, + "region": "eu-west-1", + "deploymentCidr": "10.0.1.0/24", + "vpcId": "vpc-0108fb753063ecf8b", + "databases": [ + { + "databaseId": 862, + "databaseName": "Bdb", + "readOperationsPerSecond": 500, + "writeOperationsPerSecond": 500, + "respVersion": "resp3", + "links": [] + }, + { + "databaseId": 864, + "databaseName": "Bdb2", + "readOperationsPerSecond": 1000, + "writeOperationsPerSecond": 1000, + "respVersion": "resp3", + "links": [] + } + ], + "links": [] + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/subscriptions/133876/regions", + "type": "GET" + } + ] + } + }, + "AccountFixedSubscriptionDatabases": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "RedisLabs Account Subscription Databases information", + "example": { + "accountId": 40131, + "subscription": { + "subscriptionId": 154714, + "numberOfDatabases": 2, + "databases": [ + { + "databaseId": 51324587, + "name": "bdb", + "protocol": "stack", + "provider": "AWS", + "region": "us-east-1", + "redisVersion": "7.4", + "status": "draft", + "planMemoryLimit": 250, + "respVersion": "resp2", + "memoryLimitMeasurementUnit": "MB", + "memoryUsedInMb": 1, + "memoryStorage": "ram", + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "noeviction", + "clustering": { + "enabled": false, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "defaultUserEnabled": true, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18534, + "name": "searchlight", + "capabilityName": "Search and query", + "version": "2.2.6", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + }, + { + "id": 18535, + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "version": "2.2.12", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "id": 18537, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.6.8", + "description": "Time-Series data structure for Redis", + "parameters": [] + } + ], + "alerts": [ + { + "name": "connections-limit", + "value": 80, + "defaultValue": 80 + } + ], + "backup": { + "remoteBackupEnabled": false + }, + "links": [] + }, + { + "databaseId": 51324586, + "name": "firstDB", + "protocol": "stack", + "provider": "AWS", + "region": "us-east-1", + "status": "draft", + "planMemoryLimit": 250, + "memoryLimitMeasurementUnit": "MB", + "memoryUsedInMb": 1, + "memoryStorage": "ram", + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "noeviction", + "clustering": { + "enabled": false, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" + }, + { + "ordinal": 1, + "pattern": "(?.*)" + } + ], + "hashingPolicy": "standard" + }, + "security": { + "defaultUserEnabled": true, + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18529, + "name": "searchlight", + "capabilityName": "Search and query", + "version": "2.2.6", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] + }, + { + "id": 18530, + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "version": "2.2.12", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "id": 18531, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "id": 18532, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.6.8", + "description": "Time-Series data structure for Redis", + "parameters": [] + } + ], + "alerts": [ + { + "name": "connections-limit", + "value": 80, + "defaultValue": 80 + } + ], + "backup": { + "remoteBackupEnabled": false + }, + "links": [] + } + ], + "links": [] + }, + "links": [] + } + }, + "DatabaseAlertSpec": { + "required": [ + "name", + "value" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Alert type. Available options depend on Plan type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", + "example": "dataset-size", + "enum": [ + "dataset-size", + "datasets-size", + "throughput-higher-than", + "throughput-lower-than", + "latency", + "syncsource-error", + "syncsource-lag", + "connections-limit" + ] + }, + "value": { + "type": "integer", + "description": "Value over which an alert will be sent. Default values and range depend on the alert type. See [Configure alerts](https://redis.io/docs/latest/operate/rc/databases/monitor-performance/#configure-metric-alerts) for more information.", + "format": "int32", + "example": 80 + } + }, + "description": "Optional. Changes Redis database alert details." + }, + "LocalThroughput": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "Specify one of the selected cloud provider regions for the subscription." + }, + "writeOperationsPerSecond": { + "type": "integer", + "description": "Write operations for this region per second. Default: 1000 ops/sec", + "format": "int64", + "example": 1000 + }, + "readOperationsPerSecond": { + "type": "integer", + "description": "Read operations for this region per second. Default: 1000 ops/sec", + "format": "int64", + "example": 1000 + } + }, + "description": "Optional. Expected read and write throughput for this region." + }, + "PscEndpointUpdateRequest": { + "required": [ + "endpointId", + "pscServiceId", + "subscriptionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "endpointId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "gcpProjectId": { + "type": "string", + "description": "Google Cloud project ID.", + "example": "my-gcp-project" + }, + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" + }, + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" + }, + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" + }, + "action": { + "type": "string", + "description": "Action to perform on the endpoint.", + "enum": [ + "accept", + "reject" + ] + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Service Connect endpoint update request" + }, + "DatabaseSlowLogEntries": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DatabaseSlowLogEntry" + } + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "DatabaseSlowLogEntry": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "duration": { + "type": "integer", + "format": "int32" + }, + "arguments": { + "type": "string" + } + }, + "description": "Database slowlog entry" + }, + "ActiveActivePscEndpointUpdateRequest": { + "required": [ + "endpointId", + "pscServiceId", + "regionId", + "subscriptionId" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "pscServiceId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "endpointId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true, + "example": 27 + }, + "gcpProjectId": { + "type": "string", + "description": "Google Cloud project ID.", + "example": "my-gcp-project" + }, + "gcpVpcName": { + "type": "string", + "description": "Name of the Google Cloud VPC that hosts your application.", + "example": "my-vpc" + }, + "gcpVpcSubnetName": { + "type": "string", + "description": "Name of your VPC's subnet of IP address ranges.", + "example": "my-vpc-subnet" + }, + "endpointConnectionName": { + "type": "string", + "description": "Prefix used to create PSC endpoints in the consumer application VPC. Endpoint names appear in Google Cloud as endpoint name prefix + endpoint number.", + "example": "my-endpoint-connection" + }, + "action": { + "type": "string", + "description": "Action to perform on the endpoint.", + "enum": [ + "accept", + "reject" + ] + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Service Connect endpoint update request" + }, + "SubscriptionMaintenanceWindows": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "enum": [ + "manual", + "automatic" + ] + }, + "timeZone": { + "type": "string" + }, + "windows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MaintenanceWindow" + } + }, + "skipStatus": { + "$ref": "#/components/schemas/MaintenanceWindowSkipStatus" + } + } + }, + "FixedSubscriptionsPlan": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "size": { + "type": "number", + "format": "double" + }, + "datasetSize": { + "type": "number", + "format": "double" + }, + "sizeMeasurementUnit": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "region": { + "type": "string" + }, + "regionId": { + "type": "integer", + "format": "int32" + }, + "price": { + "type": "integer", + "format": "int32" + }, + "priceCurrency": { + "type": "string" + }, + "pricePeriod": { + "type": "string" + }, + "maximumDatabases": { + "type": "integer", + "format": "int32" + }, + "maximumThroughput": { + "type": "integer", + "format": "int32" + }, + "maximumBandwidthGB": { + "type": "integer", + "format": "int32" + }, + "availability": { + "type": "string" + }, + "connections": { + "type": "string" + }, + "cidrAllowRules": { + "type": "integer", + "format": "int32" + }, + "supportDataPersistence": { + "type": "boolean" + }, + "redisFlex": { + "type": "boolean" + }, + "supportInstantAndDailyBackups": { + "type": "boolean" + }, + "supportReplication": { + "type": "boolean" + }, + "supportClustering": { + "type": "boolean" + }, + "supportSsl": { + "type": "boolean" + }, + "customerSupport": { + "type": "string" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis Essentials subscription plan information", + "example": { + "id": 98273, + "name": "Cache 5GB", + "size": 5, + "sizeMeasurementUnit": "GB", + "provider": "AWS", + "region": "eu-west-1", + "regionId": 4, + "price": 77, + "priceCurrency": "USD", + "pricePeriod": "Month", + "maximumDatabases": 1, + "availability": "No replication", + "connections": "unlimited", + "cidrAllowRules": 4, + "supportDataPersistence": true, + "supportInstantAndDailyBackups": true, + "supportReplication": false, + "supportClustering": true, + "supportSsl": false, + "supportedAlerts": [ + "throughput-higher-than" + ], + "customerSupport": "Standard", + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/plans/16583", + "type": "GET" + } + ] + } + }, + "AccountACLRoles": { + "type": "object", + "properties": { + "accountId": { + "type": "integer", + "format": "int32" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "description": "Redis list of ACL roles in current account", + "example": { + "accountId": 1001, + "roles": [ + { + "id": 395, + "name": "role-name", + "redisRules": [ + { + "ruleId": 7, + "ruleName": "Full-Access", + "databases": [ + { + "subscriptionId": 126, + "databaseId": 1, + "databaseName": "DB-RCP-2-81-7" + } + ] + } + ], + "users": [], + "status": "error" + } + ] + } + }, + "tag": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Database tag key.", + "example": "environment" + }, + "value": { + "type": "string", + "description": "Database tag value.", + "example": "production" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database tag" + }, + "SubscriptionSpec": { + "required": [ + "regions" + ], + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Optional. Cloud provider. Default: 'AWS'", + "example": "AWS", + "enum": [ + "AWS", + "GCP" + ] + }, + "cloudAccountId": { + "type": "integer", + "description": "Optional. Cloud account identifier. Default: Redis internal cloud account (Cloud Account ID = 1). Use GET /cloud-accounts to list all available cloud accounts. Note: A subscription on Google Cloud can be created only with Redis internal cloud account.", + "format": "int32", + "example": 1 + }, + "regions": { + "type": "array", + "description": "The cloud provider region or list of regions (Active-Active only) and networking details.", + "items": { + "$ref": "#/components/schemas/SubscriptionRegionSpec" + } + }, + "resourceTags": { + "type": "array", + "description": "Optional. A list of resource tags to apply to the subscription. (max. 30 tags).", + "items": { + "$ref": "#/components/schemas/ResourceTag" + } + } + }, + "description": "Cloud provider, region, and networking details." + }, + "FixedDatabaseBackupRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "adhocBackupPath": { + "type": "string", + "description": "Optional. Manually backs up data to this location, instead of the set 'periodicBackupPath' location.", + "example": "s3://" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials database backup request message" + }, + "DatabaseVersionUpgradeStatus": { + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32" + }, + "targetRedisVersion": { + "type": "string" + }, + "progress": { + "type": "number", + "format": "double" + }, + "upgradeStatus": { + "type": "string", + "enum": [ + "in-progress", + "in-progress-recovery-pending", + "done", + "failed" + ] + } + } + }, + "DatabaseModuleSpec": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Redis advanced capability name. Use GET /database-modules for a list of available capabilities." + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "object", + "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", + "example": {} + }, + "description": "Optional. Redis advanced capability parameters. Use GET /database-modules to get the available capabilities and their parameters.", + "example": {} + } + }, + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default." + }, + "FixedSubscriptionCreateRequest": { + "required": [ + "name", + "planId" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "New Essentials subscription name.", + "example": "My new subscription" + }, + "planId": { + "type": "integer", + "description": "An Essentials plan ID. The plan describes the dataset size, cloud provider and region, and available database configuration options. Use GET /fixed/plans to get a list of available options.", + "format": "int32" + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", + "format": "int32" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Essentials subscription create request" + }, + "SubscriptionRegionNetworkingSpec": { + "type": "object", + "properties": { + "deploymentCIDR": { + "type": "string", + "description": "Optional. Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses. Default for single-region subscriptions: If using Redis internal cloud account, 192.168.0.0/24", + "example": "10.0.0.0/24" + }, + "vpcId": { + "type": "string", + "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format (for example: 'vpc-0125be68a4625884ad') and must exist within the hosting account.", + "example": "" + }, + "subnetIds": { + "type": "array", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "items": { + "type": "string", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account." + } + }, + "securityGroupId": { + "type": "string", + "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account." + } + }, + "description": "Optional. Cloud networking details, per region. Required if creating an Active-Active subscription." + }, + "SubscriptionResourceTagsUpdateRequest": { + "required": [ + "resourceTags" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "resourceTags": { + "type": "array", + "description": "List of resource tags to apply to the subscription. This will replace all existing tags.", + "items": { + "$ref": "#/components/schemas/ResourceTag" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Resource tags update request" + }, + "DatabaseTagsUpdateRequest": { + "required": [ + "tags" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "tags": { + "type": "array", + "description": "List of database tags.", + "items": { + "$ref": "#/components/schemas/tag" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Database tags update request message" + }, + "PrivateLinkConnectionsDisassociateRequest": { + "required": [ + "connections" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "connections": { + "type": "array", + "description": "List of connections to disassociate from the private link. Each connection must include associationId, type, and principalId.", + "items": { + "$ref": "#/components/schemas/PrivateLinkConnectionDisassociate" + } + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Private Link connections disassociate request" + }, + "AccountUsers": { + "type": "object", + "properties": { + "account": { + "type": "integer", + "format": "int32" + } + }, + "description": "RedisLabs list of users in current account", + "example": { + "account": 1001, + "users": [ + { + "id": 60192, + "name": "Clifford O'neill", + "email": "clifford.mail@gmail.com", + "role": "Viewer", + "userType": "Local", + "hasApiKey": false, + "options": { + "billing": false, + "emailAlerts": false, + "operationalEmails": false, + "mfaEnabled": false + } + } + ] + } + }, + "FixedDatabaseUpgradeRedisVersionRequest": { + "required": [ + "targetRedisVersion" + ], + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "targetRedisVersion": { + "type": "string", + "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", + "example": "7.4" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Upgrades the specified Essentials database to a later Redis version." + }, + "CrdbUpdatePropertiesRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "name": { + "type": "string", + "description": "Optional. Updated database name. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-database-example" + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, updating any resources required by the plan. When 'true': creates a read-only deployment plan and does not update any resources. Default: 'false'", + "example": false + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb.If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support Redis [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'" + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'.", + "example": false + }, + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections if it is not already required. If set to an empty string, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "deprecated": true + }, + "clientTlsCertificates": { + "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections. If set to an empty list, TLS client certificates will be removed and mTLS will not be required. TLS connection may still apply, depending on the value of 'enableTls'.", + "items": { + "$ref": "#/components/schemas/DatabaseCertificateSpec" + } + }, + "enableTls": { + "type": "boolean", + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. If enableTls is set to 'false' while mTLS is required, it will remove the mTLS requirement and erase previously provided clientTlsCertificates." + }, + "globalDataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in all regions that don't set local 'dataPersistence'.", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "globalPassword": { + "type": "string", + "description": "Optional. Changes the password used to access the database in all regions that don't set a local 'password'." + }, + "globalEnableDefaultUser": { + "type": "boolean", + "description": "Optional. When 'true', allows connecting to the database with the 'default' user in all regions that don't set local 'enableDefaultUser'. When 'false', only defined access control users can connect to the database." + }, + "globalSourceIp": { + "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']", + "items": { + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to whitelist in all regions that don't set local 'sourceIp' settings. If set, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: ['192.168.10.0/32', '192.168.12.0/24']" + } + }, + "globalAlerts": { + "type": "array", + "description": "Optional. Redis database alert settings in all regions that don't set local 'alerts'.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } + }, + "regions": { + "type": "array", + "description": "Optional. A list of regions and local settings to update.", + "items": { + "$ref": "#/components/schemas/LocalRegionProperties" + } + }, + "dataEvictionPolicy": { + "type": "string", + "description": "Optional. Data eviction policy.", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" ] }, - "additionalInfo": { + "autoMinorVersionUpgrade": { + "type": "boolean", + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above." + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active-Active database update local properties request message" + }, + "AclRedisRuleCreateRequest": { + "required": [ + "name", + "redisRule" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Redis ACL rule name.", + "example": "ACL-rule-example" + }, + "redisRule": { + "type": "string", + "description": "Redis ACL rule pattern. See [ACL syntax](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/configure-acls/#define-permissions-with-acl-syntax) to learn how to define rules.", + "example": "+set allkeys allchannels" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "ACL redis rule create request" + }, + "Cidr": { + "type": "object", + "properties": { + "cidrAddress": { "type": "string" } - } + }, + "description": "Optional. List of transit gateway attachment CIDRs.", + "example": [ + "10.10.10.0/24", + "10.10.20.0/24" + ] }, - "CloudTags": { + "SubscriptionRegionSpec": { + "required": [ + "region" + ], "type": "object", "properties": { - "links": { + "region": { + "type": "string", + "description": "Deployment region as defined by the cloud provider.", + "example": "us-east-1" + }, + "multipleAvailabilityZones": { + "type": "boolean", + "description": "Optional. Support deployment on multiple availability zones within the selected region. Default for Active-Active: matches the region's multi-AZ capability (true on multi-AZ regions, false on non-multi-AZ regions). Default for Pro / single-region: `false`.", + "example": false + }, + "preferredAvailabilityZones": { "type": "array", + "description": "Optional. List the zone ID(s) for your preferred availability zone(s) for the cloud provider and region. If ‘multipleAvailabilityZones’ is set to 'true', you must list three availability zones. Otherwise, list one availability zone.", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "string", + "description": "Optional. List the zone ID(s) for your preferred availability zone(s) for the cloud provider and region. If ‘multipleAvailabilityZones’ is set to 'true', you must list three availability zones. Otherwise, list one availability zone." } }, - "accountId": { - "type": "integer", - "format": "int32" + "networking": { + "$ref": "#/components/schemas/SubscriptionRegionNetworkingSpec" } }, - "description": "Redis list of database tags", - "example": { - "accountId": 40131, - "tags": [ - { - "key": "environment", - "value": "production", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [] - }, - { - "key": "owner", - "value": "Clifford O'neill", - "createdAt": "2024-05-21T20:02:21+02:00", - "updatedAt": "2024-06-21T20:02:21+02:00", - "links": [] - } - ], - "links": [ - { - "rel": "self", - "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags", - "type": "GET" - } - ] - } + "description": "The cloud provider region or list of regions (Active-Active only) and networking details." }, - "RedisVersion": { + "VpcPeeringCreateGcpRequest": { + "required": [ + "vpcNetworkName", + "vpcProjectUid" + ], "type": "object", "properties": { - "version": { + "provider": { "type": "string" }, - "eolDate": { + "vpcProjectUid": { + "type": "string", + "description": "VPC project ID.", + "example": "" + }, + "vpcNetworkName": { + "type": "string", + "description": "VPC network name.", + "example": "" + }, + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Vpc peering creation request message" + }, + "DatabaseCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", + "example": false + }, + "name": { + "type": "string", + "description": "Name of the database. Database name is limited to 40 characters or less and must include only letters, digits, and hyphens ('-'). It must start with a letter and end with a letter or digit.", + "example": "Redis-database-example" + }, + "protocol": { + "type": "string", + "description": "Optional. Database protocol. Only set to 'memcached' if you have a legacy application. Default: 'redis'", + "enum": [ + "redis", + "memcached" + ] + }, + "port": { + "type": "integer", + "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if not set.", + "format": "int32", + "example": 10000 + }, + "memoryLimitInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. Total memory in GB, including replication and other overhead. You cannot set both datasetSizeInGb and totalMemoryInGb.", + "format": "double", + "example": 1, + "deprecated": true + }, + "datasetSizeInGb": { + "minimum": 0.1, + "exclusiveMinimum": false, + "type": "number", + "description": "Optional. The maximum amount of data in the dataset for this database in GB. You cannot set both datasetSizeInGb and totalMemoryInGb. If ‘replication’ is 'true', the database’s total memory will be twice as large as the datasetSizeInGb. If ‘replication’ is false, the database’s total memory will be the datasetSizeInGb value.", + "format": "double", + "example": 1 + }, + "redisVersion": { + "type": "string", + "description": "Optional. If specified, redisVersion defines the Redis database version. If omitted, the Redis version will be set to the default version (available in 'GET /subscriptions/redis-versions')", + "example": "7.2" + }, + "autoMinorVersionUpgrade": { + "type": "boolean", + "description": "Optional. Automatically upgrades the database to newer minor versions within the same major release. Applies to version 8.4 and above. Default: true." + }, + "respVersion": { + "type": "string", + "description": "Optional. Redis Serialization Protocol version. Must be compatible with Redis version.", + "example": "resp3", + "enum": [ + "resp2", + "resp3" + ] + }, + "supportOSSClusterApi": { + "type": "boolean", + "description": "Optional. Support [OSS Cluster API](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#oss-cluster-api). Default: 'false'", + "example": false + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean", + "description": "Optional. If set to 'true', the database will use the external endpoint for OSS Cluster API. This setting blocks the database's private endpoint. Can only be set if 'supportOSSClusterAPI' is 'true'. Default: 'false'", + "example": false + }, + "dataPersistence": { + "type": "string", + "description": "Optional. Type and rate of data persistence in persistent storage. Default: 'none'", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "dataEvictionPolicy": { "type": "string", - "format": "date" + "description": "Optional. Data eviction policy. Default: 'volatile-lru'", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] }, - "isPreview": { - "type": "boolean" + "replication": { + "type": "boolean", + "description": "Optional. Sets database replication. Default: 'true'" }, - "isDefault": { - "type": "boolean" - } - } - }, - "AclRoleCreateRequest": { - "required": [ - "name", - "redisRules" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Database access role name.", - "example": "ACL-role-example" + "replicaOf": { + "type": "array", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380'].", + "deprecated": true, + "items": { + "type": "string", + "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI(s). Example: 'redis://user:password@host:port'. If the URI provided is a Redis Cloud database, only host and port should be provided. Example: ['redis://endpoint1:6379', 'redis://endpoint2:6380']." + } }, - "redisRules": { + "replica": { + "$ref": "#/components/schemas/ReplicaOfSpec" + }, + "throughputMeasurement": { + "$ref": "#/components/schemas/DatabaseThroughputSpec" + }, + "localThroughputMeasurement": { "type": "array", - "description": "A list of Redis ACL rules to assign to this database access role.", + "description": "Optional. Expected throughput per region for an Active-Active database. Default: 1000 read and write ops/sec for each region", "items": { - "$ref": "#/components/schemas/AclRoleRedisRuleSpec" + "$ref": "#/components/schemas/LocalThroughput" } }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "ACL role create request" - }, - "DatabaseBackupRequest": { - "type": "object", - "properties": { - "subscriptionId": { + "averageItemSizeInBytes": { "type": "integer", - "format": "int32", - "readOnly": true + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. Estimated average size in bytes of the items stored in the database. Default: 1000", + "format": "int64", + "deprecated": true }, - "databaseId": { + "ramPercentage": { "type": "integer", + "description": "Optional. Relevant only to ram-and-flash (also known as Redis-Flex/Auto-Tiering) subscriptions. The percentage of data to be stored in RAM. Must be between 10 and 50 in steps of 10 (10, 20, 30, 40, 50). Default: 20", "format": "int32", - "readOnly": true - }, - "regionName": { - "type": "string", - "description": "Required for Active-Active databases. Name of the cloud provider region to back up. When backing up an Active-Active database, you must back up each region separately." + "example": 20 }, - "adhocBackupPath": { + "periodicBackupPath": { "type": "string", - "description": "Optional. Manually backs up data to this location, instead of the set 'remoteBackup' location.", - "example": "s3://" + "description": "Optional. The path to a backup storage location. If specified, the database will back up every 24 hours to this location, and you can manually back up the database to this location at any time.", + "example": "s3://", + "deprecated": true }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Database backup request message" - }, - "ReplicaAsSourceEndpoints": { - "type": "object", - "properties": { - "public": { - "type": "string", - "description": "Public cluster endpoint that can be used as source for replication" + "remoteBackup": { + "$ref": "#/components/schemas/DatabaseBackupConfig" }, - "private": { - "type": "string", - "description": "Private cluster endpoint that can be used as source for replication" - } - }, - "description": "Endpoints to use when configuring another database to replicate from this database (Make sure to use this instead of the dynamic endpoints)." - }, - "DataPersistenceOptions": { - "type": "object", - "properties": { - "dataPersistence": { + "sourceIp": { "type": "array", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'", "items": { - "$ref": "#/components/schemas/DataPersistenceEntry" + "type": "string", + "description": "Optional. List of source IP addresses or subnet masks to allow. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example: '['192.168.10.0/32', '192.168.12.0/24']'" } }, - "links": { + "clientSslCertificate": { + "type": "string", + "description": "Optional. A public key client TLS/SSL certificate with new line characters replaced with '\\n'. If specified, mTLS authentication will be required to authenticate user connections. Default: 'null'", + "deprecated": true + }, + "clientTlsCertificates": { "type": "array", + "description": "Optional. A list of client TLS/SSL certificates. If specified, mTLS authentication will be required to authenticate user connections.", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "example": { - "dataPersistence": [ - { - "name": "none", - "description": "None" - }, - { - "name": "aof-every-1-second", - "description": "Append only file (AOF) - fsync every 1 second" - }, - { - "name": "aof-every-write", - "description": "Append only file (AOF) - fsync every write" - }, - { - "name": "snapshot-every-1-hour", - "description": "Snapshot every 1 hour" - }, - { - "name": "snapshot-every-6-hours", - "description": "Snapshot every 6 hour" - }, - { - "name": "snapshot-every-12-hours", - "description": "Snapshot every 12 hour" - } - ], - "links": [ - { - "rel": "self", - "href": "https://api-cloudapi.qa.redislabs.com/v1/data-persistence", - "type": "GET" + "$ref": "#/components/schemas/DatabaseCertificateSpec" } - ] - } - }, - "DatabaseTagCreateRequest": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Database tag key.", - "example": "environment" - }, - "value": { - "type": "string", - "description": "Database tag value.", - "example": "production" - }, - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Database tag" - }, - "DatabaseBackupConfig": { - "type": "object", - "properties": { - "active": { + "enableTls": { "type": "boolean", - "description": "Optional. Determine if backup should be active. Default: null" + "description": "Optional. When 'true', requires TLS authentication for all connections - mTLS with valid clientTlsCertificates, regular TLS when clientTlsCertificates is not provided. Default: 'false'" }, - "interval": { + "password": { "type": "string", - "description": "Required when active is 'true'. Defines the interval between backups. Format: 'every-x-hours', where x is one of 24, 12, 6, 4, 2, or 1. Example: \"every-4-hours\"" + "description": "Optional. Password to access the database. If not set, a random 32-character alphanumeric password will be automatically generated. Can only be set if 'protocol' is 'redis'." }, - "backupInterval": { + "saslUsername": { "type": "string", - "readOnly": true, - "enum": [ - "EVERY_24_HOURS", - "EVERY_12_HOURS", - "EVERY_6_HOURS", - "EVERY_4_HOURS", - "EVERY_2_HOURS", - "EVERY_1_HOURS" - ] + "description": "Optional. Memcached (SASL) Username to access the database. If not set, the username will be set to a 'mc-' prefix followed by a random 5 character long alphanumeric. Can only be set if 'protocol' is 'memcached'." }, - "timeUTC": { + "saslPassword": { "type": "string", - "description": "Optional. Hour when the backup starts. Available only for \"every-12-hours\" and \"every-24-hours\" backup intervals. Specified as an hour in 24-hour UTC time. Example: \"14:00\" is 2 PM UTC." + "description": "Optional. Memcached (SASL) Password to access the database. If not set, a random 32 character long alphanumeric password will be automatically generated. Can only be set if 'protocol' is 'memcached'." }, - "databaseBackupTimeUTC": { - "type": "string", - "readOnly": true, - "enum": [ - "HOUR_ONE", - "HOUR_TWO", - "HOUR_THREE", - "HOUR_FOUR", - "HOUR_FIVE", - "HOUR_SIX", - "HOUR_SEVEN", - "HOUR_EIGHT", - "HOUR_NINE", - "HOUR_TEN", - "HOUR_ELEVEN", - "HOUR_TWELVE" - ] + "alerts": { + "type": "array", + "description": "Optional. Redis database alert details.", + "items": { + "$ref": "#/components/schemas/DatabaseAlertSpec" + } }, - "storageType": { - "type": "string", - "description": "Required when active is 'true'. Type of storage to host backup files. Can be \"aws-s3\", \"google-blob-storage\", \"azure-blob-storage\", or \"ftp\". See [Set up backup storage locations](https://redis.io/docs/latest/operate/rc/databases/back-up-data/#set-up-backup-storage-locations) to learn how to set up backup storage locations." + "modules": { + "type": "array", + "description": "Optional. Redis advanced capabilities (also known as modules) to be provisioned in the database. Use GET /database-modules to get a list of available advanced capabilities. Don't specify modules for database versions 8 and above. All capabilities are bundled in the database by default.", + "items": { + "$ref": "#/components/schemas/DatabaseModuleSpec" + } }, - "backupStorageType": { + "shardingType": { "type": "string", - "readOnly": true, + "description": "Optional. Database [Hashing policy](https://redis.io/docs/latest/operate/rc/databases/configuration/clustering/#manage-the-hashing-policy).", "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" + "default-regex-rules", + "custom-regex-rules", + "redis-oss-hashing" ] }, - "storagePath": { + "commandType": { "type": "string", - "description": "Required when active is 'true'. Path to the backup storage location." - } - }, - "description": "Optional. Changes Remote backup configuration details." - }, - "DynamicEndpoints": { - "type": "object", - "properties": { - "public": { - "type": "string" + "readOnly": true }, - "private": { - "type": "string" + "queryPerformanceFactor": { + "type": "string", + "description": "Optional. The query performance factor adds extra compute power specifically for search and query databases. You can increase your queries per second by the selected factor.", + "example": "2x" } - } + }, + "description": "Database definition" }, - "CrdbFlushRequest": { + "Region": { "type": "object", "properties": { - "subscriptionId": { + "id": { "type": "integer", - "format": "int32", - "readOnly": true + "format": "int32" }, - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "name": { + "type": "string" }, - "commandType": { + "provider": { "type": "string", - "readOnly": true + "enum": [ + "AWS", + "GCP" + ] } }, - "description": "Active-Active database flush request message" + "description": "RedisLabs region information" }, - "MaintenanceWindowSpec": { - "required": [ - "days", - "durationInHours", - "startHour" - ], + "TasksStateUpdate": { "type": "object", "properties": { - "startHour": { - "type": "integer", - "description": "Starting hour of the maintenance window. Can be between '0' (12 AM in the deployment region's local time) and '23' (11 PM in the deployment region's local time).", - "format": "int32", - "example": 12 - }, - "durationInHours": { - "type": "integer", - "description": "The duration of the maintenance window in hours. Can be between 4-24 hours (or 8-24 hours if using 'ram-and-flash').", - "format": "int32", - "example": 8 - }, - "days": { + "tasks": { "type": "array", - "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", - "example": [ - "Monday", - "Wednesday" - ], "items": { - "type": "string", - "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", - "example": "[\"Monday\",\"Wednesday\"]" + "$ref": "#/components/schemas/TaskStateUpdate" } } - }, - "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided." + } }, - "ActiveActiveVpcPeeringCreateGcpRequest": { - "required": [ - "sourceRegion", - "vpcNetworkName", - "vpcProjectUid" - ], + "AclUserUpdateRequest": { "type": "object", "properties": { - "provider": { - "type": "string" - }, - "subscriptionId": { + "userId": { "type": "integer", "format": "int32", "readOnly": true }, - "sourceRegion": { - "type": "string", - "description": "Name of region to create a VPC peering from." - }, - "vpcProjectUid": { + "role": { "type": "string", - "description": "VPC project ID.", - "example": "" + "description": "Optional. Changes the ACL role assigned to the user. Use GET '/acl/roles' to get a list of database access roles.", + "example": "ACL-role-example" }, - "vpcNetworkName": { + "password": { "type": "string", - "description": "VPC network name.", - "example": "" + "description": "Optional. Changes the user's database password.", + "example": "ab123AB$%^" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "VPC peering creation request message" + "description": "ACL user update request" }, - "SubscriptionCreateRequest": { + "PrivateLinkConnectionDisassociate": { "required": [ - "cloudProviders", - "databases" + "associationId", + "principalId", + "type" ], "type": "object", "properties": { - "name": { + "associationId": { "type": "string", - "description": "Optional. New subscription name.", - "example": "My new subscription" + "description": "Resource share association ID", + "example": "rsa-12345678" }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", - "example": false + "connectionId": { + "type": "string", + "description": "VPC endpoint connection ID", + "example": "vpce-con-12345678" }, - "deploymentType": { + "type": { "type": "string", - "description": "Optional. When 'single-region' or not set: Creates a single region subscription. When 'active-active': creates an Active-Active (multi-region) subscription.", - "example": "single-region", - "enum": [ - "single-region", - "active-active" - ] + "description": "Type of the connection", + "example": "vpc_endpoint" }, - "paymentMethod": { + "principalId": { "type": "string", - "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", - "enum": [ - "credit-card", - "marketplace" - ] + "description": "Principal ID that owns the connection, e.g. AWS account ID", + "example": "123456789012" + } + }, + "description": "Private link connection information for disassociation request" + }, + "ProcessorResponse": { + "type": "object", + "properties": { + "resourceId": { + "type": "integer", + "format": "int32" }, - "paymentMethodId": { + "additionalResourceId": { "type": "integer", - "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", "format": "int32" }, - "memoryStorage": { - "type": "string", - "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash' (also known as Auto Tiering). Default: 'ram'", - "example": "ram", - "enum": [ - "ram", - "ram-and-flash" - ] + "resource": { + "type": "object" }, - "persistentStorageEncryptionType": { + "error": { "type": "string", - "description": "Optional. Persistent storage encryption secures data at rest for database persistence. By default, disk storage is encrypted by keys managed by the cloud provider. Use 'customer-managed-key' if you want to use self-managed persistent storage encryption keys. Default: 'cloud-provider-managed-key'", - "example": "cloud-provider-managed-key", "enum": [ - "cloud-provider-managed-key", - "customer-managed-key" + "UNAUTHORIZED", + "ACCOUNT_POC_INACTIVE_PENDING", + "CLOUD_ACCOUNT_NOT_ACTIVE", + "CLOUD_ACCOUNT_NOT_FOUND", + "CLOUD_ACCOUNT_USED", + "CLOUD_ACCOUNT_INVALID_CREDS", + "CLOUD_ACCOUNT_NAME_EXISTS", + "CLOUD_ACCOUNT_ACCESS_KEY_EXISTS", + "CLOUD_ACCOUNT_PERMISSION_FAILED", + "CLOUD_ACCOUNT_ALLOCATION_FAILURE", + "NOT_KNOWN_CLOUD_PROVIDER", + "MULTIPLE_CLOUD_PROVIDERS_NOT_SUPPORTED", + "SUBSCRIPTION_NOT_ACTIVE", + "SUBSCRIPTION_CONTAINS_NON_ACTIVE_DATABASE", + "SUBSCRIPTION_NOT_FOUND", + "SUBSCRIPTION_IN_USE", + "SUBSCRIPTION_CA_PROVIDER_MISMATCH", + "SUBSCRIPTION_NETWORKING_MISSING", + "NETWORKING_CIDR_MISSING", + "SUBSCRIPTION_INVALID_CIDR", + "NETWORKING_SECURITY_GROUP_MISSING", + "NETWORKING_SUBNET_IDS_MISSING", + "NETWORKING_VPC_ID_MISSING", + "NETWORKING_CIDR_IS_NOT_SUPPORTED", + "NETWORKING_VPC_WITH_SUBNETS_AND_SECURITY_GROUP_IS_NOT_SUPPORTED", + "NETWORKING_VPC_WITH_SUBNETS_AND_SECURITY_GROUP_IS_NOT_SUPPORTED_FOR_INTERNAL_CLOUD_ACCOUNT", + "INVALID_NUMBER_OF_SUBNET_IDS", + "SUBSCRIPTION_PI_NOT_FOUND", + "SUBSCRIPTION_INVALID_REGION_NAME", + "SUBSCRIPTION_INVALID_REGION_ID", + "SUBSCRIPTION_BAD_PREFERRED_AZ_SIZE", + "SUBSCRIPTION_REGION_DOES_NOT_SUPPORT_MULTI_AZ", + "SUBSCRIPTION_AA_NON_MAZ_REGION_NOT_SUPPORTED", + "SUBSCRIPTION_PREFERRED_AZ_INVALID_VALUE", + "SUBSCRIPTION_PREFERRED_AZ_MUST_BE_DEFINED_ONCE", + "SUBSCRIPTION_PREFERRED_AZ_IS_DISABLED", + "SUBSCRIPTION_MUST_HAVE_AT_LEAST_ONE_DATABASE", + "SUBSCRIPTION_REDIS_VERSION_INVALID_VALUE", + "SUBSCRIPTION_REDIS_VERSION_CONFLICT", + "ACTIVE_ACTIVE_SUBSCRIPTION_PREVIEW_REDIS_VERSION_IS_NOT_SUPPORTED", + "SUBSCRIPTION_GCP_ALLOW_ONLY_INTERNAL", + "CLUSTER_UNDER_MAINTENANCE", + "ACTIVE_ACTIVE_SUBSCRIPTION_IS_NOT_SUPPORTED", + "RESOURCE_TAGS_EXCEEDS_MAXIMUM_COUNT", + "RESOURCE_TAG_KEY_EXCEEDS_MAXIMUM_LENGTH", + "RESOURCE_TAG_VALUE_EXCEEDS_MAXIMUM_LENGTH", + "RESOURCE_TAGS_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "RESOURCE_TAGS_NOT_ALLOWED", + "RESOURCE_TAGS_NAME_NOT_ALLOWED", + "RESOURCE_TAGS_EMPTY_KEY", + "RESOURCE_TAGS_DUPLICATE_KEY", + "RESOURCE_TAGS_MISSING_VALUE", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_IS_NOT_SUPPORTED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_USAGE_PERMISSIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_GET_KEY_PERMISSIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_GET_IAM_POLICY_PERMISSIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DISABLED_KEY", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_KEY_NAME", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_WRONG_REGION", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_NOT_ALLOWED_WITH_CLOUD_PROVIDER_MANAGED_KEY", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REQUIRED_FOR_EXTERNAL_CLOUD_ACCOUNT", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DELETION_GRACE_PERIOD_REQUIRED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_NUMBER_OF_KEYS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REGION_NOT_REQUIRED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_REGION_REQUIRED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_MISSING_KEYS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_REGION", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_DUPLICATE_REGIONS", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_INVALID_FORMAT", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_UPDATE_IS_NOT_SUPPORTED", + "CUSTOMER_MANAGED_PERSISTENT_STORAGE_ENCRYPTION_KEY_SUBSCRIPTION_INVALID_STATUS", + "ACTIVE_ACTIVE_CREATE_A_REGION_CUSTOMER_MANAGED_KEY_RESOURCE_NAME_SUBSCRIPTION_IS_NOT_CUSTOMER_MANAGED", + "ACTIVE_ACTIVE_CREATE_A_REGION_CUSTOMER_MANAGED_KEY_RESOURCE_NAME_IS_NOT_SET", + "PLANNED_SUBSCRIPTION_INVALID_PLAN_ID", + "PLANNER_TIMEOUT", + "PLANNER_FAILURE", + "PLANNER_NOT_ENOUGH_AZS", + "PLANNER_INVALID_INSTANCE_TYPE_PER_AZ", + "PLANNER_MODULE_PLAN_CLUSTERING_ERROR", + "PLANNER_MODULE_PLAN_RESHARDING_ERROR", + "PLANNER_INVALID_PLAN", + "PLANNER_INVALID_SIZE", + "PLANNER_INVALID_NUMBER", + "PLANNER_INVALID_THROUGHPUT", + "PROVISION_FAILURE", + "DATABASE_NOT_ACTIVE", + "DATABASE_NOT_FOUND", + "DATABASE_SUBSCRIPTION_MISMATCH", + "DATABASE_CANT_EDIT_THROUGHPUT_BY", + "DATABASE_INVALID_SHARDS_COUNT", + "DATABASE_CONTAIN_MEMCACHED_USERNAME", + "DATABASE_CONTAIN_MEMCACHED_PASSWORD", + "DATABASE_SUBSCRIPTION_IN_PENDING_STATUS", + "DATABASE_THROUGHPUT_TOO_BIG", + "DATABASE_INVALID_THROUGHPUT_INCREMENT", + "DATABASE_MODULE_NOT_SUPPORTING_SHARD_THROUGHPUT_OPTION", + "DATABASE_MODULE_NOT_SUPPORTED", + "DATABASE_QUERY_PERFORMANCE_FACTOR_INVALID_VALUE", + "DATABASE_QUERY_PERFORMANCE_FACTOR_SEARCH_IS_REQUIRED", + "DATABASE_QUERY_PERFORMANCE_FACTOR_IS_NOT_SUPPORTED", + "DATABASE_QUERY_PERFORMANCE_FACTOR_IS_NOT_SUPPORTED_ON_ACTIVE_ACTIVE", + "REDISEARCH_SUPPORTS_ONLY_OPERATIONS_PER_SECOND_AS_THROUGHPUT_MEASUREMENT", + "REDIS_GRAPH_SUPPORTS_ONLY_OPS_PER_SECOND_AS_THROUGHPUT_MEASUREMENT", + "DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", + "DATABASE_RESP_VERSION_IS_NOT_SUPPORTED_ON_CREATE_SUBSCRIPTION", + "DATABASE_ROF_NOT_SUPPORTED", + "DATABASE_REDISGRAPH_OVERSIZED", + "DATABASE_BACKUP_NOT_SUPPORTED", + "DATABASE_EVICTION_NOT_SUPPORTED", + "DATABASE_AOF_NOT_SUPPORTED", + "DATABASE_REPLICA_OF_NOT_SUPPORTED", + "DATABASE_SNAPSHOT_NOT_SUPPORTED", + "DATABASE_CLUSTERING_NOT_SUPPORTED", + "DATABASE_INVALID_THREAD_NUMBER", + "DATABASE_HASH_NOT_SUPPORTED", + "DATABASE_RESHARD_NOT_SUPPORTED", + "DATABASE_FEATURE_NOT_SUPPORTED", + "DATABASE_NAME_EXISTS", + "DATABASE_NAME_DUPLICATE", + "DATABASE_INVALID_NAME", + "DATABASE_NAME_TOO_LONG", + "DATABASE_SIZE_TOO_SMALL", + "DATABASE_SIZE_TOO_BIG", + "DATABASE_SIZE_LIMIT_NOT_DEFINED", + "DATABASE_SIZE_LIMIT_INVALID_TOO_MANY_MEMORY_SPECIFICATIONS", + "DATABASE_PASSWORD_IS_BLANK", + "DATABASE_PASSWORD_IS_TOO_LONG", + "DATABASE_REDIS_SEARCH_MODULE_VALUE_IS_NOT_INTEGER", + "DATABASE_REDIS_SEARCH_MODULE_VALUE_NOT_IN_RANGE", + "DATABASE_MODULE_MUST_BE_DEFINED_ONCE", + "DATABASE_MEMCACHED_CONTAINS_MODULES", + "DATABASE_MEMCACHED_NOT_SUPPORT_OSS_CLUSTER_API", + "REDIS_ON_FLASH_DATABASE_MEMCACHED_PROTOCOL_IS_NOT_ALLOWED", + "DATABASE_MEMCACHED_CONTAINS_REDIS_PASSWORD", + "DATABASE_MEMCACHED_CONTAINS_REDIS_DEFAULT_USER", + "DATABASE_MEMCACHED_SASL_USERNAME_IS_BLANK", + "DATABASE_MEMCACHED_SASL_PASSWORD_IS_BLANK", + "DATABASE_MEMCACHED_SASL_PASSWORD_MAX_LENGTH", + "DATABASE_REDIS_FLEX_CONTAINS_MODULES", + "DATABASE_AVERAGE_ITEM_SIZE_NOT_ALLOWED", + "DATABASE_RAM_PERCENTAGE_NOT_ALLOWED", + "DATABASE_RAM_PERCENTAGE_NOT_SUPPORTED", + "DATABASE_RAM_PERCENTAGE_IS_INVALID", + "DATABASE_AVERAGE_ITEM_SIZE_IS_DEPRECATED", + "DATABASE_MEMORY_LIMIT_IS_INVALID_FOR_ROF", + "DATABASE_DATASET_SIZE_IS_INVALID_FOR_ROF", + "DATABASE_SIZE_SMALLER_THAN_USAGE", + "DATABASE_USAGE_EXCEEDS_GLOBAL_LIMIT", + "DATABASE_USAGE_EXCEEDS_LOCAL_LIMIT", + "DATABASE_INVALID_CERT", + "DATABASE_EXPIRED_CERT", + "DATABASE_MISSING_CERT", + "DATABASE_CLIENT_SSL_CERTIFICATE_DEPRECATED", + "DATABASE_CLIENT_SSL_CERTIFICATE_MORE_THAN_1_ACTIVE", + "DATABASE_SIP_OVER_LIMIT", + "DATABASE_INVALID_SIP", + "DATABASE_INVALID_SIP_FREE_PLAN", + "DATABASE_INVALID_ALERTS", + "DATABASE_INVALID_MODULE", + "DATABASE_INVALID_MODULE_PARAMETER", + "DATABASE_INVALID_MODULE_PARAMETER_VALUE", + "DATABASE_EXPLICIT_MODULES_NOT_SUPPORTED_FOR_THIS_REDIS_VERSION", + "DATABASE_INVALID_ALERT_VALUE", + "DATABASE_SHARDING_TYPE_IS_IMMUTABLE", + "DATABASE_SHARDING_TYPE_IS_NOT_SUPPORTED", + "DATABASE_REGEX_RULES_NO_CLUSTERING", + "DATABASE_REGEX_RULES_CHANGES_BLOCKED", + "DATABASE_OSS_CLUSTER_NOT_SUPPORTED", + "DATABASE_EXTERNAL_ENDPOINT_WITHOUT_OSS_CLUSTER", + "CUSTOM_REGEX_RULES_IS_NOT_ALLOWED_WITHOUT_ENABLE_DATABASE_CLUSTERING_IS_TRUE", + "DATABASE_OSS_CLUSTER_CUSTOM_REGEX_NOT_SUPPORTED", + "DATABASE_OSS_CLUSTER_REPLICA_NOT_SUPPORTED", + "DATABASE_REPLICA_OF_PROPERTY_DEPRECATED", + "DATABASE_REPLICA_PER_SOURCE_OVER_LIMIT", + "DATABASE_REPLICA_CYCLE", + "DATABASE_INVALID_REPLICA", + "DATABASE_UNSUPPORTED_REPLICA_OF_REDIS_FLEX", + "DATABASE_REPLICAS_OVER_LIMIT", + "DATABASE_BACKUP_DISABLED", + "DATABASE_BACKUP_FAILED", + "DATABASE_BACKUP_NOT_CONFIGURED", + "DATABASE_INVALID_BACKUP_PATH", + "DATABASE_INVALID_BACKUP_INTERVAL", + "DATABASE_INVALID_TOO_MANY_BACKUP_SPECIFICATIONS", + "DATABASE_INVALID_BACKUP_STORAGE_TYPE", + "DATABASE_INVALID_IMPORT_SOURCE_TYPE", + "DATABASE_INVALID_BACKUP_TIME_UTC", + "DATABASE_INVALID_BACKUP_INTERVAL_AND_TIME_UTC_MISMATCH", + "DATABASE_INVALID_BACKUP_PATH_USED_BY_ANOTHER_ACCOUNT", + "DATABASE_INVALID_BACKUP_CONFIGURATION", + "DATABASE_INVALID_REGEX_RULES", + "DATABASE_INVALID_QUANTITY", + "DATABASE_REPLICA_OF_VERSION_NOT_COMPATIBLE", + "DATABASE_REPLICA_OF_SOURCE_INCOMPATIBLE", + "DATABASE_IMPORT_FAILED", + "DATABASE_IMPORT_FROM_NON_OSS", + "DATABASE_IMPORT_SOURCE_NOT_FOUND", + "DUPLICATE_DATABASE_IMPORT_SOURCE_PATH", + "DATABASE_IMPORT_WRONG_SIZE", + "DATABASE_IMPORT_URI_NOT_PROVIDED", + "DATABASE_IMPORT_MULTIPLE_REDIS_SOURCES", + "DATABASE_IMPORT_REDIS_BAD_URI", + "DATABASE_REPLICA_OF_BAD_URI", + "DATABASE_IMPORT_S3_BAD_URI", + "DATABASE_IMPORT_HTTP_BAD_URI", + "DATABASE_IMPORT_FTP_BAD_URI", + "DATABASE_IMPORT_AZURE_BAD_URI", + "DATABASE_IMPORT_GCS_BAD_URI", + "DATABASE_IMPORT_NOT_ALLOWED", + "DATABASE_PORT_INVALID_VALUE", + "DATABASE_PORT_IS_UNAVAILABLE", + "DATABASE_CUSTOM_PORT_NOT_SUPPORTED", + "DATABASE_CUSTOM_PORT_NOT_UNIQUE", + "DATABASE_AVERAGE_ITEM_SIZE_INVALID_VALUE", + "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED", + "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED_FOR_REGION", + "DATABASE_REDIS_VERSION_IS_NOT_SUPPORTED_FOR_MEMCACHED", + "DATABASE_REDIS_VERSION_IS_REQUIRED", + "DATABASE_REDIS_VERSION_INVALID_VALUE", + "INCOMPATIBLE_TF_PROVIDER", + "DESIRED_SOFTWARE_VERSION_IS_NOT_SUPPORTED", + "CONNECTIVITY_REQUESTS_ON_CUSTOMER_MANAGED_VPC_SUBSCRIPTION", + "VPC_PEERING_NOT_ACTIVE", + "VPC_PEERING_GENERAL_ERROR", + "VPC_PEERING_INVALID_ACCOUNT", + "VPC_PEERING_INVALID_VPC", + "VPC_PEERING_INVALID_CIDR", + "VPC_PEERING_CIDR_IS_MISSING", + "VPC_PEERING_TOO_MANY_CIDR_SPECIFICATIONS", + "VPC_PEERING_INVALID_REGION", + "VPC_PEERING_ALREADY_EXIST", + "VPC_PEERING_NOT_FOUND", + "VPC_PEERING_INVALID_PROJECT", + "VPC_PEERING_CLUSTER_NOT_ACTIVE", + "VPC_PEERING_CIDR_OVERLAP", + "VPC_PEERING_BELONGS_TO_DIFFERENT_CLOUD_PROVIDER", + "VPC_PEERING_IS_NOT_KNOWN_CLOUD_PROVIDER", + "CREATING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "UPDATING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "DELETING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "DELETING_AN_ACTIVE_ACTIVE_VPC_PEERING_IS_NOT_ALLOWED_FOR_A_SUBSCRIPTION_WITH_NO_VPC_PEERINGS", + "ACTIVE_ACTIVE_VPC_PEERING_NOT_FOUND", + "VPC_PEERING_MULTIPLE_CIDRS_IS_DISABLED", + "TGW_ACCEPTING_AN_ACTIVE_ACTIVE_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "TGW_REJECTING_AN_ACTIVE_ACTIVE_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "TGW_ACCEPTING_A_FLEXIBLE_SUBSCRIPTION_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "TGW_REJECTING_A_FLEXIBLE_SUBSCRIPTION_TGW_RESOURCE_SHARE_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "TGW_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "TGW_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "TGW_UPDATING_AN_ACTIVE_ACTIVE_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "TGW_CREATING_A_FLEXIBLE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "TGW_UPDATING_A_FLEXIBLE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "TGW_DELETING_A_FLEXIBLE_SUBSCRIPTION_TGW_ATTACHMENT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "TGW_CLOUD_PROVIDER_IS_NOT_SUPPORTED", + "TGW_RESOURCE_SHARE_DOES_NOT_EXIST", + "TGW_DOES_NOT_EXIST", + "TGW_ATTACHMENT_DOES_NOT_EXIST", + "TGW_ATTACHMENT_IS_NOT_ACTIVE", + "TGW_ATTACHMENT_CIDRS_INVALID_LENGTH", + "TGW_ATTACHMENT_CIDRS_ARE_THE_SAME_AS_EXISTING_ONES", + "TGW_ATTACHMENT_CIDRS_REQUEST_CONTAINS_DUPLICATES", + "TGW_REGION_DOES_NOT_EXIST", + "TGW_GETTING_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "TGW_GETTING_ACTIVE_ACTIVE_SUBSCRIPTION_TGW_INVITATIONS_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "TGW_GETTING_SINGLE_REGION_TGWS_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "TGW_GETTING_SINGLE_REGION_TGW_INVITATIONS_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "PSC_ENDPOINT_INVALID_GCP_PROJECT_ID", + "PSC_ENDPOINT_INVALID_VPC_NAME", + "PSC_ENDPOINT_INVALID_VPC_SUBNET_NAME", + "PSC_ENDPOINT_INVALID_CONNECTION_NAME", + "PSC_SERVICE_ALREADY_EXISTS", + "PSC_ENDPOINT_ALREADY_EXISTS", + "PSC_CLOUD_PROVIDER_IS_NOT_SUPPORTED", + "PSC_GET_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINTS_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "PSC_GET_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PSC_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "PSC_CREATING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PSC_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "PSC_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PSC_CREATING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PSC_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "PSC_CREATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_IS_NOT_SUPPORTED", + "PSC_UPDATING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PSC_UPDATING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "PSC_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PSC_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_SERVICE_CONNECT_ENDPOINT_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "PSC_UPDATE_ENDPOINT_REQUEST_ACTION_INVALID_VALUE", + "PSC_UPDATE_ENDPOINT_REQUEST_CANNOT_HAVE_BOTH_ACTION_AND_OTHER_FIELDS", + "PSC_UPDATE_ENDPOINT_REQUEST_CANNOT_UPDATE_INITIALIZED_ENDPOINT", + "PSC_SERVICE_NOT_FOUND", + "PSC_ENDPOINT_NOT_FOUND", + "PSC_ENDPOINT_NOT_ACTIVE", + "PSC_ENDPOINT_NOT_CREATED_OR_DELETED", + "PSC_ENDPOINT_CANNOT_BE_DELETED_WITHOUT_DELETION_SCRIPT", + "PSC_SERVICE_CANNOT_DELETE_SERVICE_WITH_ACTIVE_ENDPOINTS", + "PSC_SERVICE_NOT_ACTIVE", + "PSC_ENDPOINT_SCRIPT_FAILED_TO_PARSE", + "CIDR_WHITELIST_GENERAL_ERROR", + "CIDR_WHITELIST_INVALID_CIDRS", + "CIDR_WHITELIST_INVALID_SG", + "CIDR_WHITELIST_LIMIT_EXCEEDED", + "CIDR_WHITELIST_DUPLICATE_CIDRS", + "CIDR_WHITELIST_DUPLICATE_SG", + "CIDR_WHITELIST_NOT_ALLOWED", + "CLIENT_PUBLIC_ACCESS_INVALID_SOURCE_IPS", + "CLIENT_PUBLIC_ACCESS_NOT_SUPPORTED", + "CLIENT_PUBLIC_ACCESS_ALREADY_SET", + "CLIENT_PUBLIC_ACCESS_ON_NON_HOSTED", + "AWS_ERROR_INSTANCE_LIMIT_EXCEEDED", + "AWS_ERROR_VPC_LIMIT_EXCEEDED", + "AWS_ERROR_INSUFFICIENT_INSTANCE_CAPACITY", + "AWS_ERROR_VOLUME_LIMIT_EXCEEDED", + "AWS_ERROR_MISMATCHING_CIDR", + "AWS_ERROR_CONFLICTING_CIDR", + "AWS_ERROR_VPC_DOES_NOT_EXIST", + "AWS_ERROR_EXISTING_VPC_EQUAL_TO_REQUESTED", + "PAYMENT_INFO_NOT_PROVIDED", + "PAYMENT_INFO_EXPIRED", + "PAYMENT_INFO_NOT_ALLOWED_IN_GCP_ACCOUNT", + "CLOUD_PROVIDER_IS_NOT_GCP_IN_GCP_ACCOUNT", + "PAYMENT_INFO_NOT_ALLOWED_IN_CONTRACT_ASSOCIATED_ACCOUNT", + "PAYMENT_INFO_CHANGE_PROHIBITED_FOR_PRO_UNDER_CONTRACT", + "LOCAL_THROUGHPUT_READ_AND_WRITE_OPERATIONS_PER_SECOND_VALUES_MUST_BE_IN_INCREMENTS_OF_500_OR_MINIMUM", + "MISSING_REGIONS_BETWEEN_CLOUD_PROVIDERS_AND_DATABASES_LOCAL_THROUGHPUT_MEASUREMENTS", + "MISSING_REGIONS_BETWEEN_LOCAL_THROUGHPUT_MEASUREMENTS_AND_SUBSCRIPTION_REGIONS", + "CRDB_ACTIVE_ACTIVE_MISSING_LOCAL_THROUGHPUT_MEASUREMENT", + "CRDB_ACTIVE_ACTIVE_REGIONS_MUST_BE_DEFINED_ONCE", + "ACTIVE_ACTIVE_CREATE_A_REGION_MUST_CONTAIN_DATABASE_SPEC_TO_ALL_CRDBS_IN_SUBSCRIPTION", + "ACTIVE_ACTIVE_CREATE_A_REGION_MUST_CONTAIN_LOCAL_THROUGHPUT_MEASUREMENT_IN_DATABASE_SPEC", + "ACTIVE_ACTIVE_CREATE_A_REGION_MUST_BE_DEFINED_ONCE_PER_DATABASE", + "ACTIVE_ACTIVE_CREATE_A_REGION_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", + "TOO_MANY_LOCAL_THROUGHPUT_MEASUREMENTS_DEFINED_FOR_SPECIFIED_ACTIVE_ACTIVE_SUBSCRIPTION", + "ACTIVE_ACTIVE_RAM_AND_FLASH_MEMORY_STORAGE_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_MODULE_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_MODULES_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_FOR_GCP_ACCOUNT_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_ALERT_NOT_SUPPORTED", + "FLEXIBLE_DATABASE_ALERT_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_REPLICA_OF_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_PERIODIC_BACK_UP_PATH_NOT_ALLOWED", + "ACTIVE_ACTIVE_CHANGE_REQUEST_PLANNING_FAILED", + "ACTIVE_ACTIVE_CHANGE_REQUEST_PLANNING_EXPIRED", + "ACTIVE_ACTIVE_MISSING_LOCAL_THROUGHPUT_MEASUREMENT", + "ACTIVE_ACTIVE_BACKUP_MISSING_REGION_NAME", + "ACTIVE_ACTIVE_BACKUP_STATUS_MISSING_REGION_NAME", + "ACTIVE_ACTIVE_DATABASE_INVALID_CIDR_FORMAT", + "ACTIVE_ACTIVE_DATABASE_INVALID_CIDR_OVERLAPPING_OTHER_REGIONS", + "ACTIVE_ACTIVE_DATABASE_REPLICATION_CANNOT_BE_FALSE", + "ACTIVE_ACTIVE_REGIONS_MUST_BE_DEFINED_ONCE", + "ACTIVE_ACTIVE_SUBSCRIPTION_WITHOUT_REGIONS_IS_NOT_ALLOWED", + "ACTIVE_ACTIVE_DATABASE_MEMCACHED_PROTOCOL_IS_NOT_ALLOWED", + "ACTIVE_ACTIVE_DATABASE_SHARDING_MUST_BE_ENABLED", + "ACTIVE_ACTIVE_DATABASE_MISSING_DATABASE_CONFIGURATION", + "ACTIVE_ACTIVE_DATABASE_INVALID_THROUGHPUT", + "ACTIVE_ACTIVE_MISMATCH_BETWEEN_REQUEST_REGIONS_AND_SUBSCRIPTION_REGIONS", + "ACTIVE_ACTIVE_INVALID_UPDATE_DATABASE_NAME", + "ACTIVE_ACTIVE_INVALID_CREATE_REGION_NAME", + "ACTIVE_ACTIVE_INVALID_DELETE_REGION_NAME", + "ACTIVE_ACTIVE_INVALID_BACKUP_REGION_NAME", + "ACTIVE_ACTIVE_INVALID_BACKUP_STATUS_REGION_NAME", + "ACTIVE_ACTIVE_DELETE_REGIONS_MUST_BE_DEFINED_ONCE", + "ACTIVE_ACTIVE_DELETE_SUBSCRIPTION_MUST_BE_DEPLOYED_IN_AT_LEAST_ONE_REGION", + "ACTIVE_ACTIVE_REQUEST_GENERAL_ERROR", + "ACTIVE_ACTIVE_VPC_PEERING_INVALID_SOURCE_REGION_NAME", + "ACTIVE_ACTIVE_VPC_PEERING_INVALID_AWS_ACCOUNT", + "ACTIVE_ACTIVE_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_PREVIEW_REDIS_VERSION_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_DATABASE_UPGRADE_IS_NOT_SUPPORTED", + "LOCAL_THROUGHPUT_MEASUREMENT_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "BACKUP_REGION_NAME_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "BACKUP_STATUS_REGION_NAME_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "UPDATING_LOCAL_PROPERTIES_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "DISABLING_THE_DEFAULT_USER_AND_UPDATING_A_NEW_PASSWORD_IS_NOT_ALLOWED", + "NOT_ALLOWED_TO_UPDATE_A_DATABASE_PASSWORD_WHEN_DEFAULT_USER_IS_DISABLED", + "UPDATING_SINGLE_REGION_DATABASE_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "GETTING_ACTIVE_ACTIVE_SUBSCRIPTION_VPC_PEERINGS_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "UPDATING_SINGLE_REGION_CIDR_WHITE_LIST_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "GETTING_SINGLE_REGION_CIDR_WHITE_LIST_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "ADDING_REGION_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "DELETING_REGION_IS_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "SINGLE_REGION_SUBSCRIPTION_MUST_DEFINE_ONLY_ONE_REGION", + "CREATING_A_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "UPDATING_A_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "DELETING_SINGLE_REGION_VPC_PEERING_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "GETTING_SINGLE_REGION_VPC_PEERINGS_IS_NOT_ALLOWED_WITH_ACTIVE_ACTIVE_SUBSCRIPTION", + "ACTIVE_ACTIVE_DATABASE_LIMIT_EXCEEDED", + "ACTIVE_ACTIVE_REGION_LIMIT_REACHED", + "FIXED_DATABASE_NAME_IS_MISSING", + "CREATING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "UPDATING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "DELETING_FIXED_DATABASE_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "FIXED_DATABASE_MEMORY_LIMIT_IN_GB_AND_DATA_SET_SIZE_SUPPORTED_ONLY_FOR_PAY_AS_YOU_GO", + "FIXED_DATABASE_FIXED_SUBSCRIPTION_REACHED_MAX_DATABASES_COUNT", + "FIXED_DATABASE_SOURCE_IPS_LIST_IS_GREATER_THAN_PLAN_MAX_COUNT_ALLOWED_SOURCE_IPS", + "FIXED_DATABASE_ENABLE_DATABASE_CLUSTERING_SUPPORTED_ONLY_FOR_PAY_AS_YOU_GO", + "FIXED_DATABASE_ENABLE_DATABASE_CLUSTERING_WITH_REDIS_SEARCH_OR_GRAPH_MODULES_IS_NOT_ALLOWED", + "FIXED_DATABASE_PAYG_MEMORY_LIMIT_IN_GB_IS_MISSING", + "FIXED_DATABASE_PAYG_MEMORY_LIMIT_IN_GB_OR_DATA_SET_SIZE_IN_GB_IS_MISSING", + "FIXED_DATABASE_ALERT_NOT_SUPPORTED", + "PAY_AS_YOU_GO_DATABASE_ALERT_NOT_SUPPORTED", + "FIXED_DATABASE_REPLICA_OF_MEMCACHED_IS_NOT_SUPPORTED", + "FIXED_DATABASE_STACK_PROTOCOL_CONTAINS_MODULES", + "FIXED_DATABASE_STACK_PROTOCOL_IS_NOT_SUPPORTED_IN_SELECTED_PLAN_OR_CLUSTER", + "FIXED_DATABASE_REDIS_PROTOCOL_IS_NOT_SUPPORTED_IN_SELECTED_PLAN", + "FIXED_DATABASE_REPLICATION_IS_NOT_SUPPORTED_IN_REQUESTED_PLAN", + "FIXED_DATABASE_OSS_CLUSTER_API_IS_NOT_SUPPORTED_IN_REQUESTED_PLAN", + "FIXED_DATABASE_USE_EXTERNAL_ENDPOINT_FOR_OSS_CLUSTER_API_NOT_SUPPORTED_IN_REQUESTED_PLAN", + "FIXED_DATABASE_REGEX_RULES_NOT_SUPPORTED_IN_REQUESTED_PLAN", + "FIXED_DATABASE_ENABLE_TLS_NOT_SUPPORTED_IN_REQUESTED_PLAN", + "FIXED_DATABASE_CLIENT_SSL_CERTIFICATE_NOT_SUPPORTED_IN_REQUESTED_PLAN", + "FIXED_DATABASE_REPLICA_OF_NOT_SUPPORTED_IN_REQUESTED_PLAN", + "FIXED_DATABASE_CLUSTER_DOES_NOT_SUPPORT_DATA_PERSISTENCE", + "FIXED_DATABASE_NO_EVICTION_IS_NOT_SUPPORTED_BY_CLUSTER", + "FIXED_DATABASE_DATA_EVICTION_POLICY_IS_NOT_SUPPORTED_BY_CLUSTER", + "FIXED_DATABASE_DATA_EVICTION_POLICY_IS_NOT_SUPPORTED_BY_SELECTED_MODULES", + "FIXED_DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_VERSION", + "DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_VERSION", + "DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_FLEX", + "FIXED_DATABASE_EVICTION_POLICY_NOT_COMPATIBLE_WITH_REDIS_FLEX", + "FIXED_DATABASE_REPLICA_OF_IS_NOT_SUPPORTED_BY_SELECTED_MODULES", + "FIXED_DATABASE_DATA_PERSISTENCE_VALUE_NOT_SUPPORTED_FOR_FIXED", + "FIXED_DATABASE_DATA_EVICTION_POLICY_IS_NOT_SUPPORTED_BY_ALL_MODULES_IN_SELECTED_PLAN_OR_CLUSTER", + "FIXED_DATABASE_RESP_VERSION_IS_NOT_SUPPORTED", + "FIXED_DATABASE_REDIS_FLEX_IS_NOT_SUPPORTED", + "FIXED_DATABASE_STACK_PROTOCOL_IS_NOT_SUPPORTED_FOR_REDIS_FLEX", + "FIXED_DATABASE_MEMCACHED_PROTOCOL_IS_NOT_SUPPORTED_FOR_REDIS_FLEX", + "FIXED_DATABASE_NUMBER_OF_SHARDS_IS_NOT_SUPPORTED_FOR_THIS_ACCOUNT", + "FIXED_DATABASE_NUMBER_OF_SHARDS_REQUIRES_DATABASE_CLUSTERING_ENABLED", + "FIXED_DATABASE_NUMBER_OF_SHARDS_INVALID_VALUE", + "PAYMENT_INFO_NOT_ALLOWED_WHEN_ACCOUNT_POC_ACTIVE", + "FIXED_DATABASE_NUMBER_OF_SHARDS_SUPPORTED_ONLY_FOR_PAY_AS_YOU_GO", + "FIXED_DATABASE_NUMBER_OF_SHARDS_NOT_A_MULTIPLE_OF_CURRENT_VALUE", + "VPC_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "SUBNET_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "SECURITY_GROUP_ID_NOT_ALLOWED_WITH_INTERNAL_CLOUD_ACCOUNT", + "CLIENT_SSL_CERTIFICATE_IS_NOT_ALLOWED_WITHOUT_ENABLE_TLS_IS_TRUE", + "MARKETPLACE_PAYMENT_INFO_COLLISION", + "ACCOUNT_MARKETPLACE_IS_NOT_ACTIVE", + "ACCOUNT_MARKETPLACE_NOT_FOUND", + "ACCOUNT_MARKETPLACE_NOT_SUPPORT_NON_HOSTED_ACCOUNTS", + "PAYMENT_INVALID_CARD_NUMBER", + "PAYMENT_INVALID_CCV", + "PAYMENT_INVALID_CARD_TYPE", + "PAYMENT_CVV_MISSING", + "PAYMENT_GENERAL_ERROR", + "PAYMENT_HOLD_FAILED", + "ACL_USER_NAME_ALREADY_EXISTS", + "ACL_USER_NAME_NOT_VALID", + "ACL_USER_NOT_FOUND", + "ACL_USER_NAME_IS_MISSING", + "ACL_ROLE_NAME_IS_MISSING", + "ACL_ROLE_REDIS_RULE_MUST_BE_DEFINED_ONLY_ONCE_PER_DATABASE", + "ACL_ROLE_REDIS_RULE_ALREADY_EXISTS_FOR_REQUESTED_RESOURCE", + "ACL_ROLE_REDIS_RULES_IS_MISSING", + "ACL_ROLE_REDIS_RULES_DATABASES_SPEC_IS_MISSING", + "ACL_ROLE_REDIS_RULES_DATABASES_DATABASE_ID_IS_MISSING", + "ACL_ROLE_REDIS_RULES_DATABASES_SUBSCRIPTION_ID_IS_MISSING", + "ACL_ROLE_REDIS_RULES_DATABASES_REGIONS_IS_MISSING", + "ACL_ROLE_REDIS_RULES_DATABASES_REGION_MUST_BE_CRDB", + "ACL_ROLE_REDIS_RULES_DATABASES_REGION_NOT_IN_PLAN", + "ACL_ROLE_REDIS_RULES_DATABASES_REGION_NOT_UNIQUE", + "ACL_ROLE_REDIS_RULES_DATABASES_REGION_IS_NOT_BELONGS_TO_DATABASE", + "ACL_ROLE_NAME_NOT_VALID", + "ACL_ROLE_DOES_NOT_EXISTS", + "ACL_USER_PASSWORD_NOT_VALID", + "ACL_USER_PASSWORD_IS_MISSING", + "ACL_USER_CREATION_FAILURE", + "ACL_REDIS_RULE_NAME_IS_MISSING", + "ACL_REDIS_RULE_NAME_ALREADY_EXISTS", + "ACL_REDIS_RULE_NAME_NOT_VALID", + "ACL_REDIS_RULE_NAME_NOT_IN_RANGE", + "ACL_REDIS_RULE_PATTERN_IS_MISSING", + "ACL_REDIS_RULE_PATTERN_NOT_VALID", + "ACL_REDIS_RULE_INVALID_PUBSUB_PATTERN", + "ACL_REDIS_RULE_ACCOUNT_NOT_SUPPORT_PUBSUB_PATTERN", + "ACL_REDIS_RULE_ALLCHANNELS_BEFORE_SPECIFIC_CHANNEL", + "ACL_REDIS_RULE_INVALID_CATEGORY_RULE_PATTERN", + "ACL_REDIS_RULE_INVALID_KEYSPACE_RULE_PATTERN", + "ACL_REDIS_RULE_INVALID_COMMAND_OR_MODULE_COMMAND_RULE_PATTERN", + "ACL_REDIS_RULE_ALLKEYS_BEFORE_SPECIFIC_KEY", + "ACL_REDIS_RULE_CREATION_FAILURE", + "ACL_REDIS_RULE_NOT_FOUND", + "ACL_REDIS_RULE_CANNOT_UPDATE_DEFAULT", + "ACL_REDIS_RULE_CANNOT_DELETE_DEFAULT", + "ACL_REDIS_RULE_CANNOT_DELETE_WHEN_ASSOCIATED_WITH_ROLES", + "ACL_REDIS_RULE_NOT_ACTIVE", + "ACL_GENERAL_ERROR", + "ACL_ROLE_NAME_ALREADY_EXISTS", + "ACL_ROLE_HAS_ACTIVE_USERS_AND_CANNOT_BE_DELETED", + "ACL_ROLE_IS_IN_PENDING_STATUS_AND_CANNOT_BE_DELETED", + "ACL_ROLE_IS_IN_PENDING_STATUS_AND_CANNOT_BE_UPDATED", + "ACL_ROLE_NOT_FOUND", + "ACL_ROLE_ID_IS_MISSING", + "ACL_REDIS_RULE_DOES_NOT_EXISTS", + "ACL_REDIS_RULE_INVALID_KEY_PERMISSION_PATTERN", + "ACL_REDIS_RULE_INVALID_SELECTORS_PATTERN", + "BDB_IS_NOT_IN_CORRECT_VERSION_FOR_GIVEN_ACL_VERSION", + "USER_NOT_FOUND", + "USER_INSUFFICIENT_ROLE", + "USER_NAME_IS_INVALID", + "USER_CANNOT_UPDATE_IT_IS_OWN_ROLE", + "USER_WITHOUT_OWNER_PERMISSION_CANNOT_UPDATE_USERS", + "USER_WITHOUT_OWNER_PERMISSION_CANNOT_PERFORM_ACTIONS_ON_USERS", + "USER_CANNOT_BE_UPDATED_OR_DELETED_BEFORE_VERIFICATION", + "USER_ROLE_DOES_NOT_EXISTS", + "USER_ROLE_IS_MISSING", + "USER_CANNOT_DELETE_OWN_USER", + "ENTITY_NOT_FOUND", + "FIXED_SUBSCRIPTION_CREATE_PLAN_NOT_FOUND", + "FIXED_SUBSCRIPTION_UPDATE_INVALID_PLAN", + "FIXED_SUBSCRIPTION_PLAN_NOT_PROVIDED", + "FIXED_SUBSCRIPTION_ACCOUNT_ALREADY_HAS_A_FREE_PLAN", + "FIXED_MISMATCH_BETWEEN_REQUEST_PLAN_CLOUD_PROVIDER_AND_SUBSCRIPTION_CLOUD_PROVIDER", + "FIXED_MISMATCH_BETWEEN_REQUEST_PLAN_REGION_AND_SUBSCRIPTION_REGION", + "FIXED_SUBSCRIPTION_PLAN_MAX_DATABASES_SMALLER_THEN_CURRENT_SUBSCRIPTION_DATABASES_COUNT", + "FIXED_SUBSCRIPTION_PLAN_SIZE_SMALLER_THEN_CURRENT_SUBSCRIPTION_USAGE", + "FIXED_SUBSCRIPTION_PLAN_NOT_SUPPORT_REPLICA_OF", + "FIXED_SUBSCRIPTION_PLAN_DATABASES_ARE_RESTRICTED_TO_A_SINGLE_CLUSTER", + "FIXED_SUBSCRIPTION_PLAN_NOT_SUPPORT_TLS", + "FIXED_SUBSCRIPTION_PLAN_CANNOT_CHANGED_FROM_AVAILABILITY_OF_SINGLE_ZONE_OR_NO_REPLICATION_TO_MULTI_ZONE", + "FIXED_SUBSCRIPTION_PLAN_CANNOT_CHANGED_FROM_AVAILABILITY_OF_MULTI_ZONE_TO_SINGLE_ZONE_OR_NO_REPLICATION", + "FIXED_SUBSCRIPTION_PLAN_MAX_SOURCE_IPS_IS_SMALLER_THEN_ONE_OF_EXISTING_DATABSE_SOURCE_IPS", + "FIXED_SUBSCRIPTION_INVALID_NAME", + "FIXED_SUBSCRIPTION_NAME_NOT_PROVIDED", + "REDIS_FLEX_PLAN_CANNOT_BE_UPDATED_TO_NON_REDIS_FLEX", + "NON_REDIS_FLEX_PLAN_CANNOT_BE_UPDATED_TO_REDIS_FLEX_PLAN", + "DELETING_A_FIXED_SUBSCRIPTION_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "UPDATING_A_FIXED_SUBSCRIPTION_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "UPDATING_A_FIXED_SUBSCRIPTION_PLAN_IS_NOT_ALLOWED_WHILE_THE_SUBSCRIPTION_OR_BDB_IS_PENDING", + "FIXED_PAYMENT_INFO_NOT_ALLOWED_IN_FREE_FIXED_PLAN", + "FREE_PLAN_IS_ALLOWED_ONLY_FOR_ACCOUNTS_WITH_VALID_PAYMENT_INFO", + "BACKUP_A_FIXED_DATABASE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "IMPORT_A_FIXED_DATABASE_IS_NOT_ALLOWED_WITH_A_FLEXIBLE_SUBSCRIPTION", + "TOO_MANY_PENDING_SUBSCRIPTIONS", + "BAD_REQUEST", + "GENERAL_ERROR", + "CONFLICT_ERROR", + "UNKNOWN_STATUS", + "CRDB_FLUSH_FAILURE", + "CRDB_FLUSH_ACTION_NOT_ALLOWED_WITH_SINGLE_REGION_SUBSCRIPTION", + "DATABASE_NAME_CHANGE_NOT_SUPPORTED", + "DATABASE_INVALID_LOCATION_BACKUP", + "DATABASE_GENERAL_ERROR_BACKUP", + "CLUSTER_COMMUNICATION_ERROR", + "MAINTENANCE_WINDOW_INVALID_MAINTENANCE_WINDOW_SPEC_PROVIDED", + "MAINTENANCE_WINDOW_INVALID_MAINTENANCE_WINDOW_MODE_PROVIDED", + "MAINTENANCE_WINDOW_MANUAL_MODE_WITH_NO_MAINTENANCE_WINDOWS", + "MAINTENANCE_WINDOW_AUTOMATIC_MODE_WITH_MAINTENANCE_WINDOWS", + "MAINTENANCE_WINDOW_GREATER_THAN_MAXIMUM_ALLOWABLE_MAINTENANCE_WINDOWS_PROVIDED", + "MAINTENANCE_WINDOW_INVALID_START_HOUR", + "MAINTENANCE_WINDOW_INVALID_DURATION_IN_HOURS", + "MAINTENANCE_WINDOW_INVALID_DAYS", + "MAINTENANCE_WINDOW_DUPLICATE_DAYS", + "MAINTENANCE_WINDOW_INVALID_DURATION_FOR_ROF_SUBSCRIPTION", + "MAINTENANCE_WINDOW_UNKNOWN_MEMORY_STORAGE_TYPE", + "DATABASE_UPGRADE_IS_ALREADY_RUNNING", + "DATABASE_CLUSTER_IS_IN_MAINTENANCE", + "DATABASE_IS_NOT_ACTIVE", + "DATABASE_UPGRADE_WORKFLOW_NOT_FOUND", + "DATABASE_UPGRADE_INVALID_REDIS_VERSION", + "DATABASE_UPGRADE_OF_MEMCACHED_IS_NOT_SUPPORTED", + "DATABASE_REPLICA_OF_INCOMPATIBLE_VERSION", + "DATABASE_UPGRADE_FAILED", + "DATABASE_INVALID_PLAN_TYPE", + "DATABASE_UPGRADE_IS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_EXTERNAL_ACCOUNTS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_MULTIPLE_CLOUD_ACCOUNTS_NOT_SUPPORTED", + "ACTIVE_ACTIVE_GCP_EXTERNAL_CLOUD_ACCOUNT_NOT_SUPPORTED", + "DEDICATED_SUBSCRIPTION_PREFERRED_AZ_INVALID_VALUE", + "DEDICATED_SUBSCRIPTION_INVALID_INSTANCE_NAME", + "DEDICATED_SUBSCRIPTION_INVALID_REPLICATION", + "PRIVATE_LINK_NOT_FOUND", + "PRIVATE_LINK_ALREADY_EXISTS", + "PRIVATE_LINK_PRINCIPAL_ALREADY_EXISTS", + "PRIVATE_LINK_PRINCIPAL_NOT_FOUND", + "PRIVATE_LINK_PRINCIPAL_INVALID_PRINCIPLE", + "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", + "PRIVATE_LINK_CREATING_PRINCIPLES_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_CREATING_PRINCIPLES_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRINCIPALS_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRINCIPALS_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_CREATE_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_CREATE_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_DELETING_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "PRIVATE_LINK_IS_NOT_SUPPORTED", + "PRIVATE_LINK_SERVICE_ERROR", + "PRIVATE_LINK_SUBSCRIPTION_REACHED_MAX_DATABASES_COUNT", + "PRIVATE_LINK_ALL_PRINCIPALS_MUST_BE_DELETED_BEFORE_DELETING_RESOURCE_LINK", + "PRIVATE_LINK_DISASSOCIATE_CONNECTIONS_A_FLEXIBLE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_AN_ACTIVE_ACTIVE_SUBSCRIPTION", + "PRIVATE_LINK_DISASSOCIATE_CONNECTIONS_AN_ACTIVE_ACTIVE_SUBSCRIPTION_PRIVATE_LINK_IS_NOT_ALLOWED_WITH_A_SINGLE_REGION_SUBSCRIPTION", + "COST_REPORT_IS_NOT_SUPPORTED", + "COST_REPORT_START_DATE_IS_MISSING", + "COST_REPORT_END_DATE_IS_MISSING", + "COST_REPORT_INVALID_DATE_FORMAT", + "COST_REPORT_END_DATE_BEFORE_START_DATE", + "COST_REPORT_DATE_RANGE_EXCEEDS_LIMIT", + "COST_REPORT_TAG_KEY_EMPTY", + "COST_REPORT_TAG_VALUE_EMPTY", + "COST_REPORT_FUTURE_DATES_NOT_ALLOWED" ] }, - "persistentStorageEncryptionKeys": { - "$ref": "#/components/schemas/CustomerManagedKeyProperties" - }, - "cloudProviders": { - "type": "array", - "description": "Cloud provider, region, and networking details.", - "items": { - "$ref": "#/components/schemas/SubscriptionSpec" - } - }, - "databases": { - "type": "array", - "description": "One or more database specification(s) to create in this subscription.", - "items": { - "$ref": "#/components/schemas/SubscriptionDatabaseSpec" - } - }, - "redisVersion": { - "type": "string", - "description": "Optional. Defines the Redis version of the databases created in this specific request. It doesn't determine future databases associated with this subscription. If not set, databases will use the default Redis version. This field is deprecated and will be removed in a future API version - use the database-level redisVersion property instead.", - "example": "7.2", - "deprecated": true - }, - "publicEndpointAccess": { - "type": "boolean", - "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint. Default: 'true'." - }, - "commandType": { - "type": "string", - "readOnly": true + "additionalInfo": { + "type": "string" } - }, - "description": "Subscription create request" + } }, - "RedisVersions": { + "CloudTags": { "type": "object", "properties": { - "redisVersions": { + "links": { "type": "array", "items": { - "$ref": "#/components/schemas/RedisVersion" + "type": "object", + "additionalProperties": { + "type": "string" + } } - } - } - }, - "CloudAccountUpdateRequest": { - "required": [ - "accessKeyId", - "accessSecretKey", - "consolePassword", - "consoleUsername" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "name", - "example": "My new Cloud Account" - }, - "cloudAccountId": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "accessKeyId": { - "type": "string", - "description": "Cloud provider access key.", - "example": "****" - }, - "accessSecretKey": { - "type": "string", - "description": "Cloud provider secret key.", - "example": "****" - }, - "consoleUsername": { - "type": "string", - "description": "Cloud provider management console username.", - "example": "me@mycompany.com" - }, - "consolePassword": { - "type": "string", - "description": "Cloud provider management console password.", - "example": "****" - }, - "signInLoginUrl": { - "type": "string", - "description": "Optional. Cloud provider management console login URL.", - "example": "https://.signin.aws.amazon.com/console" }, - "commandType": { - "type": "string", - "readOnly": true - } - }, - "description": "Cloud Account definition" - }, - "PrivateLinkCreateRequest": { - "required": [ - "principal", - "shareName", - "type" - ], - "type": "object", - "properties": { - "subscriptionId": { + "accountId": { "type": "integer", - "format": "int32", - "readOnly": true - }, - "shareName": { - "maxLength": 64, - "minLength": 0, - "type": "string", - "description": "Name of the resource share", - "example": "my-redis-share" - }, - "principal": { - "type": "string", - "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", - "example": "123456789012" - }, - "type": { - "type": "string", - "description": "Type of the principal", - "example": "aws_account", - "enum": [ - "aws_account", - "organization", - "organization_unit", - "iam_role", - "iam_user", - "service_principal" - ] - }, - "alias": { - "type": "string", - "description": "Alias or friendly name for the principal", - "example": "Production Account" - }, - "commandType": { - "type": "string", - "readOnly": true + "format": "int32" } }, - "description": "Private Link create request" - }, - "SubscriptionPricings": { - "type": "object", - "properties": { - "pricing": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriptionPricing" + "description": "Redis list of database tags", + "example": { + "accountId": 40131, + "tags": [ + { + "key": "environment", + "value": "production", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [] + }, + { + "key": "owner", + "value": "Clifford O'neill", + "createdAt": "2024-05-21T20:02:21+02:00", + "updatedAt": "2024-06-21T20:02:21+02:00", + "links": [] } - } + ], + "links": [ + { + "rel": "self", + "href": "http://localhost:8081/v1/fixed/subscriptions/178867/databases/51412930/tags", + "type": "GET" + } + ] } }, - "SubscriptionPricing": { + "RedisVersion": { "type": "object", "properties": { - "type": { - "type": "string" - }, - "typeDetails": { - "type": "string" - }, - "quantity": { - "type": "integer", - "format": "int32" - }, - "quantityMeasurement": { + "version": { "type": "string" }, - "pricePerUnit": { - "type": "number", - "format": "double" - }, - "priceCurrency": { - "type": "string" + "eolDate": { + "type": "string", + "format": "date" }, - "pricePeriod": { - "type": "string" + "isPreview": { + "type": "boolean" }, - "region": { - "type": "string" + "isDefault": { + "type": "boolean" } } }, - "ReplicaOfSpec": { + "AclRoleCreateRequest": { "required": [ - "syncSources" + "name", + "redisRules" ], "type": "object", "properties": { - "syncSources": { + "name": { + "type": "string", + "description": "Database access role name.", + "example": "ACL-role-example" + }, + "redisRules": { "type": "array", - "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details.", + "description": "A list of Redis ACL rules to assign to this database access role.", "items": { - "$ref": "#/components/schemas/DatabaseSyncSourceSpec" + "$ref": "#/components/schemas/AclRoleRedisRuleSpec" } + }, + "commandType": { + "type": "string", + "readOnly": true } }, - "description": "Optional. Changes Replica Of (also known as Active-Passive) configuration details." + "description": "ACL role create request" }, - "PrivateLinkActiveActivePrincipalsDeleteRequest": { - "required": [ - "principal", - "regionId" - ], + "DatabaseBackupRequest": { "type": "object", "properties": { "subscriptionId": { @@ -27965,366 +19403,461 @@ "format": "int32", "readOnly": true }, - "regionId": { + "databaseId": { "type": "integer", - "description": "Deployment region id as defined by cloud provider", "format": "int32", "readOnly": true }, - "principal": { + "regionName": { "type": "string", - "description": "An AWS account ID or ARN to remove from the private link", - "example": "123456789012" + "description": "Required for Active-Active databases. Name of the cloud provider region to back up. When backing up an Active-Active database, you must back up each region separately." + }, + "adhocBackupPath": { + "type": "string", + "description": "Optional. Manually backs up data to this location, instead of the set 'remoteBackup' location.", + "example": "s3://" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Request to remove principals from private link for Active-Active subscription" + "description": "Database backup request message" }, - "DatabaseThroughputSpec": { - "required": [ - "by", - "value" - ], + "ReplicaAsSourceEndpoints": { "type": "object", "properties": { - "by": { + "public": { "type": "string", - "description": "Throughput measurement method. Use 'operations-per-second' for all new databases.", - "enum": [ - "operations-per-second", - "number-of-shards" - ] + "description": "Public cluster endpoint that can be used as source for replication" }, - "value": { - "type": "integer", - "description": "Throughput value in the selected measurement method.", - "format": "int64", - "example": 10000 + "private": { + "type": "string", + "description": "Private cluster endpoint that can be used as source for replication" } }, - "description": "Optional. Throughput measurement method." + "description": "Endpoints to use when configuring another database to replicate from this database (Make sure to use this instead of the dynamic endpoints)." }, - "FixedDatabase": { + "DataPersistenceOptions": { "type": "object", "properties": { - "databaseId": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string" + "dataPersistence": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataPersistenceEntry" + } }, - "protocol": { + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "example": { + "dataPersistence": [ + { + "name": "none", + "description": "None" + }, + { + "name": "aof-every-1-second", + "description": "Append only file (AOF) - fsync every 1 second" + }, + { + "name": "aof-every-write", + "description": "Append only file (AOF) - fsync every write" + }, + { + "name": "snapshot-every-1-hour", + "description": "Snapshot every 1 hour" + }, + { + "name": "snapshot-every-6-hours", + "description": "Snapshot every 6 hour" + }, + { + "name": "snapshot-every-12-hours", + "description": "Snapshot every 12 hour" + } + ], + "links": [ + { + "rel": "self", + "href": "https://api-cloudapi.qa.redislabs.com/v1/data-persistence", + "type": "GET" + } + ] + } + }, + "DatabaseTagCreateRequest": { + "required": [ + "key", + "value" + ], + "type": "object", + "properties": { + "key": { "type": "string", - "enum": [ - "redis", - "memcached", - "stack" - ] + "description": "Database tag key.", + "example": "environment" }, - "provider": { - "type": "string" + "value": { + "type": "string", + "description": "Database tag value.", + "example": "production" }, - "region": { - "type": "string" + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "redisVersion": { - "type": "string" + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "redisVersionCompliance": { + "commandType": { "type": "string", - "deprecated": true + "readOnly": true + } + }, + "description": "Database tag" + }, + "DatabaseBackupConfig": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Optional. Determine if backup should be active. Default: null" }, - "respVersion": { + "interval": { "type": "string", - "enum": [ - "resp2", - "resp3" - ] - }, - "status": { - "type": "string" - }, - "planMemoryLimit": { - "type": "number", - "format": "double" - }, - "planDatasetSize": { - "type": "number", - "format": "double" - }, - "memoryLimitMeasurementUnit": { - "type": "string" - }, - "memoryLimitInGb": { - "type": "number", - "format": "double" - }, - "datasetSizeInGb": { - "type": "number", - "format": "double" - }, - "memoryUsedInMb": { - "type": "number", - "format": "double" - }, - "networkMonthlyUsageInByte": { - "type": "number", - "format": "double" + "description": "Required when active is 'true'. Defines the interval between backups. Format: 'every-x-hours', where x is one of 24, 12, 6, 4, 2, or 1. Example: \"every-4-hours\"" }, - "memoryStorage": { + "backupInterval": { "type": "string", + "readOnly": true, "enum": [ - "ram", - "ram-and-flash" + "EVERY_24_HOURS", + "EVERY_12_HOURS", + "EVERY_6_HOURS", + "EVERY_4_HOURS", + "EVERY_2_HOURS", + "EVERY_1_HOURS" ] }, - "redisFlex": { - "type": "boolean" - }, - "supportOSSClusterApi": { - "type": "boolean" - }, - "useExternalEndpointForOSSClusterApi": { - "type": "boolean" - }, - "dataPersistence": { + "timeUTC": { "type": "string", - "enum": [ - "none", - "aof-every-1-second", - "aof-every-write", - "snapshot-every-1-hour", - "snapshot-every-6-hours", - "snapshot-every-12-hours" - ] - }, - "replication": { - "type": "boolean" + "description": "Optional. Hour when the backup starts. Available only for \"every-12-hours\" and \"every-24-hours\" backup intervals. Specified as an hour in 24-hour UTC time. Example: \"14:00\" is 2 PM UTC." }, - "dataEvictionPolicy": { + "databaseBackupTimeUTC": { "type": "string", + "readOnly": true, "enum": [ - "allkeys-lru", - "allkeys-lfu", - "allkeys-lrm", - "allkeys-random", - "volatile-lru", - "volatile-lfu", - "volatile-lrm", - "volatile-random", - "volatile-ttl", - "noeviction" + "HOUR_ONE", + "HOUR_TWO", + "HOUR_THREE", + "HOUR_FOUR", + "HOUR_FIVE", + "HOUR_SIX", + "HOUR_SEVEN", + "HOUR_EIGHT", + "HOUR_NINE", + "HOUR_TEN", + "HOUR_ELEVEN", + "HOUR_TWELVE" ] }, - "activatedOn": { + "storageType": { "type": "string", - "format": "date-time" + "description": "Required when active is 'true'. Type of storage to host backup files. Can be \"aws-s3\", \"google-blob-storage\", \"azure-blob-storage\", or \"ftp\". See [Set up backup storage locations](https://redis.io/docs/latest/operate/rc/databases/back-up-data/#set-up-backup-storage-locations) to learn how to set up backup storage locations." }, - "lastModified": { + "backupStorageType": { "type": "string", - "format": "date-time" + "readOnly": true, + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] }, - "publicEndpoint": { + "storagePath": { + "type": "string", + "description": "Required when active is 'true'. Path to the backup storage location." + } + }, + "description": "Optional. Changes Remote backup configuration details." + }, + "DynamicEndpoints": { + "type": "object", + "properties": { + "public": { "type": "string" }, - "privateEndpoint": { + "private": { "type": "string" + } + } + }, + "CrdbFlushRequest": { + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "dynamicEndpoints": { - "$ref": "#/components/schemas/DynamicEndpoints" + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "replicaAsSourceEndpoints": { - "$ref": "#/components/schemas/ReplicaAsSourceEndpoints" + "commandType": { + "type": "string", + "readOnly": true + } + }, + "description": "Active-Active database flush request message" + }, + "MaintenanceWindowSpec": { + "required": [ + "days", + "durationInHours", + "startHour" + ], + "type": "object", + "properties": { + "startHour": { + "type": "integer", + "description": "Starting hour of the maintenance window. Can be between '0' (12 AM in the deployment region's local time) and '23' (11 PM in the deployment region's local time).", + "format": "int32", + "example": 12 }, - "links": { + "durationInHours": { + "type": "integer", + "description": "The duration of the maintenance window in hours. Can be between 4-24 hours (or 8-24 hours if using 'ram-and-flash').", + "format": "int32", + "example": 8 + }, + "days": { "type": "array", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", + "example": [ + "Monday", + "Wednesday" + ], "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "type": "string", + "description": "Days where this maintenance window applies. Can contain one or more of: \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", or \"Sunday\".", + "example": "[\"Monday\",\"Wednesday\"]" } } }, - "example": { - "databaseId": 51324587, - "name": "bdb", - "protocol": "stack", - "provider": "AWS", - "region": "us-east-1", - "status": "draft", - "planMemoryLimit": 250, - "respVersion": "resp2", - "memoryLimitMeasurementUnit": "MB", - "memoryUsedInMb": 7, - "memoryStorage": "ram", - "dataPersistence": "none", - "replication": true, - "dataEvictionPolicy": "noeviction", - "clustering": { - "enabled": false, - "regexRules": [ - { - "ordinal": 0, - "pattern": ".*\\{(?.*)\\}.*" - }, - { - "ordinal": 1, - "pattern": "(?.*)" - } - ], - "hashingPolicy": "standard" - }, - "security": { - "defaultUserEnabled": true, - "password": "myCustomPassword", - "sourceIps": [ - "0.0.0.0/0" - ] - }, - "modules": [ - { - "id": 18534, - "name": "RediSearch", - "capabilityName": "Search and query", - "version": "2.2.6", - "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", - "parameters": [] - }, - { - "id": 18535, - "name": "RedisBloom", - "capabilityName": "Probabilistic", - "version": "2.2.12", - "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", - "parameters": [] - }, - { - "id": 18536, - "name": "RedisJSON", - "capabilityName": "JSON", - "version": "2.0.6", - "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", - "parameters": [] - }, - { - "id": 18537, - "name": "RedisTimeSeries", - "capabilityName": "Time series", - "version": "1.6.8", - "description": "Time-Series data structure for Redis", - "parameters": [] - } - ], - "alerts": [ - { - "name": "connections-limit", - "value": 80, - "defaultValue": 80 - } - ], - "backup": { - "remoteBackupEnabled": false - }, - "links": [] - } + "description": "Maintenance window timeframes if mode is set to 'manual'. Up to 7 maintenance windows can be provided." }, - "DatabaseImportRequest": { + "ActiveActiveVpcPeeringCreateGcpRequest": { "required": [ - "importFromUri", - "sourceType" + "sourceRegion", + "vpcNetworkName", + "vpcProjectUid" ], "type": "object", "properties": { + "provider": { + "type": "string" + }, "subscriptionId": { "type": "integer", "format": "int32", "readOnly": true }, - "databaseId": { - "type": "integer", - "format": "int32", + "sourceRegion": { + "type": "string", + "description": "Name of region to create a VPC peering from." + }, + "vpcProjectUid": { + "type": "string", + "description": "VPC project ID.", + "example": "" + }, + "vpcNetworkName": { + "type": "string", + "description": "VPC network name.", + "example": "" + }, + "commandType": { + "type": "string", "readOnly": true + } + }, + "description": "VPC peering creation request message" + }, + "SubscriptionCreateRequest": { + "required": [ + "cloudProviders", + "databases" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Optional. New subscription name.", + "example": "My new subscription" + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan and does not create any resources. Default: 'false'", + "example": false + }, + "deploymentType": { + "type": "string", + "description": "Optional. When 'single-region' or not set: Creates a single region subscription. When 'active-active': creates an Active-Active (multi-region) subscription.", + "example": "single-region", + "enum": [ + "single-region", + "active-active" + ] + }, + "paymentMethod": { + "type": "string", + "description": "Optional. The payment method for the subscription. If set to ‘credit-card’, ‘paymentMethodId’ must be defined. Default: 'credit-card'", + "enum": [ + "credit-card", + "marketplace" + ] + }, + "paymentMethodId": { + "type": "integer", + "description": "Optional. A valid payment method ID for this account. Use GET /payment-methods to get a list of all payment methods for your account. This value is optional if ‘paymentMethod’ is ‘marketplace’, but required for all other account types.", + "format": "int32" + }, + "memoryStorage": { + "type": "string", + "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash' (also known as Auto Tiering). Default: 'ram'", + "example": "ram", + "enum": [ + "ram", + "ram-and-flash" + ] }, - "sourceType": { + "persistentStorageEncryptionType": { "type": "string", - "description": "Type of storage from which to import the database RDB file or Redis data.", - "example": "http", + "description": "Optional. Persistent storage encryption secures data at rest for database persistence. By default, disk storage is encrypted by keys managed by the cloud provider. Use 'customer-managed-key' if you want to use self-managed persistent storage encryption keys. Default: 'cloud-provider-managed-key'", + "example": "cloud-provider-managed-key", "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" + "cloud-provider-managed-key", + "customer-managed-key" ] }, - "importFromUri": { + "persistentStorageEncryptionKeys": { + "$ref": "#/components/schemas/CustomerManagedKeyProperties" + }, + "cloudProviders": { "type": "array", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "description": "Cloud provider, region, and networking details.", "items": { - "type": "string", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + "$ref": "#/components/schemas/SubscriptionSpec" + } + }, + "databases": { + "type": "array", + "description": "One or more database specification(s) to create in this subscription.", + "items": { + "$ref": "#/components/schemas/SubscriptionDatabaseSpec" } }, + "redisVersion": { + "type": "string", + "description": "Optional. Defines the Redis version of the databases created in this specific request. It doesn't determine future databases associated with this subscription. If not set, databases will use the default Redis version. This field is deprecated and will be removed in a future API version - use the database-level redisVersion property instead.", + "example": "7.2", + "deprecated": true + }, + "publicEndpointAccess": { + "type": "boolean", + "description": "Optional. When 'false', all databases on this subscription will reject any connection attempt to the public endpoint and any connection attempt to the private endpoint that does not come from an IP address in the private address space defined in [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918#section-3 ). You must use a [private connectivity method](https://redis.io/docs/latest/operate/rc/security/database-security/block-public-endpoints/#private-connectivity-methods ) to connect to a database with a blocked public endpoint. Default: 'true'." + }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Database import request" + "description": "Subscription create request" }, - "DatabaseUpgradeRedisVersionRequest": { + "RedisVersions": { + "type": "object", + "properties": { + "redisVersions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RedisVersion" + } + } + } + }, + "CloudAccountUpdateRequest": { "required": [ - "targetRedisVersion" + "accessKeyId", + "accessSecretKey", + "consolePassword", + "consoleUsername" ], "type": "object", "properties": { - "databaseId": { - "type": "integer", - "format": "int32", - "readOnly": true + "name": { + "type": "string", + "description": "name", + "example": "My new Cloud Account" }, - "subscriptionId": { + "cloudAccountId": { "type": "integer", "format": "int32", "readOnly": true }, - "targetRedisVersion": { + "accessKeyId": { "type": "string", - "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", - "example": "7.4" + "description": "Cloud provider access key.", + "example": "****" + }, + "accessSecretKey": { + "type": "string", + "description": "Cloud provider secret key.", + "example": "****" + }, + "consoleUsername": { + "type": "string", + "description": "Cloud provider management console username.", + "example": "me@mycompany.com" + }, + "consolePassword": { + "type": "string", + "description": "Cloud provider management console password.", + "example": "****" + }, + "signInLoginUrl": { + "type": "string", + "description": "Optional. Cloud provider management console login URL.", + "example": "https://.signin.aws.amazon.com/console" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Upgrades the specified Pro database to a later Redis version." + "description": "Cloud Account definition" }, - "CustomerManagedKey": { + "PrivateLinkCreateRequest": { "required": [ - "resourceName" + "principal", + "shareName", + "type" ], - "type": "object", - "properties": { - "resourceName": { - "type": "string", - "description": "The resource name of the customer managed key.", - "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" - }, - "region": { - "type": "string", - "description": "(Required for Active-Active subscriptions only) Region for the customer managed key as defined by the cloud provider." - } - }, - "description": "Object representing a customer managed key (CMK), along with the region it is associated to." - }, - "ActiveActiveRegionCreateRequest": { "type": "object", "properties": { "subscriptionId": { @@ -28332,130 +19865,105 @@ "format": "int32", "readOnly": true }, - "region": { - "type": "string", - "description": "Name of region to add as defined by the cloud provider." - }, - "vpcId": { - "type": "string", - "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format and must exist within the hosting account.", - "example": "vpc-0125be68a4625884ad" - }, - "deploymentCIDR": { + "shareName": { + "maxLength": 64, + "minLength": 0, "type": "string", - "description": "Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses.", - "example": "10.0.0.0/24" - }, - "subnetIds": { - "type": "array", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']", - "items": { - "type": "string", - "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", - "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']" - } + "description": "Name of the resource share", + "example": "my-redis-share" }, - "securityGroupId": { + "principal": { "type": "string", - "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account.", - "example": "sg-0125be68a4625884ad" - }, - "multipleAvailabilityZones": { - "type": "boolean", - "description": "Optional. Support deployment on multiple availability zones within the selected region. When omitted, defaults to true unless the region is explicitly marked as not supporting multi-AZ.", - "example": false - }, - "preferredAvailabilityZones": { - "type": "array", - "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region.", - "items": { - "type": "string", - "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region." - } - }, - "dryRun": { - "type": "boolean", - "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan, and does not create any resources. Default: 'false'", - "example": false - }, - "databases": { - "type": "array", - "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database", - "items": { - "$ref": "#/components/schemas/CrdbRegionSpec" - } + "description": "AWS account ID or ARN of the principal (IAM user, role, or account)", + "example": "123456789012" }, - "respVersion": { + "type": { "type": "string", - "description": "Optional. RESP version must be compatible with Redis version.", - "example": "resp3", - "deprecated": true, + "description": "Type of the principal", + "example": "aws_account", "enum": [ - "resp2", - "resp3" + "aws_account", + "organization", + "organization_unit", + "iam_role", + "iam_user", + "service_principal" ] }, - "customerManagedKeyResourceName": { + "alias": { "type": "string", - "description": "Required for subscriptions where 'persistentStorageEncryptionType' is 'customer-managed-key'. The resource name of the customer-managed encryption key for the region.", - "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + "description": "Alias or friendly name for the principal", + "example": "Production Account" }, "commandType": { "type": "string", "readOnly": true } }, - "description": "Active active region creation request message" + "description": "Private Link create request" }, - "FixedDatabaseImportRequest": { - "required": [ - "importFromUri", - "sourceType" - ], + "SubscriptionPricings": { "type": "object", "properties": { - "subscriptionId": { - "type": "integer", - "format": "int32", - "readOnly": true + "pricing": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubscriptionPricing" + } + } + } + }, + "SubscriptionPricing": { + "type": "object", + "properties": { + "type": { + "type": "string" }, - "databaseId": { + "typeDetails": { + "type": "string" + }, + "quantity": { "type": "integer", - "format": "int32", - "readOnly": true + "format": "int32" }, - "sourceType": { - "type": "string", - "description": "Type of storage from which to import the database RDB file or Redis data.", - "example": "http", - "enum": [ - "http", - "redis", - "ftp", - "aws-s3", - "azure-blob-storage", - "google-blob-storage" - ] + "quantityMeasurement": { + "type": "string" + }, + "pricePerUnit": { + "type": "number", + "format": "double" + }, + "priceCurrency": { + "type": "string" + }, + "pricePeriod": { + "type": "string" }, - "importFromUri": { + "region": { + "type": "string" + } + } + }, + "ReplicaOfSpec": { + "required": [ + "syncSources" + ], + "type": "object", + "properties": { + "syncSources": { "type": "array", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "description": "Optional. This database will be a replica of the specified Redis databases, provided as a list of objects with endpoint and certificate details.", "items": { - "type": "string", - "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + "$ref": "#/components/schemas/DatabaseSyncSourceSpec" } - }, - "commandType": { - "type": "string", - "readOnly": true } }, - "description": "Database import request" + "description": "Optional. Changes Replica Of (also known as Active-Passive) configuration details." }, - "PrivateLinkPrincipalsDeleteRequest": { + "PrivateLinkActiveActivePrincipalsDeleteRequest": { "required": [ - "principal" + "principal", + "regionId" ], "type": "object", "properties": { @@ -28464,6 +19972,12 @@ "format": "int32", "readOnly": true }, + "regionId": { + "type": "integer", + "description": "Deployment region id as defined by cloud provider", + "format": "int32", + "readOnly": true + }, "principal": { "type": "string", "description": "An AWS account ID or ARN to remove from the private link", @@ -28474,1100 +19988,642 @@ "readOnly": true } }, - "description": "Private Link principals delete request" + "description": "Request to remove principals from private link for Active-Active subscription" }, - "CustomerManagedKeyProperties": { + "DatabaseThroughputSpec": { "required": [ - "customerManagedKeys" + "by", + "value" ], "type": "object", "properties": { - "customerManagedKeys": { - "type": "array", - "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", - "items": { - "$ref": "#/components/schemas/CustomerManagedKey" - } - }, - "deletionGracePeriod": { + "by": { "type": "string", - "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", - "example": "alerts-only", + "description": "Throughput measurement method. Use 'operations-per-second' for all new databases.", "enum": [ - "alerts-only", - "immediate", - "15-minutes", - "30-minutes", - "1-hour", - "4-hours", - "8-hours", - "12-hours", - "24-hours" + "operations-per-second", + "number-of-shards" ] - } - }, - "description": "Optional. Contains information about the keys used for each region. Can be used only with external cloud account" - }, - "VpcPeeringCreateBaseRequest": { - "type": "object", - "properties": { - "provider": { - "type": "string" }, - "commandType": { - "type": "string", - "readOnly": true + "value": { + "type": "integer", + "description": "Throughput value in the selected measurement method.", + "format": "int64", + "example": 10000 } }, - "description": "Vpc peering creation request message", - "oneOf": [ - { - "$ref": "#/components/schemas/VpcPeeringCreateAwsRequest" - }, - { - "$ref": "#/components/schemas/VpcPeeringCreateGcpRequest" - } - ] + "description": "Optional. Throughput measurement method." }, - "ComposeDraftAdvanced": { - "example": { - "processor": "{}" - }, + "FixedDatabase": { + "type": "object", "properties": { - "processor": { - "type": "object" - } - }, - "type": "object" - }, - "ComposeDraftSource": { - "oneOf": [ - { - "$ref": "#/components/schemas/PostgresqlSource" - }, - { - "$ref": "#/components/schemas/MySqlSource" - }, - { - "$ref": "#/components/schemas/MariaDbSource" - }, - { - "$ref": "#/components/schemas/OracleSource" - }, - { - "$ref": "#/components/schemas/SqlServerSource" - }, - { - "$ref": "#/components/schemas/MongodbSource" + "databaseId": { + "type": "integer", + "format": "int32" }, - { - "$ref": "#/components/schemas/SnowflakeSource" - } - ], - "type": "object" - }, - "ComposeDraftSourceBase": { - "properties": { "name": { "type": "string" }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "sourceAdvanced": { - "type": "object" - }, - "sinkAdvanced": { - "type": "object" - } - }, - "type": "object" - }, - "ComposeDraftTarget": { - "example": { - "targetBdbId": 1 - }, - "properties": { - "targetBdbId": { - "format": "int64", - "type": "integer" - } - }, - "type": "object" - }, - "ComposeDraftUpsertRequest": { - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "properties": { - "targetDataType": { - "enum": [ - "hash", - "json" - ], - "type": "string" - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSource" - }, - "sourceName": { + "protocol": { + "type": "string", + "enum": [ + "redis", + "memcached", + "stack" + ] + }, + "provider": { "type": "string" }, - "pipelineName": { + "region": { "type": "string" }, - "pipelineDescription": { + "redisVersion": { "type": "string" }, - "target": { - "$ref": "#/components/schemas/ComposeDraftTarget" + "redisVersionCompliance": { + "type": "string", + "deprecated": true }, - "advanced": { - "$ref": "#/components/schemas/ComposeDraftAdvanced" + "respVersion": { + "type": "string", + "enum": [ + "resp2", + "resp3" + ] }, - "schemas": { - "items": { - "$ref": "#/components/schemas/Schema" - }, - "type": "array" + "status": { + "type": "string" }, - "jobs": { - "items": { - "$ref": "#/components/schemas/Job" - }, - "type": "array" + "planMemoryLimit": { + "type": "number", + "format": "double" }, - "clientData": { - "additionalProperties": { - "type": "object" - }, - "type": "object" - } - }, - "type": "object" - }, - "Job": { - "example": { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "planDatasetSize": { + "type": "number", + "format": "double" }, - "rdiJob": { - "key": "" - } - }, - "properties": { - "name": { + "memoryLimitMeasurementUnit": { "type": "string" }, - "file": { - "type": "string" + "memoryLimitInGb": { + "type": "number", + "format": "double" }, - "error": { - "$ref": "#/components/schemas/WebError" + "datasetSizeInGb": { + "type": "number", + "format": "double" }, - "rdiJob": { - "additionalProperties": true, - "type": "object" - } - }, - "required": [ - "file", - "name" - ], - "type": "object" - }, - "MariaDbSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "memoryUsedInMb": { + "type": "number", + "format": "double" }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "serverId": { - "format": "int32", - "type": "integer" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "MongodbSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "networkMonthlyUsageInByte": { + "type": "number", + "format": "double" }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "connectionString": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "MySqlSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "memoryStorage": { + "type": "string", + "enum": [ + "ram", + "ram-and-flash" + ] }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "serverId": { - "format": "int32", - "type": "integer" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "OracleSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "redisFlex": { + "type": "boolean" + }, + "supportOSSClusterApi": { + "type": "boolean" + }, + "useExternalEndpointForOSSClusterApi": { + "type": "boolean" + }, + "dataPersistence": { + "type": "string", + "enum": [ + "none", + "aof-every-1-second", + "aof-every-write", + "snapshot-every-1-hour", + "snapshot-every-6-hours", + "snapshot-every-12-hours" + ] + }, + "replication": { + "type": "boolean" + }, + "dataEvictionPolicy": { + "type": "string", + "enum": [ + "allkeys-lru", + "allkeys-lfu", + "allkeys-lrm", + "allkeys-random", + "volatile-lru", + "volatile-lfu", + "volatile-lrm", + "volatile-random", + "volatile-ttl", + "noeviction" + ] }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "pdb": { + "activatedOn": { + "type": "string", + "format": "date-time" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "publicEndpoint": { + "type": "string" + }, + "privateEndpoint": { + "type": "string" + }, + "dynamicEndpoints": { + "$ref": "#/components/schemas/DynamicEndpoints" + }, + "replicaAsSourceEndpoints": { + "$ref": "#/components/schemas/ReplicaAsSourceEndpoints" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" } - }, - "type": "object" + } } - ], - "type": "object" - }, - "PostgresqlSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" + }, + "example": { + "databaseId": 51324587, + "name": "bdb", + "protocol": "stack", + "provider": "AWS", + "region": "us-east-1", + "status": "draft", + "planMemoryLimit": 250, + "respVersion": "resp2", + "memoryLimitMeasurementUnit": "MB", + "memoryUsedInMb": 7, + "memoryStorage": "ram", + "dataPersistence": "none", + "replication": true, + "dataEvictionPolicy": "noeviction", + "clustering": { + "enabled": false, + "regexRules": [ + { + "ordinal": 0, + "pattern": ".*\\{(?.*)\\}.*" }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" + { + "ordinal": 1, + "pattern": "(?.*)" } + ], + "hashingPolicy": "standard" + }, + "security": { + "defaultUserEnabled": true, + "password": "myCustomPassword", + "sourceIps": [ + "0.0.0.0/0" + ] + }, + "modules": [ + { + "id": 18534, + "name": "RediSearch", + "capabilityName": "Search and query", + "version": "2.2.6", + "description": "A comprehensive, expressive, flexible, fast and developer-friendly search and query engine for the diversity of data types in Redis with state-of-the-art scoring algorithms", + "parameters": [] }, - "type": "object" - } + { + "id": 18535, + "name": "RedisBloom", + "capabilityName": "Probabilistic", + "version": "2.2.12", + "description": "A set of probabilistic data structures to Redis, including Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest", + "parameters": [] + }, + { + "id": 18536, + "name": "RedisJSON", + "capabilityName": "JSON", + "version": "2.0.6", + "description": "Native JSON Data Type for Redis, allowing for atomic reads and writes of sub-elements", + "parameters": [] + }, + { + "id": 18537, + "name": "RedisTimeSeries", + "capabilityName": "Time series", + "version": "1.6.8", + "description": "Time-Series data structure for Redis", + "parameters": [] + } + ], + "alerts": [ + { + "name": "connections-limit", + "value": 80, + "defaultValue": 80 + } + ], + "backup": { + "remoteBackupEnabled": false + }, + "links": [] + } + }, + "DatabaseImportRequest": { + "required": [ + "importFromUri", + "sourceType" ], - "example": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "sourceType": { + "type": "string", + "description": "Type of storage from which to import the database RDB file or Redis data.", + "example": "http", + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] + }, + "importFromUri": { + "type": "array", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "items": { + "type": "string", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." + } + }, + "commandType": { + "type": "string", + "readOnly": true + } }, - "type": "object" - }, - "Properties": { - "type": "object" + "description": "Database import request" }, - "RdiPipelineError": { - "example": { - "code": "code", - "details": { - "key": "{}" + "DatabaseUpgradeRedisVersionRequest": { + "required": [ + "targetRedisVersion" + ], + "type": "object", + "properties": { + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "targetRedisVersion": { + "type": "string", + "description": "The target Redis version the database will be upgraded to. Use GET /subscriptions/redis-versions to get a list of available Redis versions.", + "example": "7.4" }, - "message": "message" + "commandType": { + "type": "string", + "readOnly": true + } }, + "description": "Upgrades the specified Pro database to a later Redis version." + }, + "CustomerManagedKey": { + "required": [ + "resourceName" + ], + "type": "object", "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" + "resourceName": { + "type": "string", + "description": "The resource name of the customer managed key.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" }, - "details": { - "additionalProperties": { - "type": "object" - }, - "type": "object" + "region": { + "type": "string", + "description": "(Required for Active-Active subscriptions only) Region for the customer managed key as defined by the cloud provider." } }, - "type": "object" + "description": "Object representing a customer managed key (CMK), along with the region it is associated to." }, - "Schema": { - "example": { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, + "ActiveActiveRegionCreateRequest": { + "type": "object", "properties": { - "name": { - "type": "string" + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "tables": { + "region": { + "type": "string", + "description": "Name of region to add as defined by the cloud provider." + }, + "vpcId": { + "type": "string", + "description": "Optional. Enter a VPC identifier that exists in the hosted AWS account. Creates a new VPC if not set. VPC Identifier must be in a valid format and must exist within the hosting account.", + "example": "vpc-0125be68a4625884ad" + }, + "deploymentCIDR": { + "type": "string", + "description": "Deployment CIDR mask. Must be a valid CIDR format with a range of 256 IP addresses.", + "example": "10.0.0.0/24" + }, + "subnetIds": { + "type": "array", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']", "items": { - "$ref": "#/components/schemas/Table" - }, - "type": "array" + "type": "string", + "description": "Optional. Enter a list of subnets identifiers that exists in the hosted AWS account. Subnet Identifier must exist within the hosting account.", + "example": "['subnet-0125be68a4625884ad', 'subnet-0125be68a4625884ad','subnet-0125be68a4625884ad']" + } + }, + "securityGroupId": { + "type": "string", + "description": "Optional. Enter a security group identifier that exists in the hosted AWS account. Security group Identifier must be in a valid format (for example: 'sg-0125be68a4625884ad') and must exist within the hosting account.", + "example": "sg-0125be68a4625884ad" + }, + "multipleAvailabilityZones": { + "type": "boolean", + "description": "Optional. Support deployment on multiple availability zones within the selected region. When omitted, defaults to true unless the region is explicitly marked as not supporting multi-AZ.", + "example": false + }, + "preferredAvailabilityZones": { + "type": "array", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region.", + "items": { + "type": "string", + "description": "Optional. List the zone IDs for your preferred availability zones for the cloud provider and region." + } + }, + "dryRun": { + "type": "boolean", + "description": "Optional. When 'false': Creates a deployment plan and deploys it, creating any resources required by the plan. When 'true': creates a read-only deployment plan, and does not create any resources. Default: 'false'", + "example": false + }, + "databases": { + "type": "array", + "description": "List of databases in the subscription with local throughput details. Default: 1000 read and write ops/sec for each database", + "items": { + "$ref": "#/components/schemas/CrdbRegionSpec" + } + }, + "respVersion": { + "type": "string", + "description": "Optional. RESP version must be compatible with Redis version.", + "example": "resp3", + "deprecated": true, + "enum": [ + "resp2", + "resp3" + ] + }, + "customerManagedKeyResourceName": { + "type": "string", + "description": "Required for subscriptions where 'persistentStorageEncryptionType' is 'customer-managed-key'. The resource name of the customer-managed encryption key for the region.", + "example": "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" + }, + "commandType": { + "type": "string", + "readOnly": true } }, + "description": "Active active region creation request message" + }, + "FixedDatabaseImportRequest": { "required": [ - "name" + "importFromUri", + "sourceType" ], - "type": "object" - }, - "SnowflakeSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "type": "object", + "properties": { + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "accountIdentifier": { - "type": "string" - }, - "warehouse": { - "type": "string" - }, - "role": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "SqlServerSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" + "databaseId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "Table": { - "example": { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true + "sourceType": { + "type": "string", + "description": "Type of storage from which to import the database RDB file or Redis data.", + "example": "http", + "enum": [ + "http", + "redis", + "ftp", + "aws-s3", + "azure-blob-storage", + "google-blob-storage" + ] + }, + "importFromUri": { + "type": "array", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type.", + "items": { + "type": "string", + "description": "One or more paths to source data files or Redis databases, as appropriate to specified source type." } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" + }, + "commandType": { + "type": "string", + "readOnly": true + } }, + "description": "Database import request" + }, + "PrivateLinkPrincipalsDeleteRequest": { + "required": [ + "principal" + ], + "type": "object", "properties": { - "name": { - "type": "string" + "subscriptionId": { + "type": "integer", + "format": "int32", + "readOnly": true }, - "columns": { - "items": { - "$ref": "#/components/schemas/TableColumn" - }, - "type": "array" + "principal": { + "type": "string", + "description": "An AWS account ID or ARN to remove from the private link", + "example": "123456789012" }, - "snapshot_sql": { - "type": "string" + "commandType": { + "type": "string", + "readOnly": true } }, + "description": "Private Link principals delete request" + }, + "CustomerManagedKeyProperties": { "required": [ - "name" + "customerManagedKeys" ], - "type": "object" - }, - "TableColumn": { - "example": { - "name": "name", - "uniqueConstraint": true + "type": "object", + "properties": { + "customerManagedKeys": { + "type": "array", + "description": "The customer managed keys (CMK) to use for this subscription. If is active-active subscription, must set a key for each region.", + "items": { + "$ref": "#/components/schemas/CustomerManagedKey" + } + }, + "deletionGracePeriod": { + "type": "string", + "description": "Optional. The grace period for deleting the subscription if Redis cannot access the provided key. Required when applying customer managed keys for a new subscription.", + "example": "alerts-only", + "enum": [ + "alerts-only", + "immediate", + "15-minutes", + "30-minutes", + "1-hour", + "4-hours", + "8-hours", + "12-hours", + "24-hours" + ] + } }, + "description": "Optional. Contains information about the keys used for each region. Can be used only with external cloud account" + }, + "VpcPeeringCreateBaseRequest": { + "type": "object", "properties": { - "name": { + "provider": { "type": "string" }, - "uniqueConstraint": { - "type": "boolean" + "commandType": { + "type": "string", + "readOnly": true } }, - "required": [ - "name" - ], - "type": "object" + "description": "Vpc peering creation request message", + "oneOf": [ + { + "$ref": "#/components/schemas/VpcPeeringCreateAwsRequest" + }, + { + "$ref": "#/components/schemas/VpcPeeringCreateGcpRequest" + } + ] }, - "WebError": { - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, + "ComposeDraftAdvanced": { + "type": "object", "properties": { - "timestamp": { - "format": "int64", - "type": "integer" + "processor": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "ComposeDraftSource": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/PostgresqlSource" }, - "status": { - "format": "int32", - "type": "integer" + { + "$ref": "#/components/schemas/MySqlSource" }, - "code": { + { + "$ref": "#/components/schemas/MariaDbSource" + }, + { + "$ref": "#/components/schemas/OracleSource" + }, + { + "$ref": "#/components/schemas/SqlServerSource" + }, + { + "$ref": "#/components/schemas/MongodbSource" + }, + { + "$ref": "#/components/schemas/SnowflakeSource" + } + ] + }, + "ComposeDraftSourceBase": { + "type": "object", + "properties": { + "name": { "type": "string" }, - "message": { + "endpointId": { "type": "string" }, - "params": { + "host": { "type": "string" }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiPipelineError" - }, - "type": "array" - } - }, - "type": "object" - }, - "ComposeDraftResponse": { - "example": { - "draftId": "draftId", - "advanced": { - "processor": "{}" + "databaseType": { + "type": "string" }, - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null + "database": { + "type": "string" }, - "target": { - "targetBdbId": 1 + "port": { + "type": "integer", + "format": "int32" }, - "pipelineName": "pipelineName", - "createdAt": "2000-01-23T04:56:07.000+00:00", - "pipelineDescription": "pipelineDescription", - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" } - ], - "sourceName": "sourceName", - "clientData": { - "key": "{}" }, - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "ComposeDraftTarget": { + "type": "object", + "properties": { + "targetBdbId": { + "type": "integer", + "format": "int64" + } + } + }, + "ComposeDraftUpsertRequest": { + "type": "object", "properties": { - "draftId": { - "type": "string" - }, "targetDataType": { + "type": "string", "enum": [ "hash", "json" - ], - "type": "string" + ] }, "source": { "$ref": "#/components/schemas/ComposeDraftSource" @@ -29588,2585 +20644,1430 @@ "$ref": "#/components/schemas/ComposeDraftAdvanced" }, "schemas": { + "type": "array", "items": { "$ref": "#/components/schemas/Schema" - }, - "type": "array" + } }, "jobs": { + "type": "array", "items": { "$ref": "#/components/schemas/Job" - }, - "type": "array" + } }, "clientData": { + "type": "object", "additionalProperties": { "type": "object" - }, - "type": "object" - }, - "createdAt": { - "format": "date-time", - "type": "string" - }, - "updatedAt": { - "format": "date-time", - "type": "string" + } } - }, - "type": "object" + } }, - "Advanced": { - "example": { - "sink": "{}", - "source": "{}" - }, + "Job": { + "required": [ + "file", + "name" + ], + "type": "object", "properties": { - "source": { - "type": "object" + "name": { + "type": "string" }, - "sink": { - "type": "object" + "file": { + "type": "string" + }, + "error": { + "$ref": "#/components/schemas/WebError" + }, + "rdiJob": { + "type": "object", + "additionalProperties": { + "type": "object" + } } - }, - "type": "object" + } }, - "Aws": { - "example": { - "privateLink": { - "endpoint": { - "vpceId": "vpceId" - }, - "serviceName": "serviceName" - } - }, - "properties": { - "privateLink": { - "$ref": "#/components/schemas/PrivateLink" + "MariaDbSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "serverId": { + "type": "integer", + "format": "int32" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } } - }, - "type": "object" + ] }, - "Endpoint": { - "example": { - "vpceId": "vpceId" - }, - "properties": { - "vpceId": { - "type": "string" + "MongodbSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "connectionString": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } } - }, - "type": "object" + ] }, - "Pipeline": { - "example": { - "name": "name", - "deploymentCIDR": "deploymentCIDR" - }, - "properties": { - "name": { - "type": "string" + "MySqlSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "deploymentCIDR": { - "type": "string" + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "serverId": { + "type": "integer", + "format": "int32" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } } - }, - "type": "object" + ] }, - "PipelineInfraDto": { - "example": { - "pipeline": { - "name": "name", - "deploymentCIDR": "deploymentCIDR" - }, - "source": { - "dbPass": "dbPass", - "databases": "databases", - "connectivityMode": "privateLink", - "advanced": { - "sink": "{}", - "source": "{}" - }, - "dbUseMTLS": true, - "dbType": "mysql", - "datasetSizeGB": 0, - "dbHost": "dbHost", - "dbServerId": 1, - "pdb": "pdb", - "dbPort": 6, - "dbSecretsARN": "dbSecretsARN", - "dbUseTLS": true, - "dbClientCertARN": "dbClientCertARN", - "dbCaCertARN": "dbCaCertARN", - "dbUser": "dbUser", - "dbConnectionString": "dbConnectionString", - "id": "id", - "dbClientKeyARN": "dbClientKeyARN", - "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" + "OracleSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "aws": { - "privateLink": { - "endpoint": { - "vpceId": "vpceId" + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" }, - "serviceName": "serviceName" + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "pdb": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } } } - }, - "properties": { - "pipeline": { - "$ref": "#/components/schemas/Pipeline" - }, - "aws": { - "$ref": "#/components/schemas/Aws" - }, - "source": { - "$ref": "#/components/schemas/Source" - } - }, - "type": "object" + ] }, - "PrivateLink": { - "example": { - "endpoint": { - "vpceId": "vpceId" - }, - "serviceName": "serviceName" - }, - "properties": { - "serviceName": { - "type": "string" + "PostgresqlSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "endpoint": { - "$ref": "#/components/schemas/Endpoint" + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" + } + } } - }, + ] + }, + "Properties": { "type": "object" }, - "Source": { - "example": { - "dbPass": "dbPass", - "databases": "databases", - "connectivityMode": "privateLink", - "advanced": { - "sink": "{}", - "source": "{}" - }, - "dbUseMTLS": true, - "dbType": "mysql", - "datasetSizeGB": 0, - "dbHost": "dbHost", - "dbServerId": 1, - "pdb": "pdb", - "dbPort": 6, - "dbSecretsARN": "dbSecretsARN", - "dbUseTLS": true, - "dbClientCertARN": "dbClientCertARN", - "dbCaCertARN": "dbCaCertARN", - "dbUser": "dbUser", - "dbConnectionString": "dbConnectionString", - "id": "id", - "dbClientKeyARN": "dbClientKeyARN", - "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" - }, + "Schema": { + "required": [ + "name" + ], + "type": "object", "properties": { - "connectivityMode": { - "enum": [ - "privateLink", - "publicEndpoint" - ], - "type": "string" - }, - "id": { - "type": "string" - }, - "dbType": { - "enum": [ - "mysql", - "mariadb", - "oracle", - "sqlserver", - "postgresql", - "mongodb", - "snowflake" - ], - "type": "string" - }, - "datasetSizeGB": { - "format": "int32", - "type": "integer" - }, - "dbSecretsARN": { - "type": "string" - }, - "dbUseTLS": { - "type": "boolean" - }, - "dbUseMTLS": { - "type": "boolean" - }, - "dbCaCertARN": { - "type": "string" - }, - "dbClientCertARN": { - "type": "string" - }, - "dbClientKeyARN": { - "type": "string" - }, - "dbClientKeyPasswordARN": { - "type": "string" - }, - "dbPort": { - "format": "int32", - "type": "integer" - }, - "dbServerId": { - "format": "int32", - "type": "integer" - }, - "dbConnectionString": { - "type": "string" - }, - "databases": { - "type": "string" - }, - "pdb": { - "type": "string" - }, - "advanced": { - "$ref": "#/components/schemas/Advanced" - }, - "dbHost": { - "type": "string" - }, - "dbUser": { + "name": { "type": "string" }, - "dbPass": { - "type": "string" - } - }, - "type": "object" - }, - "PipelineConfigAdvanced": { - "example": { - "processor": "{}" - }, - "properties": { - "processor": { - "type": "object" + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + } } - }, - "type": "object" + } }, - "PipelineConfigDto": { - "example": { - "advanced": { - "processor": "{}" + "SnowflakeSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "accountIdentifier": { + "type": "string" + }, + "warehouse": { + "type": "string" + }, + "role": { + "type": "string" + }, + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" }, - "rdiJob": { - "key": "" + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" } } - ], - "targetDataType": "hash", - "definitionType": "predefined" - }, - "properties": { - "targetDataType": { - "enum": [ - "hash", - "json" - ], - "type": "string" - }, - "definitionType": { - "enum": [ - "predefined", - "manual" - ], - "type": "string" - }, - "schemas": { - "items": { - "$ref": "#/components/schemas/Schema" - }, - "type": "array" - }, - "jobs": { - "items": { - "$ref": "#/components/schemas/Job" - }, - "type": "array" - }, - "advanced": { - "$ref": "#/components/schemas/PipelineConfigAdvanced" } - }, - "required": [ - "definitionType", - "targetDataType" - ], - "type": "object" + ] }, - "PipelineConfigJobsResponseDto": { - "example": { - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "SqlServerSource": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/ComposeDraftSourceBase" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 + "endpointId": { + "type": "string" + }, + "host": { + "type": "string" + }, + "databaseType": { + "type": "string" + }, + "database": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "secretArns": { + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "rdiJob": { - "key": "" + "sourceAdvanced": { + "$ref": "#/components/schemas/Properties" + }, + "sinkAdvanced": { + "$ref": "#/components/schemas/Properties" } } - ] - }, - "properties": { - "jobs": { - "items": { - "$ref": "#/components/schemas/Job" - }, - "type": "array" } - }, - "type": "object" + ] }, - "EulaAcceptanceResponseDto": { - "example": { - "accepted": true, - "acceptedAt": "2000-01-23T04:56:07.000+00:00" - }, + "Table": { + "required": [ + "name" + ], + "type": "object", "properties": { - "accepted": { - "type": "boolean" + "name": { + "type": "string" }, - "acceptedAt": { - "format": "date-time", + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableColumn" + } + }, + "snapshot_sql": { "type": "string" } - }, - "type": "object" + } }, - "WorkspaceCreateRequest": { - "example": { - "cidr": "cidr" - }, - "properties": { - "cidr": { - "type": "string", - "description": "CIDR block for the workspace deployment network." - } - }, + "TableColumn": { + "required": [ + "name" + ], "type": "object", - "description": "Request to provision a data integration workspace for a Redis Cloud subscription." - }, - "TaskLink": { - "example": { - "href": "href", - "type": "type" - }, "properties": { - "href": { - "type": "string", - "description": "Link URL." + "name": { + "type": "string" }, - "type": { - "type": "string", - "description": "Linked resource type." + "uniqueConstraint": { + "type": "boolean" } - }, - "type": "object", - "description": "Hypermedia link." + } }, - "TaskLinks": { - "example": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "properties": { - "task": { - "$ref": "#/components/schemas/TaskLink", - "description": "Link to the workspace task." - }, - "resource": { - "$ref": "#/components/schemas/TaskLink", - "description": "Link to the affected workspace resource." - } - }, + "WebError": { "type": "object", - "description": "Links related to a workspace task." - }, - "WorkspaceTaskResponse": { - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, "properties": { - "taskId": { - "type": "string", - "description": "Workspace task ID." - }, - "commandType": { - "type": "string", - "description": "Workspace operation that created the task." + "timestamp": { + "type": "integer", + "format": "int64" }, "status": { - "type": "string", - "description": "Current task status." - }, - "description": { - "type": "string", - "description": "Human-readable task status or failure details." + "type": "integer", + "format": "int32" }, - "timestamp": { - "format": "date-time", - "type": "string", - "description": "Time when the task status was recorded." + "code": { + "type": "string" }, - "response": { - "type": "object", - "description": "Task result payload. Completed workspace tasks can include the current workspace response." + "message": { + "type": "string" }, - "_links": { - "$ref": "#/components/schemas/TaskLinks", - "description": "Links to the task and affected workspace resource." + "params": { + "type": "string" } - }, - "type": "object", - "description": "Asynchronous task created by a workspace operation." + } }, - "SecretValidationRequestDto": { - "example": { - "credentialsSecretArn": "credentialsSecretArn", - "clientCertSecretArn": "clientCertSecretArn", - "clientKeySecretArn": "clientKeySecretArn", - "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", - "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", - "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", - "caCertSecretArn": "caCertSecretArn", - "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" - }, + "ComposeDraftResponse": { + "type": "object", "properties": { - "credentialsSecretArn": { + "draftId": { "type": "string" }, - "caCertSecretArn": { + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "source": { + "$ref": "#/components/schemas/ComposeDraftSource" + }, + "sourceName": { "type": "string" }, - "clientCertSecretArn": { + "pipelineName": { "type": "string" }, - "clientKeySecretArn": { + "pipelineDescription": { "type": "string" }, - "clientKeyPassphraseSecretArn": { - "type": "string" + "target": { + "$ref": "#/components/schemas/ComposeDraftTarget" + }, + "advanced": { + "$ref": "#/components/schemas/ComposeDraftAdvanced" + }, + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + } + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } }, - "snowflakeCredentialsSecretArn": { - "type": "string" + "clientData": { + "type": "object", + "additionalProperties": { + "type": "object" + } }, - "snowflakePrivateKeySecretArn": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time" }, - "snowflakePrivateKeyPassphraseSecretArn": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time" } - }, - "type": "object" + } }, - "SecretError": { - "example": { - "code": "code", - "message": "message" - }, + "Advanced": { + "type": "object", "properties": { - "code": { - "type": "string" + "source": { + "$ref": "#/components/schemas/Properties" }, - "message": { - "type": "string" + "sink": { + "$ref": "#/components/schemas/Properties" } - }, - "type": "object" + } }, - "SecretValidationResponseDto": { - "example": { - "success": true, - "errors": [ - { - "code": "code", - "message": "message" - }, - { - "code": "code", - "message": "message" - } - ] - }, + "Aws": { + "type": "object", "properties": { - "success": { - "type": "boolean" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/SecretError" - }, - "type": "array" + "privateLink": { + "$ref": "#/components/schemas/PrivateLink" } - }, - "type": "object" + } }, - "SingleSecretValidationRequestDto": { - "example": { - "purpose": "source-credentials", - "secretArn": "secretArn" - }, + "Endpoint": { + "type": "object", "properties": { - "secretArn": { - "type": "string" - }, - "purpose": { - "enum": [ - "source-credentials", - "source-tls-ca", - "source-mtls-client-cert", - "source-mtls-client-key", - "source-mtls-key-password", - "source-snowflake-credentials", - "source-snowflake-private-key", - "source-snowflake-key-password" - ], + "vpceId": { "type": "string" } - }, - "required": [ - "purpose", - "secretArn" - ], - "type": "object" + } }, - "SingleSecretValidationResponseDto": { - "example": { - "success": true, - "errorCode": "errorCode", - "error": "error" - }, + "Pipeline": { + "type": "object", "properties": { - "success": { - "type": "boolean" - }, - "errorCode": { + "name": { "type": "string" }, - "error": { - "type": "string" - } - }, - "type": "object" - }, - "CreatePrivateLinkEndpointRequest": { - "example": { - "serviceName": "serviceName" - }, - "properties": { - "serviceName": { + "deploymentCIDR": { "type": "string" } - }, - "required": [ - "serviceName" - ], - "type": "object" + } }, - "PrivateLinkValidationResponse": { - "example": { - "success": true, - "error": "error" - }, + "PipelineInfraDto": { + "type": "object", "properties": { - "success": { - "type": "boolean" + "pipeline": { + "$ref": "#/components/schemas/Pipeline" }, - "error": { - "type": "string" + "aws": { + "$ref": "#/components/schemas/Aws" + }, + "source": { + "$ref": "#/components/schemas/Source" } - }, - "type": "object" + } }, - "PrivateLinkValidationRequest": { - "example": { - "serviceName": "serviceName" - }, + "PrivateLink": { + "type": "object", "properties": { "serviceName": { "type": "string" + }, + "endpoint": { + "$ref": "#/components/schemas/Endpoint" } - }, - "required": [ - "serviceName" - ], - "type": "object" + } }, - "ComposeDraftCreatedResponse": { - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "draftId": "draftId", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, + "Source": { + "type": "object", "properties": { - "draftId": { - "type": "string" + "connectivityMode": { + "type": "string", + "enum": [ + "privateLink", + "publicEndpoint" + ] }, - "createdAt": { - "format": "date-time", + "id": { "type": "string" }, - "updatedAt": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "PipelineComponentResponse": { - "example": { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - "properties": { - "name": { - "type": "string" + "dbType": { + "type": "string", + "enum": [ + "mysql", + "mariadb", + "oracle", + "sqlserver", + "postgresql", + "mongodb", + "snowflake" + ] }, - "type": { - "type": "string" + "datasetSizeGB": { + "type": "integer", + "format": "int32" }, - "version": { + "dbSecretsARN": { "type": "string" }, - "status": { - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "type": "string" + "dbUseTLS": { + "type": "boolean" }, - "errors": { - "items": { - "type": "string" - }, - "type": "array" + "dbUseMTLS": { + "type": "boolean" }, - "metricCollections": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "RdiPipelineResponse": { - "example": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" + "dbCaCertARN": { + "type": "string" }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" - }, - "properties": { - "errorOtherThanJobValidationError": { - "type": "boolean" + "dbClientCertARN": { + "type": "string" }, - "name": { + "dbClientKeyARN": { "type": "string" }, - "active": { - "type": "boolean" + "dbClientKeyPasswordARN": { + "type": "string" }, - "config": { - "additionalProperties": { - "type": "object" - }, - "type": "object" + "dbPort": { + "type": "integer", + "format": "int32" }, - "status": { - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "type": "string" + "dbServerId": { + "type": "integer", + "format": "int32" }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiPipelineError" - }, - "type": "array" + "dbConnectionString": { + "type": "string" }, - "components": { - "items": { - "$ref": "#/components/schemas/PipelineComponentResponse" - }, - "type": "array" + "databases": { + "type": "string" }, - "current": { - "type": "boolean" - } - }, - "type": "object" - }, - "ComposeTranslateRequest": { - "example": { - "cloud": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } + "pdb": { + "type": "string" }, - "rdi": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" - }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" + "advanced": { + "$ref": "#/components/schemas/Advanced" }, - "direction": "cloud-to-rdi" - }, - "properties": { - "direction": { - "enum": [ - "cloud-to-rdi", - "rdi-to-cloud" - ], + "dbHost": { "type": "string" }, - "cloud": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + "dbUser": { + "type": "string" }, - "rdi": { - "$ref": "#/components/schemas/RdiPipelineResponse" + "dbPass": { + "type": "string" } - }, - "type": "object" + } }, - "ComposeTranslateResponse": { - "example": { - "rdi": { - "active": true, - "config": { - "key": "{}" - } - }, - "draft": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "warnings": [ - "warnings", - "warnings" - ] - }, + "PipelineConfigAdvanced": { + "type": "object", "properties": { - "draft": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + "processor": { + "$ref": "#/components/schemas/Properties" + } + } + }, + "PipelineConfigDto": { + "required": [ + "definitionType", + "targetDataType" + ], + "type": "object", + "properties": { + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] + }, + "definitionType": { + "type": "string", + "enum": [ + "predefined", + "manual" + ] }, - "rdi": { - "$ref": "#/components/schemas/RdiPatchRequest" + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schema" + } }, - "warnings": { + "jobs": { + "type": "array", "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "RdiPatchRequest": { - "example": { - "active": true, - "config": { - "key": "{}" - } - }, - "properties": { - "active": { - "type": "boolean" + "$ref": "#/components/schemas/Job" + } }, - "config": { - "additionalProperties": { - "type": "object" - }, - "type": "object" + "advanced": { + "$ref": "#/components/schemas/PipelineConfigAdvanced" } - }, - "type": "object" + } }, - "PipelineCreateRequestDto": { - "example": { - "targetBdbId": 1 - }, + "PipelineConfigJobsResponseDto": { + "type": "object", "properties": { - "targetBdbId": { - "format": "int64", - "minimum": 1, - "type": "integer" + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Job" + } } - }, - "required": [ - "targetBdbId" - ], - "type": "object" + } }, - "PipelineCreateResponseDto": { - "example": { - "pipelineId": "pipelineId" - }, + "EulaAcceptanceResponseDto": { + "type": "object", "properties": { - "pipelineId": { - "type": "string" + "accepted": { + "type": "boolean" + }, + "acceptedAt": { + "type": "string", + "format": "date-time" } - }, - "required": [ - "pipelineId" - ], - "type": "object" + } }, - "ResetPipelineRequestDto": { - "example": { - "flush": true - }, + "WorkspaceCreateRequest": { + "type": "object", "properties": { - "flush": { - "type": "boolean" + "cidr": { + "type": "string", + "description": "CIDR block for the workspace deployment network." } }, - "type": "object" + "description": "Request to provision a data integration workspace for a Redis Cloud subscription." }, - "DeployPipelineRequestDto": { - "example": { - "reset": { - "flush": true - } - }, + "TaskLink": { + "type": "object", "properties": { - "reset": { - "$ref": "#/components/schemas/ResetPipelineRequestDto" + "href": { + "type": "string", + "description": "Link URL." + }, + "type": { + "type": "string", + "description": "Linked resource type." } }, - "type": "object" + "description": "Hypermedia link." }, - "WorkspaceClusterRef": { - "example": { - "id": 5 - }, + "TaskLinks": { + "type": "object", "properties": { - "id": { - "format": "int64", - "type": "integer" + "task": { + "$ref": "#/components/schemas/TaskLink", + "description": "Link to the workspace task." + }, + "resource": { + "$ref": "#/components/schemas/TaskLink", + "description": "Link to the affected workspace resource." } }, - "type": "object" + "description": "Links related to a workspace task." }, - "WorkspaceDatabaseResponse": { - "example": { - "cluster": { - "id": 5 - }, - "publicDnsAddress": "publicDnsAddress", - "memorySize": 6, - "dnsAddress": "dnsAddress", - "sslEnabled": true, - "name": "name", - "defaultUser": true, - "subscription": { - "id": 1 - }, - "throughput": 5, - "databaseId": 0, - "type": "type", - "status": "status" - }, + "WorkspaceTaskResponse": { + "type": "object", "properties": { - "databaseId": { - "format": "int64", - "type": "integer" + "taskId": { + "type": "string", + "description": "Workspace task ID." }, - "name": { - "type": "string" + "commandType": { + "type": "string", + "description": "Workspace operation that created the task." }, "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "memorySize": { - "format": "int64", - "type": "integer" - }, - "subscription": { - "$ref": "#/components/schemas/WorkspaceSubscriptionRef" - }, - "cluster": { - "$ref": "#/components/schemas/WorkspaceClusterRef" - }, - "dnsAddress": { - "type": "string" + "type": "string", + "description": "Current task status." }, - "publicDnsAddress": { - "type": "string" + "description": { + "type": "string", + "description": "Human-readable task status or failure details." }, - "sslEnabled": { - "type": "boolean" + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Time when the task status was recorded." }, - "throughput": { - "format": "int64", - "type": "integer" + "response": { + "type": "object", + "description": "Task result payload. Completed workspace tasks can include the current workspace response." }, - "defaultUser": { - "type": "boolean" - } - }, - "type": "object" - }, - "WorkspaceDatabasesResponse": { - "example": { - "databases": [ - { - "cluster": { - "id": 5 - }, - "publicDnsAddress": "publicDnsAddress", - "memorySize": 6, - "dnsAddress": "dnsAddress", - "sslEnabled": true, - "name": "name", - "defaultUser": true, - "subscription": { - "id": 1 - }, - "throughput": 5, - "databaseId": 0, - "type": "type", - "status": "status" - }, - { - "cluster": { - "id": 5 - }, - "publicDnsAddress": "publicDnsAddress", - "memorySize": 6, - "dnsAddress": "dnsAddress", - "sslEnabled": true, - "name": "name", - "defaultUser": true, - "subscription": { - "id": 1 - }, - "throughput": 5, - "databaseId": 0, - "type": "type", - "status": "status" - } - ] - }, - "properties": { - "databases": { - "items": { - "$ref": "#/components/schemas/WorkspaceDatabaseResponse" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkspaceSubscriptionRef": { - "example": { - "id": 1 - }, - "properties": { - "id": { - "format": "int64", - "type": "integer" + "_links": { + "$ref": "#/components/schemas/TaskLinks", + "description": "Links to the task and affected workspace resource." } }, - "type": "object" + "description": "Asynchronous task created by a workspace operation." }, - "Capabilities": { - "example": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, + "SecretValidationRequestDto": { + "type": "object", "properties": { - "validateSecrets": { - "type": "boolean", - "description": "Whether the workspace can validate secret ARNs." + "credentialsSecretArn": { + "type": "string" }, - "validatePrivateLink": { - "type": "boolean", - "description": "Whether the workspace can validate PrivateLink endpoint service names." + "caCertSecretArn": { + "type": "string" }, - "readyForPipeline": { - "type": "boolean", - "description": "Whether the workspace is ready to create and deploy RDI pipelines." + "clientCertSecretArn": { + "type": "string" }, - "createPrivateLink": { - "type": "boolean", - "description": "Whether the workspace can create PrivateLink endpoints." + "clientKeySecretArn": { + "type": "string" + }, + "clientKeyPassphraseSecretArn": { + "type": "string" } - }, - "type": "object", - "description": "Workspace capabilities available in the current state." + } }, - "InfrastructureError": { - "example": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, + "SecretError": { + "type": "object", "properties": { "code": { - "type": "string", - "description": "Machine-readable error code." + "type": "string" }, "message": { - "type": "string", - "description": "Human-readable error message." - }, - "timestamp": { - "format": "date-time", - "type": "string", - "description": "Time when the error was recorded." - }, - "details": { - "additionalProperties": { - "type": "object" - }, - "type": "object", - "description": "Additional structured error details." + "type": "string" } - }, - "type": "object", - "description": "Infrastructure failure details." + } }, - "InfrastructureIam": { - "example": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, + "SecretValidationResponseDto": { + "type": "object", "properties": { - "privateLinkAllowedPrincipal": { - "type": "string", - "description": "AWS principal allowed to connect to the workspace PrivateLink endpoint service." + "success": { + "type": "boolean" }, - "secretsRoleArn": { - "type": "string", - "description": "AWS IAM role ARN used to read workspace secrets." + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SecretError" + } } - }, - "type": "object", - "description": "IAM values produced for workspace integrations." + } }, - "InfrastructureResponse": { - "example": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" + "SingleSecretValidationRequestDto": { + "required": [ + "purpose", + "secretArn" + ], + "type": "object", + "properties": { + "secretArn": { + "type": "string" }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" + "purpose": { + "type": "string", + "enum": [ + "source-credentials", + "source-tls-ca", + "source-mtls-client-cert", + "source-mtls-client-key", + "source-mtls-key-password" ] + } + } + }, + "SingleSecretValidationResponseDto": { + "type": "object", + "properties": { + "success": { + "type": "boolean" }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } + "errorCode": { + "type": "string" }, "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" + "type": "string" } - }, + } + }, + "CreatePrivateLinkEndpointRequest": { + "required": [ + "serviceName" + ], + "type": "object", "properties": { - "state": { - "enum": [ - "NotProvisioned", - "Provisioning", - "Ready", - "Deleting", - "Failed" - ], - "type": "string", - "description": "Workspace infrastructure state." - }, - "cidr": { - "type": "string", - "description": "CIDR block assigned to the workspace deployment network." - }, - "timestamps": { - "$ref": "#/components/schemas/InfrastructureTimestamps", - "description": "Infrastructure lifecycle timestamps." - }, - "iam": { - "$ref": "#/components/schemas/InfrastructureIam", - "description": "IAM values used by workspace integrations." - }, - "networking": { - "$ref": "#/components/schemas/NetworkingOutput", - "description": "Workspace networking outputs." - }, - "monitoring": { - "$ref": "#/components/schemas/MonitoringOutput", - "description": "Workspace monitoring endpoints." + "serviceName": { + "type": "string" + } + } + }, + "PrivateLinkValidationResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" }, "error": { - "$ref": "#/components/schemas/InfrastructureError", - "description": "Infrastructure error details when the workspace is in a failed state." + "type": "string" } - }, + } + }, + "PrivateLinkValidationRequest": { + "required": [ + "serviceName" + ], "type": "object", - "description": "Provisioned infrastructure state for a data integration workspace." + "properties": { + "serviceName": { + "type": "string" + } + } }, - "InfrastructureTimestamps": { - "example": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, + "ComposeDraftCreatedResponse": { + "type": "object", "properties": { - "startedAt": { - "format": "date-time", + "draftId": { + "type": "string" + }, + "createdAt": { "type": "string", - "description": "Time when infrastructure provisioning started." + "format": "date-time" }, "updatedAt": { - "format": "date-time", "type": "string", - "description": "Time when infrastructure state was last updated." + "format": "date-time" } - }, - "type": "object", - "description": "Workspace infrastructure lifecycle timestamps." + } }, - "MetricsUrls": { - "example": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - }, + "PipelineComponentResponse": { + "type": "object", "properties": { - "rdiOperatorUrl": { - "type": "string", - "description": "Metrics endpoint URL for the RDI operator." + "name": { + "type": "string" }, - "rdiProcessorUrl": { + "type": { + "type": "string" + }, + "version": { + "type": "string" + }, + "status": { "type": "string", - "description": "Metrics endpoint URL for the RDI processor." + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ] }, - "collectorSourceUrls": { - "additionalProperties": { + "errors": { + "type": "array", + "items": { "type": "string" - }, - "type": "object", - "description": "Metrics endpoint URLs for deployed collector sources, keyed by source name." + } + }, + "metricCollections": { + "type": "array", + "items": { + "type": "string" + } } - }, - "type": "object", - "description": "Metrics endpoint URLs for RDI workspace components." + } }, - "MonitoringOutput": { - "example": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "properties": { - "metricsUrls": { - "$ref": "#/components/schemas/MetricsUrls", - "description": "Metrics endpoint URLs for workspace components." - } - }, + "RdiPipelineError": { "type": "object", - "description": "Workspace monitoring outputs." - }, - "NetworkingOutput": { - "example": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, "properties": { - "egressIps": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Outbound IP addresses used by workspace components." + "code": { + "type": "string" }, - "availabilityZones": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Availability zones used by workspace infrastructure." + "message": { + "type": "string" + }, + "details": { + "type": "object", + "additionalProperties": { + "type": "object" + } } - }, - "type": "object", - "description": "Workspace networking outputs." + } }, - "WorkspaceResponse": { - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true + "RdiPipelineResponse": { + "type": "object", + "properties": { + "errorOtherThanJobValidationError": { + "type": "boolean" }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } + "name": { + "type": "string" }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - }, - "properties": { - "subscriptionId": { - "format": "int64", - "type": "integer", - "description": "Redis Cloud subscription ID." + "active": { + "type": "boolean" }, - "bdbId": { - "format": "int64", - "type": "integer", - "description": "Redis database ID associated with the workspace." + "config": { + "type": "object", + "additionalProperties": { + "type": "object" + } }, - "rcpClusterId": { + "status": { "type": "string", - "description": "RCP cluster ID that hosts workspace resources." + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" + ] }, - "region": { - "type": "string", - "description": "Cloud provider region where the workspace is deployed." + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RdiPipelineError" + } }, - "vpcId": { - "type": "string", - "description": "VPC ID used by the workspace." + "components": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineComponentResponse" + } }, - "createdAt": { - "format": "date-time", + "current": { + "type": "boolean" + } + } + }, + "ComposeTranslateRequest": { + "type": "object", + "properties": { + "direction": { "type": "string", - "description": "Time when the workspace record was created." + "enum": [ + "cloud-to-rdi", + "rdi-to-cloud" + ] }, - "infrastructure": { - "$ref": "#/components/schemas/InfrastructureResponse", - "description": "Provisioned infrastructure state and connection details." + "cloud": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" }, - "capabilities": { - "$ref": "#/components/schemas/Capabilities", - "description": "Workspace features available in the current state." + "rdi": { + "$ref": "#/components/schemas/RdiPipelineResponse" } - }, - "type": "object", - "description": "Current data integration workspace state for a subscription." + } }, - "WorkspaceTasksResponse": { - "example": { - "tasks": [ - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - ] - }, + "ComposeTranslateResponse": { + "type": "object", "properties": { - "tasks": { - "items": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, + "draft": { + "$ref": "#/components/schemas/ComposeDraftUpsertRequest" + }, + "rdi": { + "$ref": "#/components/schemas/RdiPatchRequest" + }, + "warnings": { "type": "array", - "description": "Workspace tasks." + "items": { + "type": "string" + } } - }, - "type": "object", - "description": "Response containing asynchronous workspace tasks." + } }, - "CidrsInfoResponse": { - "example": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - }, + "RdiPatchRequest": { + "type": "object", "properties": { - "usedCidrs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultCidr": { - "type": "string" + "active": { + "type": "boolean" }, - "nextFreeCidr": { + "config": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "PipelineCreateRequestDto": { + "required": [ + "targetBdbId" + ], + "type": "object", + "properties": { + "targetBdbId": { + "minimum": 1, + "type": "integer", + "format": "int64" + } + } + }, + "PipelineCreateResponseDto": { + "required": [ + "pipelineId" + ], + "type": "object", + "properties": { + "pipelineId": { "type": "string" } - }, - "type": "object" + } }, - "PrivateLinkEndpointListResponse": { - "example": { - "endpoints": [ - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - }, - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - } - ] - }, + "ResetPipelineRequestDto": { + "type": "object", "properties": { - "endpoints": { - "items": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" - }, - "type": "array" + "flush": { + "type": "boolean" } - }, - "type": "object" + } }, - "PrivateLinkEndpointResponse": { - "example": { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" + "DeployPipelineRequestDto": { + "type": "object", + "properties": { + "reset": { + "$ref": "#/components/schemas/ResetPipelineRequestDto" } - }, + } + }, + "WorkspaceClusterRef": { + "type": "object", "properties": { - "endpointId": { - "type": "string" - }, - "type": { - "type": "string" - }, - "state": { - "type": "string" - }, - "network": { - "$ref": "#/components/schemas/PrivateLinkNetwork" - }, - "error": { - "$ref": "#/components/schemas/PrivateLinkError" + "id": { + "type": "integer", + "format": "int64" } - }, - "type": "object" + } }, - "PrivateLinkError": { - "example": { - "code": "code", - "message": "message" - }, + "WorkspaceDatabaseResponse": { + "type": "object", "properties": { - "code": { + "databaseId": { + "type": "integer", + "format": "int64" + }, + "name": { "type": "string" }, - "message": { + "status": { "type": "string" - } - }, - "type": "object" - }, - "PrivateLinkNetwork": { - "example": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - }, - "properties": { - "serviceName": { + }, + "type": { "type": "string" }, - "vpceId": { + "memorySize": { + "type": "integer", + "format": "int64" + }, + "subscription": { + "$ref": "#/components/schemas/WorkspaceSubscriptionRef" + }, + "cluster": { + "$ref": "#/components/schemas/WorkspaceClusterRef" + }, + "dnsAddress": { "type": "string" }, - "url": { + "publicDnsAddress": { "type": "string" + }, + "sslEnabled": { + "type": "boolean" + }, + "throughput": { + "type": "integer", + "format": "int64" + }, + "defaultUser": { + "type": "boolean" } - }, - "type": "object" + } }, - "ComposeDraftListResponse": { - "example": { - "items": [ - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - }, - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - } - ] - }, + "WorkspaceDatabasesResponse": { + "type": "object", "properties": { - "items": { + "databases": { + "type": "array", "items": { - "$ref": "#/components/schemas/ComposeDraftSummaryResponse" - }, - "type": "array" + "$ref": "#/components/schemas/WorkspaceDatabaseResponse" + } } - }, - "type": "object" + } }, - "ComposeDraftSourceSummary": { - "example": { - "name": "name" - }, + "WorkspaceSubscriptionRef": { + "type": "object", "properties": { - "name": { - "type": "string" + "id": { + "type": "integer", + "format": "int64" } - }, - "type": "object" + } }, - "ComposeDraftSummaryResponse": { - "example": { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - }, + "Capabilities": { + "type": "object", "properties": { - "draftId": { - "type": "string" + "validateSecrets": { + "type": "boolean", + "description": "Whether the workspace can validate secret ARNs." }, - "targetDataType": { - "enum": [ - "hash", - "json" - ], - "type": "string" + "validatePrivateLink": { + "type": "boolean", + "description": "Whether the workspace can validate PrivateLink endpoint service names." }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSourceSummary" + "readyForPipeline": { + "type": "boolean", + "description": "Whether the workspace is ready to create and deploy RDI pipelines." + }, + "createPrivateLink": { + "description": "Whether the workspace can create PrivateLink endpoints." } }, - "type": "object" + "description": "Workspace capabilities available in the current state." }, - "SearchPipeline": { - "example": { - "bdbId": 0, - "id": "id" - }, + "InfrastructureError": { + "type": "object", "properties": { - "id": { - "type": "string" + "code": { + "type": "string", + "description": "Machine-readable error code." }, - "bdbId": { - "format": "int64", - "type": "integer" + "message": { + "type": "string", + "description": "Human-readable error message." + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Time when the error was recorded." + }, + "details": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "Additional structured error details." } }, - "type": "object" + "description": "Infrastructure failure details." }, - "SearchPipelinesResponseDto": { - "example": { - "pipelines": [ - { - "bdbId": 0, - "id": "id" - }, - { - "bdbId": 0, - "id": "id" - } - ] - }, + "InfrastructureIam": { + "type": "object", "properties": { - "pipelines": { - "items": { - "$ref": "#/components/schemas/SearchPipeline" - }, - "type": "array" + "privateLinkAllowedPrincipal": { + "type": "string", + "description": "AWS principal allowed to connect to the workspace PrivateLink endpoint service." + }, + "secretsRoleArn": { + "type": "string", + "description": "AWS IAM role ARN used to read workspace secrets." } }, - "type": "object" + "description": "IAM values produced for workspace integrations." }, - "GetPipelineResponseDto": { - "example": { - "name": "name", - "id": "id", - "error": { - "code": "code", - "id": "id", - "message": "message" - }, - "status": "draft" - }, + "InfrastructureResponse": { + "type": "object", "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { + "state": { + "type": "string", "enum": [ - "draft", - "pipeline-setup-pending", - "pl-initialized", - "pl-approval-pending", - "pl-failed", - "pl-created", - "infra-provision-initialized", - "infra-provisioned", - "infra-provision-failed", - "rdi-deploy-initialized", - "rdi-deployed", - "rdi-deploy-failed", - "rdi-healthy", - "rdi-health-check-failed", - "target-db-connection-test-initialized", - "target-db-connection-test-failed", - "target-db-connection-test-success", - "source-db-connection-test-initialized", - "source-db-connection-test-failed", - "source-db-connection-test-success", - "pipeline-deploy-initialized", - "pipeline-deploy-failed", - "inactive", - "active", - "delete-pending", - "delete-failed", - "delete-success" + "NotProvisioned", + "Provisioning", + "Ready", + "Deleting", + "Failed" ], - "type": "string" + "description": "Workspace infrastructure state." + }, + "cidr": { + "type": "string", + "description": "CIDR block assigned to the workspace deployment network." + }, + "timestamps": { + "$ref": "#/components/schemas/InfrastructureTimestamps", + "description": "Infrastructure lifecycle timestamps." + }, + "iam": { + "$ref": "#/components/schemas/InfrastructureIam", + "description": "IAM values used by workspace integrations." + }, + "networking": { + "$ref": "#/components/schemas/NetworkingOutput", + "description": "Workspace networking outputs." + }, + "monitoring": { + "$ref": "#/components/schemas/MonitoringOutput", + "description": "Workspace monitoring endpoints." }, "error": { - "$ref": "#/components/schemas/PipelineError" + "$ref": "#/components/schemas/InfrastructureError", + "description": "Infrastructure error details when the workspace is in a failed state." } }, - "required": [ - "id", - "status" - ], - "type": "object" + "description": "Provisioned infrastructure state for a data integration workspace." }, - "PipelineError": { - "example": { - "code": "code", - "id": "id", - "message": "message" - }, + "InfrastructureTimestamps": { + "type": "object", "properties": { - "id": { - "type": "string" - }, - "code": { - "type": "string" + "startedAt": { + "type": "string", + "format": "date-time", + "description": "Time when infrastructure provisioning started." }, - "message": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "Time when infrastructure state was last updated." } }, - "type": "object" + "description": "Workspace infrastructure lifecycle timestamps." }, - "PipelineRuntimeStatusResponseDto": { - "example": { - "state": "not-running", - "pipelineStatus": "started", - "errors": [ - { - "code": "code", - "message": "message" - }, - { - "code": "code", - "message": "message" - } - ], - "status": "validating" - }, + "MetricsUrls": { + "type": "object", "properties": { - "status": { - "enum": [ - "validating", - "stopping", - "starting", - "resetting", - "ready", - "not-ready", - "stopped" - ], - "type": "string" + "rdiProcessorUrl": { + "type": "string", + "description": "Metrics endpoint URL for the RDI processor." }, - "state": { - "enum": [ - "not-running", - "cdc", - "initial-sync" - ], + "collectorSourceUrl": { "type": "string" }, - "pipelineStatus": { - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "type": "string" + "rdiOperatorUrl": { + "description": "Metrics endpoint URL for the RDI operator." }, - "errors": { - "items": { - "$ref": "#/components/schemas/PipelineStatusErrorDto" - }, - "type": "array" + "collectorSourceUrls": { + "description": "Metrics endpoint URLs for deployed collector sources, keyed by source name." } }, - "type": "object" + "description": "Metrics endpoint URLs for RDI workspace components." }, - "PipelineStatusErrorDto": { - "example": { - "code": "code", - "message": "message" + "MonitoringOutput": { + "type": "object", + "properties": { + "metricsUrls": { + "$ref": "#/components/schemas/MetricsUrls", + "description": "Metrics endpoint URLs for workspace components." + } }, + "description": "Workspace monitoring outputs." + }, + "NetworkingOutput": { + "type": "object", "properties": { - "code": { - "type": "string" + "egressIps": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Outbound IP addresses used by workspace components." }, - "message": { - "type": "string" + "availabilityZones": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Availability zones used by workspace infrastructure." } }, - "type": "object" + "description": "Workspace networking outputs." }, - "DataStreamDto": { - "example": { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - }, + "WorkspaceResponse": { + "type": "object", "properties": { - "name": { - "type": "string" - }, - "total": { - "format": "int32", - "type": "integer" - }, - "pending": { - "format": "int32", - "type": "integer" + "subscriptionId": { + "type": "integer", + "format": "int64", + "description": "Redis Cloud subscription ID." }, - "inserted": { - "format": "int32", - "type": "integer" + "rcpClusterId": { + "type": "string", + "description": "RCP cluster ID that hosts workspace resources." }, - "updated": { - "format": "int32", - "type": "integer" + "region": { + "type": "string", + "description": "Cloud provider region where the workspace is deployed." }, - "deleted": { - "format": "int32", - "type": "integer" + "vpcId": { + "type": "string", + "description": "VPC ID used by the workspace." }, - "filtered": { - "format": "int32", - "type": "integer" + "createdAt": { + "type": "string", + "format": "date-time", + "description": "Time when the workspace record was created." }, - "rejected": { - "format": "int32", - "type": "integer" + "infrastructure": { + "$ref": "#/components/schemas/InfrastructureResponse", + "description": "Provisioned infrastructure state and connection details." }, - "deduplicated": { - "format": "int32", - "type": "integer" + "capabilities": { + "$ref": "#/components/schemas/Capabilities", + "description": "Workspace features available in the current state." }, - "lastArrival": { - "type": "string" + "bdbId": { + "description": "Redis database ID associated with the workspace." } }, - "type": "object" + "description": "Current data integration workspace state for a subscription." }, - "PipelineRuntimeStatsResponseDto": { - "example": { - "mode": "mode", - "dataStreams": [ - { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - }, - { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - } - ], - "sourceType": "sourceType", - "totals": { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - }, - "lastRetrieved": "lastRetrieved", - "type": "type", - "status": "status" - }, + "WorkspaceTasksResponse": { + "type": "object", "properties": { - "lastRetrieved": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "status": { - "type": "string" - }, - "sourceType": { - "type": "string" - }, - "totals": { - "$ref": "#/components/schemas/DataStreamDto" - }, - "dataStreams": { + "tasks": { + "type": "array", "items": { - "$ref": "#/components/schemas/DataStreamDto" + "$ref": "#/components/schemas/WorkspaceTaskResponse" }, - "type": "array" + "description": "Workspace tasks." } }, - "type": "object" + "description": "Response containing asynchronous workspace tasks." }, - "CidrsInfoDto": { - "example": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - }, + "CidrsInfoResponse": { + "type": "object", "properties": { "usedCidrs": { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, "defaultCidr": { "type": "string" @@ -32174,1227 +22075,480 @@ "nextFreeCidr": { "type": "string" } - }, - "type": "object" + } }, - "GetPipelinePrerequisitesResponseDto": { - "example": { - "sourceDbTypes": [ - { - "code": "code", - "label": "label" - }, - { - "code": "code", - "label": "label" - } - ], - "pipelineSecretAllowedRole": "pipelineSecretAllowedRole", - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "cidrsInfo": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - }, - "targetTypes": [ - { - "code": "code", - "label": "label" - }, - { - "code": "code", - "label": "label" + "PrivateLinkEndpointListResponse": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PrivateLinkEndpointResponse" } - ] - }, + } + } + }, + "PrivateLinkEndpointResponse": { + "type": "object", "properties": { - "privateLinkAllowedPrincipal": { + "endpointId": { "type": "string" }, - "sourceDbTypes": { - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - }, - "type": "array" + "type": { + "type": "string" }, - "targetTypes": { - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - }, - "type": "array" + "state": { + "type": "string" }, - "cidrsInfo": { - "$ref": "#/components/schemas/CidrsInfoDto" + "network": { + "$ref": "#/components/schemas/PrivateLinkNetwork" }, - "pipelineSecretAllowedRole": { - "type": "string" + "error": { + "$ref": "#/components/schemas/PrivateLinkError" } - }, - "type": "object" + } }, - "TypeResponseDto": { - "example": { - "code": "code", - "label": "label" - }, + "PrivateLinkError": { + "type": "object", "properties": { "code": { "type": "string" }, - "label": { + "message": { "type": "string" } - }, - "type": "object" + } }, - "PipelineMetricsUrlsResponseDto": { - "example": { - "rdiProcessorUrl": "rdiProcessorUrl", - "collectorSourceUrl": "collectorSourceUrl" - }, + "PrivateLinkNetwork": { + "type": "object", "properties": { - "rdiProcessorUrl": { + "serviceName": { "type": "string" }, - "collectorSourceUrl": { + "vpceId": { + "type": "string" + }, + "url": { "type": "string" } - }, - "type": "object" + } }, - "SourceSchemasResponseDto": { - "example": { - "schemas": [ - "schemas", - "schemas" - ] - }, + "ComposeDraftListResponse": { + "type": "object", "properties": { - "schemas": { + "items": { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/components/schemas/ComposeDraftSummaryResponse" + } } - }, - "type": "object" + } }, - "SchemaDto": { - "example": { - "tables": [ - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - } - ], - "name": "name" - }, + "ComposeDraftSourceSummary": { + "type": "object", "properties": { "name": { "type": "string" - }, - "tables": { - "items": { - "$ref": "#/components/schemas/TableDto" - }, - "type": "array" - } - }, - "type": "object" - }, - "SourceMetadataResponseDto": { - "example": { - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - } - ], - "name": "name" - } - ] - }, - "properties": { - "schemas": { - "items": { - "$ref": "#/components/schemas/SchemaDto" - }, - "type": "array" } - }, - "type": "object" + } }, - "TableColumnDto": { - "example": { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, + "ComposeDraftSummaryResponse": { + "type": "object", "properties": { - "name": { - "type": "string" - }, - "type": { + "draftId": { "type": "string" }, - "size": { - "format": "int32", - "type": "integer" - }, - "primaryKey": { - "type": "boolean" + "targetDataType": { + "type": "string", + "enum": [ + "hash", + "json" + ] }, - "uniqueConstraint": { - "type": "boolean" + "source": { + "$ref": "#/components/schemas/ComposeDraftSourceSummary" } - }, - "type": "object" + } }, - "TableDto": { - "example": { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, + "SearchPipeline": { + "type": "object", "properties": { - "name": { + "id": { "type": "string" }, - "cdcReady": { - "type": "boolean" - }, - "columns": { - "items": { - "$ref": "#/components/schemas/TableColumnDto" - }, - "type": "array" + "bdbId": { + "type": "integer", + "format": "int64" } - }, - "type": "object" + } }, - "WorkspacesResponse": { - "example": { - "workspaces": [ - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - }, - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - } - ] - }, + "SearchPipelinesResponseDto": { + "type": "object", "properties": { - "workspaces": { - "items": { - "$ref": "#/components/schemas/WorkspaceResponse" - }, + "pipelines": { "type": "array", - "description": "Data integration workspaces." + "items": { + "$ref": "#/components/schemas/SearchPipeline" + } } - }, - "type": "object", - "description": "Response containing data integration workspaces in the Redis Cloud account." + } }, - "BdbPipelinesResponseDto": { - "example": { - "workspaceIds": [ - "workspaceIds", - "workspaceIds" - ], - "pipelineIds": [ - "pipelineIds", - "pipelineIds" - ] - }, + "GetPipelineResponseDto": { + "required": [ + "id", + "status" + ], + "type": "object", "properties": { - "pipelineIds": { - "items": { - "type": "string" - }, - "type": "array" + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "draft", + "pipeline-setup-pending", + "pl-initialized", + "pl-approval-pending", + "pl-failed", + "pl-created", + "infra-provision-initialized", + "infra-provisioned", + "infra-provision-failed", + "rdi-deploy-initialized", + "rdi-deployed", + "rdi-deploy-failed", + "rdi-healthy", + "rdi-health-check-failed", + "target-db-connection-test-initialized", + "target-db-connection-test-failed", + "target-db-connection-test-success", + "source-db-connection-test-initialized", + "source-db-connection-test-failed", + "source-db-connection-test-success", + "pipeline-deploy-initialized", + "pipeline-deploy-failed", + "inactive", + "active", + "delete-pending", + "delete-failed", + "delete-success" + ] }, - "workspaceIds": { - "items": { - "type": "string" - }, - "type": "array" + "error": { + "$ref": "#/components/schemas/PipelineError" } - }, - "type": "object" + } }, - "putJobsYaml_request": { + "PipelineError": { + "type": "object", "properties": { - "files": { - "items": { - "format": "binary", - "type": "string" - }, - "type": "array" + "id": { + "type": "string" + }, + "code": { + "type": "string" + }, + "message": { + "type": "string" } - }, - "required": [ - "files" - ], - "type": "object" + } }, - "RdiCoreInfoResponse": { - "properties": { - "version": { - "type": "string", - "title": "Version" - } - }, + "PipelineRuntimeStatusResponseDto": { "type": "object", - "required": [ - "version" - ], - "title": "InfoResponse", - "description": "Response model containing information about the API." - }, - "RdiCorePipelineCreateRequest": { "properties": { - "name": { + "status": { "type": "string", - "title": "Name", - "default": "default" + "enum": [ + "validating", + "stopping", + "starting", + "resetting", + "ready", + "not-ready", + "stopped" + ] }, - "active": { - "type": "boolean", - "title": "Active", - "default": true + "state": { + "type": "string", + "enum": [ + "not-running", + "cdc", + "initial-sync" + ] }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineCreateRequest", - "description": "Request model for creating a new pipeline." - }, - "RdiCoreredis_di_api__models__errors__ErrorResponse": { - "properties": { - "detail": { + "pipelineStatus": { "type": "string", - "title": "Detail", - "examples": [ - "Detailed error message" + "enum": [ + "started", + "stopped", + "error", + "creating", + "updating", + "deleting", + "starting", + "stopping", + "resetting", + "pending", + "unknown" ] }, "errors": { - "anyOf": [ - { - "items": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Errors" + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineStatusErrorDto" + } } - }, - "type": "object", - "required": [ - "detail" - ], - "title": "ErrorResponse", - "description": "Generic error response model" + } }, - "RdiCoreredis_di_api__models__errors__Error": { + "PipelineStatusErrorDto": { + "type": "object", "properties": { "code": { - "$ref": "#/components/schemas/RdiCoreErrorCode" + "type": "string" }, "message": { - "type": "string", - "title": "Message" - }, - "remediation": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Remediation" - }, - "details": { - "additionalProperties": true, - "type": "object", - "title": "Details" + "type": "string" } - }, + } + }, + "DataStreamDto": { "type": "object", - "required": [ - "code", - "message" - ], - "title": "Error", - "description": "Generic error model" - }, - "RdiCoreErrorCode": { - "type": "string", - "enum": [ - "validation_error", - "job_validation_error", - "request_validation_error", - "cdc_validation_error", - "pipeline_error", - "pipeline_pending", - "pipeline_component_error", - "operation_error" - ], - "title": "ErrorCode", - "description": "Error codes" - }, - "RdiCorePipelineResponse": { "properties": { "name": { - "type": "string", - "title": "Name" - }, - "active": { - "type": "boolean", - "title": "Active" - }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - }, - "status": { - "$ref": "#/components/schemas/RdiCoreStatus", - "default": "unknown" + "type": "string" }, - "status_changed_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Status Changed At" + "total": { + "type": "integer", + "format": "int32" }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" - }, - "type": "array", - "title": "Errors" + "pending": { + "type": "integer", + "format": "int32" }, - "components": { - "items": { - "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" - }, - "type": "array", - "title": "Components" + "inserted": { + "type": "integer", + "format": "int32" }, - "current": { - "type": "boolean", - "title": "Current", - "default": false - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "name", - "active", - "config" - ], - "title": "PipelineResponse", - "description": "Response model containing the details of a pipeline." - }, - "RdiCorePipelineComponentResponse": { - "properties": { - "name": { - "type": "string", - "title": "Name" + "updated": { + "type": "integer", + "format": "int32" }, - "type": { - "$ref": "#/components/schemas/RdiCoreComponentType" + "deleted": { + "type": "integer", + "format": "int32" }, - "version": { - "type": "string", - "title": "Version" + "filtered": { + "type": "integer", + "format": "int32" }, - "status": { - "$ref": "#/components/schemas/RdiCoreStatus", - "default": "unknown" + "rejected": { + "type": "integer", + "format": "int32" }, - "errors": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Errors" + "deduplicated": { + "type": "integer", + "format": "int32" }, - "metric_collections": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Metric Collections" + "lastArrival": { + "type": "string" } - }, - "additionalProperties": false, + } + }, + "PipelineRuntimeStatsResponseDto": { "type": "object", - "required": [ - "name", - "type", - "version" - ], - "title": "PipelineComponentResponse", - "description": "Response model containing the details of a pipeline component." - }, - "RdiCoreStatus": { - "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "title": "Status", - "description": "Pipeline status." - }, - "RdiCoreComponentType": { - "type": "string", - "enum": [ - "debezium-collector", - "collector-api", - "stream-processor", - "metrics-exporter", - "flink-processor-jobmanager", - "flink-processor-taskmanager", - "riotx-collector", - "unknown" - ], - "title": "ComponentType", - "description": "Component types for RDI pipeline components." - }, - "RdiCorePipelinePatchRequest": { "properties": { - "active": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Active" + "lastRetrieved": { + "type": "string" }, - "config": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Config" - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelinePatchRequest", - "description": "Request model for updating a pipeline partially." - }, - "RdiCorePipelineUpdateRequest": { - "properties": { - "active": { - "type": "boolean", - "title": "Active", - "default": true + "mode": { + "type": "string" + }, + "type": { + "type": "string" }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineUpdateRequest", - "description": "Request model for updating a pipeline completely." - }, - "RdiCorePipelineStatusResponse": { - "properties": { "status": { - "$ref": "#/components/schemas/RdiCoreStatus", - "default": "unknown" + "type": "string" }, - "status_changed_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Status Changed At" + "sourceType": { + "type": "string" }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" - }, - "type": "array", - "title": "Errors" + "totals": { + "$ref": "#/components/schemas/DataStreamDto" }, - "components": { - "items": { - "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" - }, + "dataStreams": { "type": "array", - "title": "Components" - }, - "current": { - "type": "boolean", - "title": "Current", - "default": false + "items": { + "$ref": "#/components/schemas/DataStreamDto" + } } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineStatusResponse", - "description": "Response model containing the details of a pipeline status." + } }, - "RdiCorePipelineMetricCollectionResponse": { + "CidrsInfoDto": { + "type": "object", "properties": { - "name": { - "type": "string", - "title": "Name" + "usedCidrs": { + "type": "array", + "items": { + "type": "string" + } }, - "component": { - "type": "string", - "title": "Component" + "defaultCidr": { + "type": "string" }, - "metrics": { - "additionalProperties": true, - "type": "object", - "title": "Metrics" + "nextFreeCidr": { + "type": "string" } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "name", - "component", - "metrics" - ], - "title": "PipelineMetricCollectionResponse", - "description": "Response model containing the details of a metric collection." + } }, - "RdiCorePipelineSecretCreateRequest": { + "GetPipelinePrerequisitesResponseDto": { + "type": "object", "properties": { - "key": { - "type": "string", - "title": "Key" + "privateLinkAllowedPrincipal": { + "type": "string" }, - "value": { - "type": "string", - "title": "Value" + "sourceDbTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + } }, - "type": { - "type": "string", - "enum": [ - "simple", - "file" - ], - "title": "Type", - "default": "simple" + "targetTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TypeResponseDto" + } + }, + "cidrsInfo": { + "$ref": "#/components/schemas/CidrsInfoDto" + }, + "pipelineSecretAllowedRole": { + "type": "string" } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "key", - "value" - ], - "title": "PipelineSecretCreateRequest", - "description": "Request model for creating a new pipeline secret." + } }, - "RdiCorePipelineSecretResponse": { + "TypeResponseDto": { + "type": "object", "properties": { - "key": { - "type": "string", - "title": "Key" + "code": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "simple", - "file" - ], - "title": "Type" + "label": { + "type": "string" } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "key", - "type" - ], - "title": "PipelineSecretResponse", - "description": "Response model for a pipeline secret." + } }, - "RdiCorePipelineSecretUpdateRequest": { + "PipelineMetricsUrlsResponseDto": { + "type": "object", "properties": { - "value": { - "type": "string", - "title": "Value" + "rdiProcessorUrl": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "simple", - "file" - ], - "title": "Type", - "default": "simple" + "collectorSourceUrl": { + "type": "string" } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "value" - ], - "title": "PipelineSecretUpdateRequest", - "description": "Request model for updating an existing pipeline secret." - }, - "RdiCoreSourceSchemaDetails": { - "type": "string", - "enum": [ - "schemas", - "tables", - "columns" - ], - "title": "SourceSchemaDetails", - "description": "Detail level for source metadata responses." + } }, - "RdiCorePipelineSourceSchemaResponse": { + "SourceSchemasResponseDto": { + "type": "object", "properties": { "schemas": { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreSourceSchemaResponse" - }, - "type": "object", - "title": "Schemas", - "examples": [ - { - "inventory": { - "tables": { - "addresses": { - "cdc_ready": true, - "columns": { - "zip": { - "primary_key": false, - "size": 255, - "type": "varchar", - "unique_constraint": false - } - } - } - } - } - } - ] + "type": "array", + "items": { + "type": "string" + } } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineSourceSchemaResponse", - "description": "Nested source metadata response for a pipeline source." + } }, - "RdiCoreSourceSchemaResponse": { + "SchemaDto": { + "type": "object", "properties": { + "name": { + "type": "string" + }, "tables": { - "anyOf": [ - { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreSourceTableResponse" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Tables", - "examples": [ - { - "users": { - "cdc_ready": true, - "columns": { - "id": { - "primary_key": true, - "size": 32, - "type": "int4", - "unique_constraint": true - } - } - } - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/TableDto" + } } - }, - "additionalProperties": false, - "type": "object", - "title": "SourceSchemaResponse", - "description": "Metadata for a single source schema or database." + } }, - "RdiCoreSourceTableResponse": { + "SourceMetadataResponseDto": { + "type": "object", "properties": { - "cdc_ready": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Cdc Ready", - "examples": [ - true - ] - }, - "columns": { - "anyOf": [ - { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreSourceColumnResponse" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Columns", - "examples": [ - { - "id": { - "primary_key": true, - "size": 32, - "type": "int4", - "unique_constraint": true - } - } - ] + "schemas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SchemaDto" + } } - }, - "additionalProperties": false, - "type": "object", - "title": "SourceTableResponse", - "description": "Metadata for a single source table." + } }, - "RdiCoreSourceColumnResponse": { + "TableColumnDto": { + "type": "object", "properties": { + "name": { + "type": "string" + }, "type": { - "type": "string", - "title": "Type", - "examples": [ - "varchar" - ] + "type": "string" }, "size": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Size", - "examples": [ - 255 - ] + "type": "integer", + "format": "int32" }, - "primary_key": { - "type": "boolean", - "title": "Primary Key", - "default": false, - "examples": [ - false - ] + "primaryKey": { + "type": "boolean" }, - "unique_constraint": { - "type": "boolean", - "title": "Unique Constraint", - "default": false, - "examples": [ - false - ] + "uniqueConstraint": { + "type": "boolean" } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "type" - ], - "title": "SourceColumnResponse", - "description": "Metadata for a single source column." + } }, - "RdiCoreFlushResponse": { + "TableDto": { + "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", - "description": "Whether the flush operation was successful" + "name": { + "type": "string" }, - "message": { - "type": "string", - "title": "Message", - "description": "Human-readable result message" + "cdcReady": { + "type": "boolean" + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableColumnDto" + } } - }, - "type": "object", - "required": [ - "success", - "message" - ], - "title": "FlushResponse", - "description": "Response model for the target flush operation." + } }, - "RdiCoreDlqListResponse": { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreDlqTableInfo" - }, + "WorkspacesResponse": { "type": "object", - "title": "DlqListResponse", - "description": "Response model for listing all DLQ tables with their counts.\n\nReturns a dictionary mapping table names to their DLQ info.\nExample: {\"source.schema.table1\": {\"total_count\": 100}, ...}" - }, - "RdiCoreDlqTableInfo": { "properties": { - "total_count": { - "type": "integer", - "minimum": 0.0, - "title": "Total Count", - "description": "Total number of records in the DLQ stream", - "examples": [ - 1500 - ] + "workspaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkspaceResponse" + }, + "description": "Data integration workspaces." } }, - "additionalProperties": false, - "type": "object", - "required": [ - "total_count" - ], - "title": "DlqTableInfo", - "description": "Model representing DLQ info for a single table." + "description": "Response containing data integration workspaces in the Redis Cloud account." }, - "RdiCoreDlqTableResponse": { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreDlqTableInfo" - }, + "BdbPipelinesResponseDto": { "type": "object", - "title": "DlqTableResponse", - "description": "Response model for a single DLQ table info.\n\nReturns a dictionary with single table name mapped to its DLQ info.\nExample: {\"source.schema.table\": {\"total_count\": 100}}" - }, - "RdiCoreSortOrder": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "title": "SortOrder", - "description": "Sort order for DLQ records." - }, - "RdiCoreDlqRecordsResponse": { "properties": { - "records": { - "items": { - "additionalProperties": true, - "type": "object" - }, + "pipelineIds": { "type": "array", - "title": "Records", - "description": "List of DLQ records" + "items": { + "type": "string" + } } - }, - "additionalProperties": false, - "type": "object", - "title": "DlqRecordsResponse", - "description": "Response model for DLQ records." + } } }, "securitySchemes": { diff --git a/data/api/rc-rdi-openapi.json b/data/api/rc-rdi-openapi.json deleted file mode 100644 index 1807a91795..0000000000 --- a/data/api/rc-rdi-openapi.json +++ /dev/null @@ -1,14752 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Data Integration Workspace API", - "version": "2.2.2", - "description": "Data Integration Workspace API" - }, - "servers": [ - { - "description": "Generated server url", - "url": "http://localhost:8080/v1" - }, - { - "url": "https://api.example.com" - } - ], - "components": { - "schemas": { - "ComposeDraftAdvanced": { - "example": { - "processor": "{}" - }, - "properties": { - "processor": { - "type": "object" - } - }, - "type": "object" - }, - "ComposeDraftSource": { - "oneOf": [ - { - "$ref": "#/components/schemas/PostgresqlSource" - }, - { - "$ref": "#/components/schemas/MySqlSource" - }, - { - "$ref": "#/components/schemas/MariaDbSource" - }, - { - "$ref": "#/components/schemas/OracleSource" - }, - { - "$ref": "#/components/schemas/SqlServerSource" - }, - { - "$ref": "#/components/schemas/MongodbSource" - }, - { - "$ref": "#/components/schemas/SnowflakeSource" - } - ], - "type": "object" - }, - "ComposeDraftSourceBase": { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "sourceAdvanced": { - "type": "object" - }, - "sinkAdvanced": { - "type": "object" - } - }, - "type": "object" - }, - "ComposeDraftTarget": { - "example": { - "targetBdbId": 1 - }, - "properties": { - "targetBdbId": { - "format": "int64", - "type": "integer" - } - }, - "type": "object" - }, - "ComposeDraftUpsertRequest": { - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "properties": { - "targetDataType": { - "enum": [ - "hash", - "json" - ], - "type": "string" - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSource" - }, - "sourceName": { - "type": "string" - }, - "pipelineName": { - "type": "string" - }, - "pipelineDescription": { - "type": "string" - }, - "target": { - "$ref": "#/components/schemas/ComposeDraftTarget" - }, - "advanced": { - "$ref": "#/components/schemas/ComposeDraftAdvanced" - }, - "schemas": { - "items": { - "$ref": "#/components/schemas/Schema" - }, - "type": "array" - }, - "jobs": { - "items": { - "$ref": "#/components/schemas/Job" - }, - "type": "array" - }, - "clientData": { - "additionalProperties": { - "type": "object" - }, - "type": "object" - } - }, - "type": "object" - }, - "Job": { - "example": { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - "properties": { - "name": { - "type": "string" - }, - "file": { - "type": "string" - }, - "error": { - "$ref": "#/components/schemas/WebError" - }, - "rdiJob": { - "additionalProperties": true, - "type": "object" - } - }, - "required": [ - "file", - "name" - ], - "type": "object" - }, - "MariaDbSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "serverId": { - "format": "int32", - "type": "integer" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "MongodbSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "connectionString": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "MySqlSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "serverId": { - "format": "int32", - "type": "integer" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "OracleSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "pdb": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "PostgresqlSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "example": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "type": "object" - }, - "Properties": { - "type": "object" - }, - "RdiPipelineError": { - "example": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "details": { - "additionalProperties": { - "type": "object" - }, - "type": "object" - } - }, - "type": "object" - }, - "Schema": { - "example": { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - "properties": { - "name": { - "type": "string" - }, - "tables": { - "items": { - "$ref": "#/components/schemas/Table" - }, - "type": "array" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "SnowflakeSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "accountIdentifier": { - "type": "string" - }, - "warehouse": { - "type": "string" - }, - "role": { - "type": "string" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "SqlServerSource": { - "allOf": [ - { - "$ref": "#/components/schemas/ComposeDraftSourceBase" - }, - { - "properties": { - "name": { - "type": "string" - }, - "endpointId": { - "type": "string" - }, - "host": { - "type": "string" - }, - "databaseType": { - "type": "string" - }, - "database": { - "type": "string" - }, - "port": { - "format": "int32", - "type": "integer" - }, - "secretArns": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "sourceAdvanced": { - "$ref": "#/components/schemas/Properties" - }, - "sinkAdvanced": { - "$ref": "#/components/schemas/Properties" - } - }, - "type": "object" - } - ], - "type": "object" - }, - "Table": { - "example": { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - "properties": { - "name": { - "type": "string" - }, - "columns": { - "items": { - "$ref": "#/components/schemas/TableColumn" - }, - "type": "array" - }, - "snapshot_sql": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "TableColumn": { - "example": { - "name": "name", - "uniqueConstraint": true - }, - "properties": { - "name": { - "type": "string" - }, - "uniqueConstraint": { - "type": "boolean" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "WebError": { - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "properties": { - "timestamp": { - "format": "int64", - "type": "integer" - }, - "status": { - "format": "int32", - "type": "integer" - }, - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "params": { - "type": "string" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiPipelineError" - }, - "type": "array" - } - }, - "type": "object" - }, - "ComposeDraftResponse": { - "example": { - "draftId": "draftId", - "advanced": { - "processor": "{}" - }, - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "target": { - "targetBdbId": 1 - }, - "pipelineName": "pipelineName", - "createdAt": "2000-01-23T04:56:07.000+00:00", - "pipelineDescription": "pipelineDescription", - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "properties": { - "draftId": { - "type": "string" - }, - "targetDataType": { - "enum": [ - "hash", - "json" - ], - "type": "string" - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSource" - }, - "sourceName": { - "type": "string" - }, - "pipelineName": { - "type": "string" - }, - "pipelineDescription": { - "type": "string" - }, - "target": { - "$ref": "#/components/schemas/ComposeDraftTarget" - }, - "advanced": { - "$ref": "#/components/schemas/ComposeDraftAdvanced" - }, - "schemas": { - "items": { - "$ref": "#/components/schemas/Schema" - }, - "type": "array" - }, - "jobs": { - "items": { - "$ref": "#/components/schemas/Job" - }, - "type": "array" - }, - "clientData": { - "additionalProperties": { - "type": "object" - }, - "type": "object" - }, - "createdAt": { - "format": "date-time", - "type": "string" - }, - "updatedAt": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "Advanced": { - "example": { - "sink": "{}", - "source": "{}" - }, - "properties": { - "source": { - "type": "object" - }, - "sink": { - "type": "object" - } - }, - "type": "object" - }, - "Aws": { - "example": { - "privateLink": { - "endpoint": { - "vpceId": "vpceId" - }, - "serviceName": "serviceName" - } - }, - "properties": { - "privateLink": { - "$ref": "#/components/schemas/PrivateLink" - } - }, - "type": "object" - }, - "Endpoint": { - "example": { - "vpceId": "vpceId" - }, - "properties": { - "vpceId": { - "type": "string" - } - }, - "type": "object" - }, - "Pipeline": { - "example": { - "name": "name", - "deploymentCIDR": "deploymentCIDR" - }, - "properties": { - "name": { - "type": "string" - }, - "deploymentCIDR": { - "type": "string" - } - }, - "type": "object" - }, - "PipelineInfraDto": { - "example": { - "pipeline": { - "name": "name", - "deploymentCIDR": "deploymentCIDR" - }, - "source": { - "dbPass": "dbPass", - "databases": "databases", - "connectivityMode": "privateLink", - "advanced": { - "sink": "{}", - "source": "{}" - }, - "dbUseMTLS": true, - "dbType": "mysql", - "datasetSizeGB": 0, - "dbHost": "dbHost", - "dbServerId": 1, - "pdb": "pdb", - "dbPort": 6, - "dbSecretsARN": "dbSecretsARN", - "dbUseTLS": true, - "dbClientCertARN": "dbClientCertARN", - "dbCaCertARN": "dbCaCertARN", - "dbUser": "dbUser", - "dbConnectionString": "dbConnectionString", - "id": "id", - "dbClientKeyARN": "dbClientKeyARN", - "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" - }, - "aws": { - "privateLink": { - "endpoint": { - "vpceId": "vpceId" - }, - "serviceName": "serviceName" - } - } - }, - "properties": { - "pipeline": { - "$ref": "#/components/schemas/Pipeline" - }, - "aws": { - "$ref": "#/components/schemas/Aws" - }, - "source": { - "$ref": "#/components/schemas/Source" - } - }, - "type": "object" - }, - "PrivateLink": { - "example": { - "endpoint": { - "vpceId": "vpceId" - }, - "serviceName": "serviceName" - }, - "properties": { - "serviceName": { - "type": "string" - }, - "endpoint": { - "$ref": "#/components/schemas/Endpoint" - } - }, - "type": "object" - }, - "Source": { - "example": { - "dbPass": "dbPass", - "databases": "databases", - "connectivityMode": "privateLink", - "advanced": { - "sink": "{}", - "source": "{}" - }, - "dbUseMTLS": true, - "dbType": "mysql", - "datasetSizeGB": 0, - "dbHost": "dbHost", - "dbServerId": 1, - "pdb": "pdb", - "dbPort": 6, - "dbSecretsARN": "dbSecretsARN", - "dbUseTLS": true, - "dbClientCertARN": "dbClientCertARN", - "dbCaCertARN": "dbCaCertARN", - "dbUser": "dbUser", - "dbConnectionString": "dbConnectionString", - "id": "id", - "dbClientKeyARN": "dbClientKeyARN", - "dbClientKeyPasswordARN": "dbClientKeyPasswordARN" - }, - "properties": { - "connectivityMode": { - "enum": [ - "privateLink", - "publicEndpoint" - ], - "type": "string" - }, - "id": { - "type": "string" - }, - "dbType": { - "enum": [ - "mysql", - "mariadb", - "oracle", - "sqlserver", - "postgresql", - "mongodb", - "snowflake" - ], - "type": "string" - }, - "datasetSizeGB": { - "format": "int32", - "type": "integer" - }, - "dbSecretsARN": { - "type": "string" - }, - "dbUseTLS": { - "type": "boolean" - }, - "dbUseMTLS": { - "type": "boolean" - }, - "dbCaCertARN": { - "type": "string" - }, - "dbClientCertARN": { - "type": "string" - }, - "dbClientKeyARN": { - "type": "string" - }, - "dbClientKeyPasswordARN": { - "type": "string" - }, - "dbPort": { - "format": "int32", - "type": "integer" - }, - "dbServerId": { - "format": "int32", - "type": "integer" - }, - "dbConnectionString": { - "type": "string" - }, - "databases": { - "type": "string" - }, - "pdb": { - "type": "string" - }, - "advanced": { - "$ref": "#/components/schemas/Advanced" - }, - "dbHost": { - "type": "string" - }, - "dbUser": { - "type": "string" - }, - "dbPass": { - "type": "string" - } - }, - "type": "object" - }, - "PipelineConfigAdvanced": { - "example": { - "processor": "{}" - }, - "properties": { - "processor": { - "type": "object" - } - }, - "type": "object" - }, - "PipelineConfigDto": { - "example": { - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "definitionType": "predefined" - }, - "properties": { - "targetDataType": { - "enum": [ - "hash", - "json" - ], - "type": "string" - }, - "definitionType": { - "enum": [ - "predefined", - "manual" - ], - "type": "string" - }, - "schemas": { - "items": { - "$ref": "#/components/schemas/Schema" - }, - "type": "array" - }, - "jobs": { - "items": { - "$ref": "#/components/schemas/Job" - }, - "type": "array" - }, - "advanced": { - "$ref": "#/components/schemas/PipelineConfigAdvanced" - } - }, - "required": [ - "definitionType", - "targetDataType" - ], - "type": "object" - }, - "PipelineConfigJobsResponseDto": { - "example": { - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ] - }, - "properties": { - "jobs": { - "items": { - "$ref": "#/components/schemas/Job" - }, - "type": "array" - } - }, - "type": "object" - }, - "EulaAcceptanceResponseDto": { - "example": { - "accepted": true, - "acceptedAt": "2000-01-23T04:56:07.000+00:00" - }, - "properties": { - "accepted": { - "type": "boolean" - }, - "acceptedAt": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "WorkspaceCreateRequest": { - "example": { - "cidr": "cidr" - }, - "properties": { - "cidr": { - "type": "string" - } - }, - "type": "object" - }, - "TaskLink": { - "example": { - "href": "href", - "type": "type" - }, - "properties": { - "href": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "TaskLinks": { - "example": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "properties": { - "task": { - "$ref": "#/components/schemas/TaskLink" - }, - "resource": { - "$ref": "#/components/schemas/TaskLink" - } - }, - "type": "object" - }, - "WorkspaceTaskResponse": { - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, - "properties": { - "taskId": { - "type": "string" - }, - "commandType": { - "type": "string" - }, - "status": { - "type": "string" - }, - "description": { - "type": "string" - }, - "timestamp": { - "format": "date-time", - "type": "string" - }, - "response": { - "type": "object" - }, - "_links": { - "$ref": "#/components/schemas/TaskLinks" - } - }, - "type": "object" - }, - "SecretValidationRequestDto": { - "example": { - "credentialsSecretArn": "credentialsSecretArn", - "clientCertSecretArn": "clientCertSecretArn", - "clientKeySecretArn": "clientKeySecretArn", - "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", - "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", - "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", - "caCertSecretArn": "caCertSecretArn", - "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" - }, - "properties": { - "credentialsSecretArn": { - "type": "string" - }, - "caCertSecretArn": { - "type": "string" - }, - "clientCertSecretArn": { - "type": "string" - }, - "clientKeySecretArn": { - "type": "string" - }, - "clientKeyPassphraseSecretArn": { - "type": "string" - }, - "snowflakeCredentialsSecretArn": { - "type": "string" - }, - "snowflakePrivateKeySecretArn": { - "type": "string" - }, - "snowflakePrivateKeyPassphraseSecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "SecretError": { - "example": { - "code": "code", - "message": "message" - }, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "SecretValidationResponseDto": { - "example": { - "success": true, - "errors": [ - { - "code": "code", - "message": "message" - }, - { - "code": "code", - "message": "message" - } - ] - }, - "properties": { - "success": { - "type": "boolean" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/SecretError" - }, - "type": "array" - } - }, - "type": "object" - }, - "SingleSecretValidationRequestDto": { - "example": { - "purpose": "source-credentials", - "secretArn": "secretArn" - }, - "properties": { - "secretArn": { - "type": "string" - }, - "purpose": { - "enum": [ - "source-credentials", - "source-tls-ca", - "source-mtls-client-cert", - "source-mtls-client-key", - "source-mtls-key-password", - "source-snowflake-credentials", - "source-snowflake-private-key", - "source-snowflake-key-password" - ], - "type": "string" - } - }, - "required": [ - "purpose", - "secretArn" - ], - "type": "object" - }, - "SingleSecretValidationResponseDto": { - "example": { - "success": true, - "errorCode": "errorCode", - "error": "error" - }, - "properties": { - "success": { - "type": "boolean" - }, - "errorCode": { - "type": "string" - }, - "error": { - "type": "string" - } - }, - "type": "object" - }, - "CreatePrivateLinkEndpointRequest": { - "example": { - "serviceName": "serviceName" - }, - "properties": { - "serviceName": { - "type": "string" - } - }, - "required": [ - "serviceName" - ], - "type": "object" - }, - "PrivateLinkValidationResponse": { - "example": { - "success": true, - "error": "error" - }, - "properties": { - "success": { - "type": "boolean" - }, - "error": { - "type": "string" - } - }, - "type": "object" - }, - "PrivateLinkValidationRequest": { - "example": { - "serviceName": "serviceName" - }, - "properties": { - "serviceName": { - "type": "string" - } - }, - "required": [ - "serviceName" - ], - "type": "object" - }, - "ComposeDraftCreatedResponse": { - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "draftId": "draftId", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "properties": { - "draftId": { - "type": "string" - }, - "createdAt": { - "format": "date-time", - "type": "string" - }, - "updatedAt": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "PipelineComponentResponse": { - "example": { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "version": { - "type": "string" - }, - "status": { - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "type": "string" - }, - "errors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "metricCollections": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "RdiPipelineResponse": { - "example": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" - }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" - }, - "properties": { - "errorOtherThanJobValidationError": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "config": { - "additionalProperties": { - "type": "object" - }, - "type": "object" - }, - "status": { - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "type": "string" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiPipelineError" - }, - "type": "array" - }, - "components": { - "items": { - "$ref": "#/components/schemas/PipelineComponentResponse" - }, - "type": "array" - }, - "current": { - "type": "boolean" - } - }, - "type": "object" - }, - "ComposeTranslateRequest": { - "example": { - "cloud": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "rdi": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" - }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" - }, - "direction": "cloud-to-rdi" - }, - "properties": { - "direction": { - "enum": [ - "cloud-to-rdi", - "rdi-to-cloud" - ], - "type": "string" - }, - "cloud": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "rdi": { - "$ref": "#/components/schemas/RdiPipelineResponse" - } - }, - "type": "object" - }, - "ComposeTranslateResponse": { - "example": { - "rdi": { - "active": true, - "config": { - "key": "{}" - } - }, - "draft": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "warnings": [ - "warnings", - "warnings" - ] - }, - "properties": { - "draft": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "rdi": { - "$ref": "#/components/schemas/RdiPatchRequest" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "RdiPatchRequest": { - "example": { - "active": true, - "config": { - "key": "{}" - } - }, - "properties": { - "active": { - "type": "boolean" - }, - "config": { - "additionalProperties": { - "type": "object" - }, - "type": "object" - } - }, - "type": "object" - }, - "PipelineCreateRequestDto": { - "example": { - "targetBdbId": 1 - }, - "properties": { - "targetBdbId": { - "format": "int64", - "minimum": 1, - "type": "integer" - } - }, - "required": [ - "targetBdbId" - ], - "type": "object" - }, - "PipelineCreateResponseDto": { - "example": { - "pipelineId": "pipelineId" - }, - "properties": { - "pipelineId": { - "type": "string" - } - }, - "required": [ - "pipelineId" - ], - "type": "object" - }, - "ResetPipelineRequestDto": { - "example": { - "flush": true - }, - "properties": { - "flush": { - "type": "boolean" - } - }, - "type": "object" - }, - "DeployPipelineRequestDto": { - "example": { - "reset": { - "flush": true - } - }, - "properties": { - "reset": { - "$ref": "#/components/schemas/ResetPipelineRequestDto" - } - }, - "type": "object" - }, - "WorkspaceClusterRef": { - "example": { - "id": 5 - }, - "properties": { - "id": { - "format": "int64", - "type": "integer" - } - }, - "type": "object" - }, - "WorkspaceDatabaseResponse": { - "example": { - "cluster": { - "id": 5 - }, - "publicDnsAddress": "publicDnsAddress", - "memorySize": 6, - "dnsAddress": "dnsAddress", - "sslEnabled": true, - "name": "name", - "defaultUser": true, - "subscription": { - "id": 1 - }, - "throughput": 5, - "databaseId": 0, - "type": "type", - "status": "status" - }, - "properties": { - "databaseId": { - "format": "int64", - "type": "integer" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "memorySize": { - "format": "int64", - "type": "integer" - }, - "subscription": { - "$ref": "#/components/schemas/WorkspaceSubscriptionRef" - }, - "cluster": { - "$ref": "#/components/schemas/WorkspaceClusterRef" - }, - "dnsAddress": { - "type": "string" - }, - "publicDnsAddress": { - "type": "string" - }, - "sslEnabled": { - "type": "boolean" - }, - "throughput": { - "format": "int64", - "type": "integer" - }, - "defaultUser": { - "type": "boolean" - } - }, - "type": "object" - }, - "WorkspaceDatabasesResponse": { - "example": { - "databases": [ - { - "cluster": { - "id": 5 - }, - "publicDnsAddress": "publicDnsAddress", - "memorySize": 6, - "dnsAddress": "dnsAddress", - "sslEnabled": true, - "name": "name", - "defaultUser": true, - "subscription": { - "id": 1 - }, - "throughput": 5, - "databaseId": 0, - "type": "type", - "status": "status" - }, - { - "cluster": { - "id": 5 - }, - "publicDnsAddress": "publicDnsAddress", - "memorySize": 6, - "dnsAddress": "dnsAddress", - "sslEnabled": true, - "name": "name", - "defaultUser": true, - "subscription": { - "id": 1 - }, - "throughput": 5, - "databaseId": 0, - "type": "type", - "status": "status" - } - ] - }, - "properties": { - "databases": { - "items": { - "$ref": "#/components/schemas/WorkspaceDatabaseResponse" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkspaceSubscriptionRef": { - "example": { - "id": 1 - }, - "properties": { - "id": { - "format": "int64", - "type": "integer" - } - }, - "type": "object" - }, - "Capabilities": { - "example": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "properties": { - "validateSecrets": { - "type": "boolean" - }, - "validatePrivateLink": { - "type": "boolean" - }, - "readyForPipeline": { - "type": "boolean" - }, - "createPrivateLink": { - "type": "boolean" - } - }, - "type": "object" - }, - "InfrastructureError": { - "example": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "timestamp": { - "format": "date-time", - "type": "string" - }, - "details": { - "additionalProperties": { - "type": "object" - }, - "type": "object" - } - }, - "type": "object" - }, - "InfrastructureIam": { - "example": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "properties": { - "privateLinkAllowedPrincipal": { - "type": "string" - }, - "secretsRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "InfrastructureResponse": { - "example": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "properties": { - "state": { - "enum": [ - "NotProvisioned", - "Provisioning", - "Ready", - "Deleting", - "Failed" - ], - "type": "string" - }, - "cidr": { - "type": "string" - }, - "timestamps": { - "$ref": "#/components/schemas/InfrastructureTimestamps" - }, - "iam": { - "$ref": "#/components/schemas/InfrastructureIam" - }, - "networking": { - "$ref": "#/components/schemas/NetworkingOutput" - }, - "monitoring": { - "$ref": "#/components/schemas/MonitoringOutput" - }, - "error": { - "$ref": "#/components/schemas/InfrastructureError" - } - }, - "type": "object" - }, - "InfrastructureTimestamps": { - "example": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "properties": { - "startedAt": { - "format": "date-time", - "type": "string" - }, - "updatedAt": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "MetricsUrls": { - "example": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - }, - "properties": { - "rdiOperatorUrl": { - "type": "string" - }, - "rdiProcessorUrl": { - "type": "string" - }, - "collectorSourceUrls": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "MonitoringOutput": { - "example": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "properties": { - "metricsUrls": { - "$ref": "#/components/schemas/MetricsUrls" - } - }, - "type": "object" - }, - "NetworkingOutput": { - "example": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "properties": { - "egressIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "availabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkspaceResponse": { - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - }, - "properties": { - "subscriptionId": { - "format": "int64", - "type": "integer" - }, - "bdbId": { - "format": "int64", - "type": "integer" - }, - "rcpClusterId": { - "type": "string" - }, - "region": { - "type": "string" - }, - "vpcId": { - "type": "string" - }, - "createdAt": { - "format": "date-time", - "type": "string" - }, - "infrastructure": { - "$ref": "#/components/schemas/InfrastructureResponse" - }, - "capabilities": { - "$ref": "#/components/schemas/Capabilities" - } - }, - "type": "object" - }, - "WorkspaceTasksResponse": { - "example": { - "tasks": [ - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - ] - }, - "properties": { - "tasks": { - "items": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "type": "array" - } - }, - "type": "object" - }, - "CidrsInfoResponse": { - "example": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - }, - "properties": { - "usedCidrs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultCidr": { - "type": "string" - }, - "nextFreeCidr": { - "type": "string" - } - }, - "type": "object" - }, - "PrivateLinkEndpointListResponse": { - "example": { - "endpoints": [ - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - }, - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - } - ] - }, - "properties": { - "endpoints": { - "items": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" - }, - "type": "array" - } - }, - "type": "object" - }, - "PrivateLinkEndpointResponse": { - "example": { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - }, - "properties": { - "endpointId": { - "type": "string" - }, - "type": { - "type": "string" - }, - "state": { - "type": "string" - }, - "network": { - "$ref": "#/components/schemas/PrivateLinkNetwork" - }, - "error": { - "$ref": "#/components/schemas/PrivateLinkError" - } - }, - "type": "object" - }, - "PrivateLinkError": { - "example": { - "code": "code", - "message": "message" - }, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "PrivateLinkNetwork": { - "example": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - }, - "properties": { - "serviceName": { - "type": "string" - }, - "vpceId": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "ComposeDraftListResponse": { - "example": { - "items": [ - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - }, - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - } - ] - }, - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/ComposeDraftSummaryResponse" - }, - "type": "array" - } - }, - "type": "object" - }, - "ComposeDraftSourceSummary": { - "example": { - "name": "name" - }, - "properties": { - "name": { - "type": "string" - } - }, - "type": "object" - }, - "ComposeDraftSummaryResponse": { - "example": { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - }, - "properties": { - "draftId": { - "type": "string" - }, - "targetDataType": { - "enum": [ - "hash", - "json" - ], - "type": "string" - }, - "source": { - "$ref": "#/components/schemas/ComposeDraftSourceSummary" - } - }, - "type": "object" - }, - "SearchPipeline": { - "example": { - "bdbId": 0, - "id": "id" - }, - "properties": { - "id": { - "type": "string" - }, - "bdbId": { - "format": "int64", - "type": "integer" - } - }, - "type": "object" - }, - "SearchPipelinesResponseDto": { - "example": { - "pipelines": [ - { - "bdbId": 0, - "id": "id" - }, - { - "bdbId": 0, - "id": "id" - } - ] - }, - "properties": { - "pipelines": { - "items": { - "$ref": "#/components/schemas/SearchPipeline" - }, - "type": "array" - } - }, - "type": "object" - }, - "GetPipelineResponseDto": { - "example": { - "name": "name", - "id": "id", - "error": { - "code": "code", - "id": "id", - "message": "message" - }, - "status": "draft" - }, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "enum": [ - "draft", - "pipeline-setup-pending", - "pl-initialized", - "pl-approval-pending", - "pl-failed", - "pl-created", - "infra-provision-initialized", - "infra-provisioned", - "infra-provision-failed", - "rdi-deploy-initialized", - "rdi-deployed", - "rdi-deploy-failed", - "rdi-healthy", - "rdi-health-check-failed", - "target-db-connection-test-initialized", - "target-db-connection-test-failed", - "target-db-connection-test-success", - "source-db-connection-test-initialized", - "source-db-connection-test-failed", - "source-db-connection-test-success", - "pipeline-deploy-initialized", - "pipeline-deploy-failed", - "inactive", - "active", - "delete-pending", - "delete-failed", - "delete-success" - ], - "type": "string" - }, - "error": { - "$ref": "#/components/schemas/PipelineError" - } - }, - "required": [ - "id", - "status" - ], - "type": "object" - }, - "PipelineError": { - "example": { - "code": "code", - "id": "id", - "message": "message" - }, - "properties": { - "id": { - "type": "string" - }, - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "PipelineRuntimeStatusResponseDto": { - "example": { - "state": "not-running", - "pipelineStatus": "started", - "errors": [ - { - "code": "code", - "message": "message" - }, - { - "code": "code", - "message": "message" - } - ], - "status": "validating" - }, - "properties": { - "status": { - "enum": [ - "validating", - "stopping", - "starting", - "resetting", - "ready", - "not-ready", - "stopped" - ], - "type": "string" - }, - "state": { - "enum": [ - "not-running", - "cdc", - "initial-sync" - ], - "type": "string" - }, - "pipelineStatus": { - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "type": "string" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/PipelineStatusErrorDto" - }, - "type": "array" - } - }, - "type": "object" - }, - "PipelineStatusErrorDto": { - "example": { - "code": "code", - "message": "message" - }, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "type": "object" - }, - "DataStreamDto": { - "example": { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - }, - "properties": { - "name": { - "type": "string" - }, - "total": { - "format": "int32", - "type": "integer" - }, - "pending": { - "format": "int32", - "type": "integer" - }, - "inserted": { - "format": "int32", - "type": "integer" - }, - "updated": { - "format": "int32", - "type": "integer" - }, - "deleted": { - "format": "int32", - "type": "integer" - }, - "filtered": { - "format": "int32", - "type": "integer" - }, - "rejected": { - "format": "int32", - "type": "integer" - }, - "deduplicated": { - "format": "int32", - "type": "integer" - }, - "lastArrival": { - "type": "string" - } - }, - "type": "object" - }, - "PipelineRuntimeStatsResponseDto": { - "example": { - "mode": "mode", - "dataStreams": [ - { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - }, - { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - } - ], - "sourceType": "sourceType", - "totals": { - "total": 0, - "deduplicated": 9, - "inserted": 1, - "deleted": 5, - "filtered": 2, - "rejected": 7, - "pending": 6, - "name": "name", - "lastArrival": "lastArrival", - "updated": 5 - }, - "lastRetrieved": "lastRetrieved", - "type": "type", - "status": "status" - }, - "properties": { - "lastRetrieved": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "status": { - "type": "string" - }, - "sourceType": { - "type": "string" - }, - "totals": { - "$ref": "#/components/schemas/DataStreamDto" - }, - "dataStreams": { - "items": { - "$ref": "#/components/schemas/DataStreamDto" - }, - "type": "array" - } - }, - "type": "object" - }, - "CidrsInfoDto": { - "example": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - }, - "properties": { - "usedCidrs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultCidr": { - "type": "string" - }, - "nextFreeCidr": { - "type": "string" - } - }, - "type": "object" - }, - "GetPipelinePrerequisitesResponseDto": { - "example": { - "sourceDbTypes": [ - { - "code": "code", - "label": "label" - }, - { - "code": "code", - "label": "label" - } - ], - "pipelineSecretAllowedRole": "pipelineSecretAllowedRole", - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "cidrsInfo": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - }, - "targetTypes": [ - { - "code": "code", - "label": "label" - }, - { - "code": "code", - "label": "label" - } - ] - }, - "properties": { - "privateLinkAllowedPrincipal": { - "type": "string" - }, - "sourceDbTypes": { - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - }, - "type": "array" - }, - "targetTypes": { - "items": { - "$ref": "#/components/schemas/TypeResponseDto" - }, - "type": "array" - }, - "cidrsInfo": { - "$ref": "#/components/schemas/CidrsInfoDto" - }, - "pipelineSecretAllowedRole": { - "type": "string" - } - }, - "type": "object" - }, - "TypeResponseDto": { - "example": { - "code": "code", - "label": "label" - }, - "properties": { - "code": { - "type": "string" - }, - "label": { - "type": "string" - } - }, - "type": "object" - }, - "PipelineMetricsUrlsResponseDto": { - "example": { - "rdiProcessorUrl": "rdiProcessorUrl", - "collectorSourceUrl": "collectorSourceUrl" - }, - "properties": { - "rdiProcessorUrl": { - "type": "string" - }, - "collectorSourceUrl": { - "type": "string" - } - }, - "type": "object" - }, - "SourceSchemasResponseDto": { - "example": { - "schemas": [ - "schemas", - "schemas" - ] - }, - "properties": { - "schemas": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "SchemaDto": { - "example": { - "tables": [ - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - } - ], - "name": "name" - }, - "properties": { - "name": { - "type": "string" - }, - "tables": { - "items": { - "$ref": "#/components/schemas/TableDto" - }, - "type": "array" - } - }, - "type": "object" - }, - "SourceMetadataResponseDto": { - "example": { - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, - { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - } - ], - "name": "name" - } - ] - }, - "properties": { - "schemas": { - "items": { - "$ref": "#/components/schemas/SchemaDto" - }, - "type": "array" - } - }, - "type": "object" - }, - "TableColumnDto": { - "example": { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "format": "int32", - "type": "integer" - }, - "primaryKey": { - "type": "boolean" - }, - "uniqueConstraint": { - "type": "boolean" - } - }, - "type": "object" - }, - "TableDto": { - "example": { - "columns": [ - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - }, - { - "size": 0, - "name": "name", - "type": "type", - "uniqueConstraint": true, - "primaryKey": true - } - ], - "cdcReady": true, - "name": "name" - }, - "properties": { - "name": { - "type": "string" - }, - "cdcReady": { - "type": "boolean" - }, - "columns": { - "items": { - "$ref": "#/components/schemas/TableColumnDto" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkspacesResponse": { - "example": { - "workspaces": [ - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - }, - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - } - ] - }, - "properties": { - "workspaces": { - "items": { - "$ref": "#/components/schemas/WorkspaceResponse" - }, - "type": "array" - } - }, - "type": "object" - }, - "BdbPipelinesResponseDto": { - "example": { - "workspaceIds": [ - "workspaceIds", - "workspaceIds" - ], - "pipelineIds": [ - "pipelineIds", - "pipelineIds" - ] - }, - "properties": { - "pipelineIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "workspaceIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "putJobsYaml_request": { - "properties": { - "files": { - "items": { - "format": "binary", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "files" - ], - "type": "object" - }, - "RdiCoreInfoResponse": { - "properties": { - "version": { - "type": "string", - "title": "Version" - } - }, - "type": "object", - "required": [ - "version" - ], - "title": "InfoResponse", - "description": "Response model containing information about the API." - }, - "RdiCorePipelineCreateRequest": { - "properties": { - "name": { - "type": "string", - "title": "Name", - "default": "default" - }, - "active": { - "type": "boolean", - "title": "Active", - "default": true - }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineCreateRequest", - "description": "Request model for creating a new pipeline." - }, - "RdiCoreredis_di_api__models__errors__ErrorResponse": { - "properties": { - "detail": { - "type": "string", - "title": "Detail", - "examples": [ - "Detailed error message" - ] - }, - "errors": { - "anyOf": [ - { - "items": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Errors" - } - }, - "type": "object", - "required": [ - "detail" - ], - "title": "ErrorResponse", - "description": "Generic error response model" - }, - "RdiCoreredis_di_api__models__errors__Error": { - "properties": { - "code": { - "$ref": "#/components/schemas/RdiCoreErrorCode" - }, - "message": { - "type": "string", - "title": "Message" - }, - "remediation": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "title": "Remediation" - }, - "details": { - "additionalProperties": true, - "type": "object", - "title": "Details" - } - }, - "type": "object", - "required": [ - "code", - "message" - ], - "title": "Error", - "description": "Generic error model" - }, - "RdiCoreErrorCode": { - "type": "string", - "enum": [ - "validation_error", - "job_validation_error", - "request_validation_error", - "cdc_validation_error", - "pipeline_error", - "pipeline_pending", - "pipeline_component_error", - "operation_error" - ], - "title": "ErrorCode", - "description": "Error codes" - }, - "RdiCorePipelineResponse": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "active": { - "type": "boolean", - "title": "Active" - }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - }, - "status": { - "$ref": "#/components/schemas/RdiCoreStatus", - "default": "unknown" - }, - "status_changed_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Status Changed At" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" - }, - "type": "array", - "title": "Errors" - }, - "components": { - "items": { - "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" - }, - "type": "array", - "title": "Components" - }, - "current": { - "type": "boolean", - "title": "Current", - "default": false - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "name", - "active", - "config" - ], - "title": "PipelineResponse", - "description": "Response model containing the details of a pipeline." - }, - "RdiCorePipelineComponentResponse": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "type": { - "$ref": "#/components/schemas/RdiCoreComponentType" - }, - "version": { - "type": "string", - "title": "Version" - }, - "status": { - "$ref": "#/components/schemas/RdiCoreStatus", - "default": "unknown" - }, - "errors": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Errors" - }, - "metric_collections": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "title": "Metric Collections" - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "name", - "type", - "version" - ], - "title": "PipelineComponentResponse", - "description": "Response model containing the details of a pipeline component." - }, - "RdiCoreStatus": { - "type": "string", - "enum": [ - "started", - "stopped", - "error", - "creating", - "updating", - "deleting", - "starting", - "stopping", - "resetting", - "pending", - "unknown" - ], - "title": "Status", - "description": "Pipeline status." - }, - "RdiCoreComponentType": { - "type": "string", - "enum": [ - "debezium-collector", - "collector-api", - "stream-processor", - "metrics-exporter", - "flink-processor-jobmanager", - "flink-processor-taskmanager", - "riotx-collector", - "unknown" - ], - "title": "ComponentType", - "description": "Component types for RDI pipeline components." - }, - "RdiCorePipelinePatchRequest": { - "properties": { - "active": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Active" - }, - "config": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Config" - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelinePatchRequest", - "description": "Request model for updating a pipeline partially." - }, - "RdiCorePipelineUpdateRequest": { - "properties": { - "active": { - "type": "boolean", - "title": "Active", - "default": true - }, - "config": { - "additionalProperties": true, - "type": "object", - "title": "Config" - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineUpdateRequest", - "description": "Request model for updating a pipeline completely." - }, - "RdiCorePipelineStatusResponse": { - "properties": { - "status": { - "$ref": "#/components/schemas/RdiCoreStatus", - "default": "unknown" - }, - "status_changed_at": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ], - "title": "Status Changed At" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__Error" - }, - "type": "array", - "title": "Errors" - }, - "components": { - "items": { - "$ref": "#/components/schemas/RdiCorePipelineComponentResponse" - }, - "type": "array", - "title": "Components" - }, - "current": { - "type": "boolean", - "title": "Current", - "default": false - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineStatusResponse", - "description": "Response model containing the details of a pipeline status." - }, - "RdiCorePipelineMetricCollectionResponse": { - "properties": { - "name": { - "type": "string", - "title": "Name" - }, - "component": { - "type": "string", - "title": "Component" - }, - "metrics": { - "additionalProperties": true, - "type": "object", - "title": "Metrics" - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "name", - "component", - "metrics" - ], - "title": "PipelineMetricCollectionResponse", - "description": "Response model containing the details of a metric collection." - }, - "RdiCorePipelineSecretCreateRequest": { - "properties": { - "key": { - "type": "string", - "title": "Key" - }, - "value": { - "type": "string", - "title": "Value" - }, - "type": { - "type": "string", - "enum": [ - "simple", - "file" - ], - "title": "Type", - "default": "simple" - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "key", - "value" - ], - "title": "PipelineSecretCreateRequest", - "description": "Request model for creating a new pipeline secret." - }, - "RdiCorePipelineSecretResponse": { - "properties": { - "key": { - "type": "string", - "title": "Key" - }, - "type": { - "type": "string", - "enum": [ - "simple", - "file" - ], - "title": "Type" - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "key", - "type" - ], - "title": "PipelineSecretResponse", - "description": "Response model for a pipeline secret." - }, - "RdiCorePipelineSecretUpdateRequest": { - "properties": { - "value": { - "type": "string", - "title": "Value" - }, - "type": { - "type": "string", - "enum": [ - "simple", - "file" - ], - "title": "Type", - "default": "simple" - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "value" - ], - "title": "PipelineSecretUpdateRequest", - "description": "Request model for updating an existing pipeline secret." - }, - "RdiCoreSourceSchemaDetails": { - "type": "string", - "enum": [ - "schemas", - "tables", - "columns" - ], - "title": "SourceSchemaDetails", - "description": "Detail level for source metadata responses." - }, - "RdiCorePipelineSourceSchemaResponse": { - "properties": { - "schemas": { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreSourceSchemaResponse" - }, - "type": "object", - "title": "Schemas", - "examples": [ - { - "inventory": { - "tables": { - "addresses": { - "cdc_ready": true, - "columns": { - "zip": { - "primary_key": false, - "size": 255, - "type": "varchar", - "unique_constraint": false - } - } - } - } - } - } - ] - } - }, - "additionalProperties": false, - "type": "object", - "title": "PipelineSourceSchemaResponse", - "description": "Nested source metadata response for a pipeline source." - }, - "RdiCoreSourceSchemaResponse": { - "properties": { - "tables": { - "anyOf": [ - { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreSourceTableResponse" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Tables", - "examples": [ - { - "users": { - "cdc_ready": true, - "columns": { - "id": { - "primary_key": true, - "size": 32, - "type": "int4", - "unique_constraint": true - } - } - } - } - ] - } - }, - "additionalProperties": false, - "type": "object", - "title": "SourceSchemaResponse", - "description": "Metadata for a single source schema or database." - }, - "RdiCoreSourceTableResponse": { - "properties": { - "cdc_ready": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "title": "Cdc Ready", - "examples": [ - true - ] - }, - "columns": { - "anyOf": [ - { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreSourceColumnResponse" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "title": "Columns", - "examples": [ - { - "id": { - "primary_key": true, - "size": 32, - "type": "int4", - "unique_constraint": true - } - } - ] - } - }, - "additionalProperties": false, - "type": "object", - "title": "SourceTableResponse", - "description": "Metadata for a single source table." - }, - "RdiCoreSourceColumnResponse": { - "properties": { - "type": { - "type": "string", - "title": "Type", - "examples": [ - "varchar" - ] - }, - "size": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "title": "Size", - "examples": [ - 255 - ] - }, - "primary_key": { - "type": "boolean", - "title": "Primary Key", - "default": false, - "examples": [ - false - ] - }, - "unique_constraint": { - "type": "boolean", - "title": "Unique Constraint", - "default": false, - "examples": [ - false - ] - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "type" - ], - "title": "SourceColumnResponse", - "description": "Metadata for a single source column." - }, - "RdiCoreFlushResponse": { - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "description": "Whether the flush operation was successful" - }, - "message": { - "type": "string", - "title": "Message", - "description": "Human-readable result message" - } - }, - "type": "object", - "required": [ - "success", - "message" - ], - "title": "FlushResponse", - "description": "Response model for the target flush operation." - }, - "RdiCoreDlqListResponse": { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreDlqTableInfo" - }, - "type": "object", - "title": "DlqListResponse", - "description": "Response model for listing all DLQ tables with their counts.\n\nReturns a dictionary mapping table names to their DLQ info.\nExample: {\"source.schema.table1\": {\"total_count\": 100}, ...}" - }, - "RdiCoreDlqTableInfo": { - "properties": { - "total_count": { - "type": "integer", - "minimum": 0.0, - "title": "Total Count", - "description": "Total number of records in the DLQ stream", - "examples": [ - 1500 - ] - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "total_count" - ], - "title": "DlqTableInfo", - "description": "Model representing DLQ info for a single table." - }, - "RdiCoreDlqTableResponse": { - "additionalProperties": { - "$ref": "#/components/schemas/RdiCoreDlqTableInfo" - }, - "type": "object", - "title": "DlqTableResponse", - "description": "Response model for a single DLQ table info.\n\nReturns a dictionary with single table name mapped to its DLQ info.\nExample: {\"source.schema.table\": {\"total_count\": 100}}" - }, - "RdiCoreSortOrder": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "title": "SortOrder", - "description": "Sort order for DLQ records." - }, - "RdiCoreDlqRecordsResponse": { - "properties": { - "records": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array", - "title": "Records", - "description": "List of DLQ records" - } - }, - "additionalProperties": false, - "type": "object", - "title": "DlqRecordsResponse", - "description": "Response model for DLQ records." - } - } - }, - "tags": [ - { - "name": "Workspace", - "x-order": "1", - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - { - "name": "Tasks", - "x-order": "2", - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - { - "name": "Secrets", - "x-order": "3", - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - { - "name": "PrivateLink", - "x-order": "4", - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - { - "name": "Compose", - "x-order": "5", - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - { - "name": "RDI Core", - "description": "Data Integration (RDI) endpoints. Experimental - this surface is independent of the Cloud API and may change or break between minor releases.\n\nRDI Core API version: 0.0.0\n", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - }, - "x-order": "6", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "x-rdi-core-api-version": "0.0.0", - "x-rdi-core-api-docs-url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - ], - "paths": { - "/subscriptions/{subscriptionId}/data-integration-workspace": { - "delete": { - "description": "Starts deleting the data integration workspace for a subscription and returns an asynchronous task.", - "operationId": "deleteWorkspace", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "responses": { - "202": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "Workspace deletion accepted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Delete a data integration workspace", - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "get": { - "description": "Returns the current data integration workspace state for the specified subscription.", - "operationId": "getWorkspace", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceResponse" - }, - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - } - } - }, - "description": "Workspace returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Get a data integration workspace", - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "post": { - "description": "Starts provisioning a data integration workspace for a subscription and returns an asynchronous task.", - "operationId": "createWorkspace", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceCreateRequest" - }, - "example": { - "cidr": "cidr" - } - } - }, - "required": true - }, - "responses": { - "202": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "Workspace creation accepted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Create a data integration workspace", - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/data-integration-workspaces": { - "get": { - "description": "Lists all data integration workspaces in the current Redis Cloud account.", - "operationId": "listWorkspaces", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspacesResponse" - }, - "example": { - "workspaces": [ - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - }, - { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "capabilities": { - "validateSecrets": true, - "readyForPipeline": true, - "validatePrivateLink": true, - "createPrivateLink": true - }, - "infrastructure": { - "iam": { - "privateLinkAllowedPrincipal": "privateLinkAllowedPrincipal", - "secretsRoleArn": "secretsRoleArn" - }, - "timestamps": { - "startedAt": "2000-01-23T04:56:07.000+00:00", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - }, - "cidr": "cidr", - "networking": { - "egressIps": [ - "egressIps", - "egressIps" - ], - "availabilityZones": [ - "availabilityZones", - "availabilityZones" - ] - }, - "state": "NotProvisioned", - "monitoring": { - "metricsUrls": { - "collectorSourceUrls": { - "key": "collectorSourceUrls" - }, - "rdiProcessorUrl": "rdiProcessorUrl", - "rdiOperatorUrl": "rdiOperatorUrl" - } - }, - "error": { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - }, - "vpcId": "vpcId", - "bdbId": 6, - "rcpClusterId": "rcpClusterId", - "subscriptionId": 0, - "region": "region" - } - ] - } - } - }, - "description": "Workspaces returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "List data integration workspaces", - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/tasks": { - "get": { - "description": "Lists asynchronous workspace tasks for the specified data integration workspace.", - "operationId": "listTasks", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTasksResponse" - }, - "example": { - "tasks": [ - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - }, - { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - ] - } - } - }, - "description": "Workspace tasks returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "List workspace tasks", - "x-speakeasy-group": "tasks", - "tags": [ - "Tasks" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/tasks/{taskId}": { - "get": { - "description": "Returns one asynchronous workspace task by task ID.", - "operationId": "getTask", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "taskId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "Workspace task returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Get a workspace task", - "x-speakeasy-group": "tasks", - "tags": [ - "Tasks" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link": { - "get": { - "description": "Lists PrivateLink endpoints for the data integration workspace in the specified subscription.", - "operationId": "listEndpoints", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkEndpointListResponse" - }, - "example": { - "endpoints": [ - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - }, - { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - } - ] - } - } - }, - "description": "PrivateLink endpoints returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "List PrivateLink endpoints", - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "post": { - "description": "Starts creating a PrivateLink endpoint for the data integration workspace and returns an asynchronous task.", - "operationId": "createEndpoint", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreatePrivateLinkEndpointRequest" - }, - "example": { - "serviceName": "serviceName" - } - } - }, - "required": true - }, - "responses": { - "202": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "PrivateLink endpoint creation accepted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Create a PrivateLink endpoint", - "x-speakeasy-group": "privatelink", - "x-speakeasy-name-override": "create-endpoint", - "tags": [ - "PrivateLink" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}": { - "delete": { - "description": "Starts deleting a PrivateLink endpoint from the data integration workspace and returns an asynchronous task.", - "operationId": "deleteEndpoint", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "endpointId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "202": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkspaceTaskResponse" - }, - "example": { - "commandType": "commandType", - "_links": { - "task": { - "href": "href", - "type": "type" - }, - "resource": { - "href": "href", - "type": "type" - } - }, - "response": "{}", - "description": "description", - "taskId": "taskId", - "status": "status", - "timestamp": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "PrivateLink endpoint deletion accepted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Delete a PrivateLink endpoint", - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "get": { - "description": "Returns one PrivateLink endpoint by endpoint ID.", - "operationId": "getEndpoint", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "endpointId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkEndpointResponse" - }, - "example": { - "endpointId": "endpointId", - "state": "state", - "type": "type", - "error": { - "code": "code", - "message": "message" - }, - "network": { - "vpceId": "vpceId", - "serviceName": "serviceName", - "url": "url" - } - } - } - }, - "description": "PrivateLink endpoint returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Get a PrivateLink endpoint", - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/{endpointId}/validate": { - "post": { - "description": "Validates reachability for an existing PrivateLink endpoint attached to the data integration workspace.", - "operationId": "validateEndpoint", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "endpointId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationResponse" - }, - "example": { - "success": true, - "error": "error" - } - } - }, - "description": "PrivateLink endpoint validation completed" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Validate a PrivateLink endpoint", - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/network/private-link/validate": { - "post": { - "description": "Validates an AWS PrivateLink endpoint service name before creating a workspace PrivateLink endpoint.", - "operationId": "validatePrivateLink", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationRequest" - }, - "example": { - "serviceName": "serviceName" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivateLinkValidationResponse" - }, - "example": { - "success": true, - "error": "error" - } - } - }, - "description": "PrivateLink service validation completed" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Validate a PrivateLink service", - "x-speakeasy-group": "privatelink", - "tags": [ - "PrivateLink" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/network/suggested-cidrs": { - "get": { - "description": "Returns used CIDRs, the default CIDR, and the next free CIDR for data integration workspace provisioning.", - "operationId": "getSuggestedCidrs", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": true, - "in": "query", - "name": "cidr-mask", - "required": false, - "schema": { - "default": 22, - "format": "int32", - "type": "integer" - }, - "style": "form" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CidrsInfoResponse" - }, - "example": { - "nextFreeCidr": "nextFreeCidr", - "defaultCidr": "defaultCidr", - "usedCidrs": [ - "usedCidrs", - "usedCidrs" - ] - } - } - }, - "description": "Suggested CIDRs returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Get suggested workspace CIDRs", - "x-speakeasy-group": "workspaces", - "tags": [ - "Workspace" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/compose": { - "get": { - "description": "Lists compose drafts for the specified data integration workspace.", - "operationId": "listDrafts", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftListResponse" - }, - "example": { - "items": [ - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - }, - { - "draftId": "draftId", - "targetDataType": "hash", - "source": { - "name": "name" - } - } - ] - } - } - }, - "description": "Compose drafts returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "List compose drafts", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "post": { - "description": "Creates a compose draft for building or editing a data integration pipeline configuration.", - "operationId": "createDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - } - } - } - }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftCreatedResponse" - }, - "example": { - "createdAt": "2000-01-23T04:56:07.000+00:00", - "draftId": "draftId", - "updatedAt": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "Compose draft created" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Create a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/compose/mount-secrets": { - "post": { - "description": "Mounts secret providers from an ad-hoc compose payload into the data integration workspace.", - "operationId": "mountSecretsFromPayload", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - } - } - }, - "required": true - }, - "responses": { - "204": { - "description": "Compose secrets mounted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Mount compose payload secrets", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/compose/translate": { - "post": { - "description": "Translates between cloud compose configuration and the RDI-native pipeline configuration format.", - "operationId": "translate", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeTranslateRequest" - }, - "example": { - "cloud": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "rdi": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" - }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" - }, - "direction": "cloud-to-rdi" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeTranslateResponse" - }, - "example": { - "rdi": { - "active": true, - "config": { - "key": "{}" - } - }, - "draft": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - }, - "warnings": [ - "warnings", - "warnings" - ] - } - } - }, - "description": "Compose configuration translated" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Translate a compose configuration", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}": { - "delete": { - "description": "Deletes a compose draft from the data integration workspace.", - "operationId": "deleteDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "204": { - "description": "Compose draft deleted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Delete a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "get": { - "description": "Returns one compose draft by draft ID.", - "operationId": "getDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" - }, - "example": { - "draftId": "draftId", - "advanced": { - "processor": "{}" - }, - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "target": { - "targetBdbId": 1 - }, - "pipelineName": "pipelineName", - "createdAt": "2000-01-23T04:56:07.000+00:00", - "pipelineDescription": "pipelineDescription", - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "updatedAt": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "Compose draft returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Get a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - }, - "put": { - "description": "Replaces the body of an existing compose draft.", - "operationId": "updateDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftUpsertRequest" - }, - "example": { - "pipelineName": "pipelineName", - "pipelineDescription": "pipelineDescription", - "advanced": { - "processor": "{}" - }, - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "target": { - "targetBdbId": 1 - } - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposeDraftResponse" - }, - "example": { - "draftId": "draftId", - "advanced": { - "processor": "{}" - }, - "jobs": [ - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - }, - { - "file": "file", - "name": "name", - "error": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - }, - "rdiJob": { - "key": "" - } - } - ], - "targetDataType": "hash", - "source": { - "databaseType": "databaseType", - "sinkAdvanced": null, - "database": "database", - "port": 6, - "secretArns": { - "key": "secretArns" - }, - "endpointId": "endpointId", - "name": "name", - "host": "host", - "sourceAdvanced": null - }, - "target": { - "targetBdbId": 1 - }, - "pipelineName": "pipelineName", - "createdAt": "2000-01-23T04:56:07.000+00:00", - "pipelineDescription": "pipelineDescription", - "schemas": [ - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - }, - { - "tables": [ - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - }, - { - "columns": [ - { - "name": "name", - "uniqueConstraint": true - }, - { - "name": "name", - "uniqueConstraint": true - } - ], - "name": "name", - "snapshot_sql": "snapshot_sql" - } - ], - "name": "name" - } - ], - "sourceName": "sourceName", - "clientData": { - "key": "{}" - }, - "updatedAt": "2000-01-23T04:56:07.000+00:00" - } - } - }, - "description": "Compose draft updated" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Update a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/composed": { - "get": { - "description": "Renders a compose draft as the RDI-native pipeline configuration payload.", - "operationId": "getComposed", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiPatchRequest" - }, - "example": { - "active": true, - "config": { - "key": "{}" - } - } - } - }, - "description": "RDI configuration returned" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Get composed RDI configuration", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/validate": { - "post": { - "description": "Dry-run validates a compose draft against the RDI API without deploying the pipeline.", - "operationId": "validateDraft", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiPipelineResponse" - }, - "example": { - "components": [ - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - }, - { - "name": "name", - "type": "type", - "version": "version", - "errors": [ - "errors", - "errors" - ], - "status": "started", - "metricCollections": [ - "metricCollections", - "metricCollections" - ] - } - ], - "current": true, - "errorOtherThanJobValidationError": true, - "name": "name", - "active": true, - "config": { - "key": "{}" - }, - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "status": "started" - } - } - }, - "description": "Compose draft validated" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Validate a compose draft", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/compose/{draftId}/mount-secrets": { - "post": { - "description": "Mounts secret providers from a saved compose draft into the data integration workspace.", - "operationId": "mountSecrets", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - }, - { - "explode": false, - "in": "path", - "name": "draftId", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "responses": { - "204": { - "description": "Compose draft secrets mounted" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Mount compose draft secrets", - "x-speakeasy-group": "compose", - "tags": [ - "Compose" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate": { - "post": { - "description": "Validates AWS Secrets Manager ARNs for source credentials and optional TLS materials used by a data integration workspace.", - "operationId": "validateSecret", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecretValidationRequestDto" - }, - "example": { - "credentialsSecretArn": "credentialsSecretArn", - "clientCertSecretArn": "clientCertSecretArn", - "clientKeySecretArn": "clientKeySecretArn", - "snowflakePrivateKeyPassphraseSecretArn": "snowflakePrivateKeyPassphraseSecretArn", - "snowflakeCredentialsSecretArn": "snowflakeCredentialsSecretArn", - "snowflakePrivateKeySecretArn": "snowflakePrivateKeySecretArn", - "caCertSecretArn": "caCertSecretArn", - "clientKeyPassphraseSecretArn": "clientKeyPassphraseSecretArn" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SecretValidationResponseDto" - }, - "example": { - "success": true, - "errors": [ - { - "code": "code", - "message": "message" - }, - { - "code": "code", - "message": "message" - } - ] - } - } - }, - "description": "Secret validation completed" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Validate workspace secrets", - "x-speakeasy-group": "secrets", - "x-speakeasy-name-override": "validate", - "tags": [ - "Secrets" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/secrets/validate-single": { - "post": { - "description": "Validates one AWS Secrets Manager ARN against a specific data integration secret purpose.", - "operationId": "validateSingleSecret", - "parameters": [ - { - "explode": false, - "in": "path", - "name": "subscriptionId", - "required": true, - "schema": { - "format": "int64", - "type": "integer" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SingleSecretValidationRequestDto" - }, - "example": { - "purpose": "source-credentials", - "secretArn": "secretArn" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SingleSecretValidationResponseDto" - }, - "example": { - "success": true, - "errorCode": "errorCode", - "error": "error" - } - } - }, - "description": "Single secret validation completed" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Bad request: request or business validation failed" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Access denied" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource not found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Resource conflict or invalid state transition" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Internal server error" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebError" - }, - "example": { - "code": "code", - "message": "message", - "params": "params", - "errors": [ - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - }, - { - "code": "code", - "details": { - "key": "{}" - }, - "message": "message" - } - ], - "timestamp": 5, - "status": 5 - } - } - }, - "description": "Upstream service error" - } - }, - "summary": "Validate one workspace secret", - "x-speakeasy-group": "secrets", - "tags": [ - "Secrets" - ], - "x-stability": "experimental", - "x-api-lifecycle": "preview" - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/info": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Info", - "description": "Gets package version.", - "operationId": "getRdiV2Info", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreInfoResponse" - } - } - } - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Pipelines", - "description": "Gets all pipelines.", - "operationId": "listRdiV2Pipelines", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - }, - "title": "Response Get Pipelines Api V2 Pipelines Get" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "post": { - "tags": [ - "RDI Core" - ], - "summary": "Create Pipeline", - "description": "Creates a new pipeline.", - "operationId": "createRdiV2Pipeline", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "Only validate the provided configuration without making changes", - "default": false, - "title": "Dry Run" - }, - "description": "Only validate the provided configuration without making changes" - }, - { - "name": "validate_tables", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate against database tables via collector API", - "default": true, - "title": "Validate Tables" - }, - "description": "Validate against database tables via collector API" - }, - { - "name": "validate_cdc", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate CDC configuration via collector API", - "default": false, - "title": "Validate Cdc" - }, - "description": "Validate CDC configuration via collector API" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineCreateRequest", - "description": "Pipeline details" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Conflict" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" - }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Pipeline", - "description": "Gets a pipeline by name.", - "operationId": "getRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "put": { - "tags": [ - "RDI Core" - ], - "summary": "Update Pipeline", - "description": "Updates a pipeline completely, or creates it if it doesn't exist.\nRetries 409 conflicts received from the K8s API server.", - "operationId": "replaceRdiV2Pipeline", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "Only validate the provided configuration without making changes", - "default": false, - "title": "Dry Run" - }, - "description": "Only validate the provided configuration without making changes" - }, - { - "name": "validate_tables", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate against database tables via collector API", - "default": true, - "title": "Validate Tables" - }, - "description": "Validate against database tables via collector API" - }, - { - "name": "validate_cdc", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate CDC configuration via collector API", - "default": false, - "title": "Validate Cdc" - }, - "description": "Validate CDC configuration via collector API" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineUpdateRequest", - "description": "Pipeline details" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" - }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "patch": { - "tags": [ - "RDI Core" - ], - "summary": "Patch Pipeline", - "description": "Updates a pipeline partially (only updates specified fields), with retries on 409 conflicts received from the K8s API server.", - "operationId": "updateRdiV2Pipeline", - "parameters": [ - { - "name": "dry_run", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "Only validate the provided configuration without making changes", - "default": false, - "title": "Dry Run" - }, - "description": "Only validate the provided configuration without making changes" - }, - { - "name": "validate_tables", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate against database tables via collector API", - "default": true, - "title": "Validate Tables" - }, - "description": "Validate against database tables via collector API" - }, - { - "name": "validate_cdc", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "description": "Validate CDC configuration via collector API", - "default": false, - "title": "Validate Cdc" - }, - "description": "Validate CDC configuration via collector API" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelinePatchRequest", - "description": "Partial pipeline details" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" - }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "delete": { - "tags": [ - "RDI Core" - ], - "summary": "Delete Pipeline", - "description": "Replaces a pipeline with an empty inactive pipeline and resets it.\n\nThis is done to ensure that no artifacts (offsets, schema, data streams etc.) are left behind,\nas this may cause errors and unexpected behavior when trying to re-create the pipeline.", - "operationId": "deleteRdiV2Pipeline", - "responses": { - "204": { - "description": "Successful Response" - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/status": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Pipeline Status", - "description": "Gets the status of a pipeline by name.", - "operationId": "getRdiV2PipelineStatus", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineStatusResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/start": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "post": { - "tags": [ - "RDI Core" - ], - "summary": "Start Pipeline", - "description": "Starts a pipeline, retrying on 409 conflicts received from the K8s API server.", - "operationId": "startRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/stop": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "post": { - "tags": [ - "RDI Core" - ], - "summary": "Stop Pipeline", - "description": "Stops a pipeline, retrying on 409 conflicts received from the K8s API server.", - "operationId": "stopRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/reset": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "post": { - "tags": [ - "RDI Core" - ], - "summary": "Reset Pipeline", - "description": "Resets a pipeline, retrying on 409 conflicts received from the K8s API server.", - "operationId": "resetRdiV2Pipeline", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Metric Collections", - "description": "Gets all metric collections for a pipeline.", - "operationId": "listRdiV2MetricCollections", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" - }, - "title": "Response Get Metric Collections Api V2 Pipelines Name Metric Collections Get" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/metric-collections/{collection_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "collection_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Metric collection name", - "title": "Collection Name" - }, - "description": "Metric collection name" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Metric Collection", - "description": "Gets a metric collection for a pipeline.", - "operationId": "getRdiV2MetricCollection", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineMetricCollectionResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Pipeline Secrets", - "description": "Lists all pipeline secrets.", - "operationId": "listRdiV2PipelineSecrets", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - }, - "title": "Response Get Pipeline Secrets Api V2 Pipelines Name Secrets Get" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "post": { - "tags": [ - "RDI Core" - ], - "summary": "Create Secret", - "description": "Creates a new pipeline secret.", - "operationId": "createRdiV2PipelineSecret", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretCreateRequest", - "description": "Pipeline secret details" - } - } - } - }, - "responses": { - "201": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "409": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Conflict" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/secrets/{key}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline secret key", - "title": "Key" - }, - "description": "Pipeline secret key" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Secret", - "description": "Gets a pipeline secret by key.", - "operationId": "getRdiV2PipelineSecret", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "put": { - "tags": [ - "RDI Core" - ], - "summary": "Update Secret", - "description": "Updates a pipeline secret, or creates it if it does not exist.", - "operationId": "replaceRdiV2PipelineSecret", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretUpdateRequest", - "description": "Pipeline secret details" - } - } - } - }, - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSecretResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - }, - "delete": { - "tags": [ - "RDI Core" - ], - "summary": "Delete Secret", - "description": "Deletes a pipeline secret by key.", - "operationId": "deleteRdiV2PipelineSecret", - "responses": { - "204": { - "description": "Successful Response" - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/source-schemas/{source_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "source_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline source name", - "title": "Source Name" - }, - "description": "Pipeline source name" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get Pipeline Source Schemas", - "description": "Lists source schemas/databases, tables, and columns for a pipeline source.", - "operationId": "getRdiV2SourceSchema", - "parameters": [ - { - "name": "schemas", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Comma-separated list of schema/database names to filter on", - "title": "Schemas" - }, - "description": "Comma-separated list of schema/database names to filter on" - }, - { - "name": "tables", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Comma-separated list of table names to filter on", - "title": "Tables" - }, - "description": "Comma-separated list of table names to filter on" - }, - { - "name": "details", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/RdiCoreSourceSchemaDetails", - "description": "The level of detail to return: schemas, tables, or columns", - "default": "schemas" - }, - "description": "The level of detail to return: schemas, tables, or columns" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCorePipelineSourceSchemaResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unprocessable Entity" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/flush-target/{target_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "target_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Target name", - "title": "Target Name" - }, - "description": "Target name" - } - ], - "post": { - "tags": [ - "RDI Core" - ], - "summary": "Flush Target", - "description": "Flushes the target Redis database.\n\nSends a FLUSHALL command to the target Redis database through the collector API.", - "operationId": "flushRdiV2Target", - "responses": { - "200": { - "description": "FLUSHALL completed successfully", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreFlushResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Bad Request" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "502": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Bad Gateway" - }, - "503": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Service Unavailable" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get all DLQ streams with counts", - "description": "Returns all tables that have DLQ records with their total counts. Table names are returned in the format: source_name.schema_name.table_name (for PostgreSQL, Oracle, SQL Server, Spanner) or source_name.database_name.table_name (for MySQL, MariaDB, MongoDB).", - "operationId": "listRdiV2Dlqs", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreDlqListResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Internal Server Error" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "full_table_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", - "title": "Full Table Name" - }, - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get DLQ info for a specific stream", - "description": "Returns the DLQ count for a specific stream. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", - "operationId": "getRdiV2Dlq", - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreDlqTableResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Internal Server Error" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - }, - "/subscriptions/{subscriptionId}/data-integration-workspace/rdi/api/v2/pipelines/{name}/dlqs/{full_table_name}/records": { - "parameters": [ - { - "name": "subscriptionId", - "in": "path", - "description": "Subscription ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int64" - } - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Pipeline name", - "title": "Name" - }, - "description": "Pipeline name" - }, - { - "name": "full_table_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')", - "title": "Full Table Name" - }, - "description": "Full stream name in format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users')" - } - ], - "get": { - "tags": [ - "RDI Core" - ], - "summary": "Get DLQ records for a specific stream", - "description": "Returns the DLQ records for a specific table with pagination. The stream name must be in the format: source_name.schema_name.table_name (e.g., 'postgres.public.users') or source_name.database_name.table_name (e.g., 'mysql.mydb.users').", - "operationId": "listRdiV2DlqRecords", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "maximum": 1000, - "minimum": 1, - "description": "Number of records to return", - "default": 20, - "title": "Limit" - }, - "description": "Number of records to return" - }, - { - "name": "offset", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "minimum": 0, - "description": "Starting position for pagination", - "default": 0, - "title": "Offset" - }, - "description": "Starting position for pagination" - }, - { - "name": "sort_order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/RdiCoreSortOrder", - "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)", - "default": "desc" - }, - "description": "Sort order: 'asc' (oldest first) or 'desc' (newest first)" - }, - { - "name": "fields", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp", - "title": "Fields" - }, - "description": "Comma-separated list of fields to include in projection. Allowed fields: __dlq_stream_entry_id, db, opcode, reason_rejected, removed_fields, schema, server_name, source, source_type, table, timestamp" - } - ], - "responses": { - "200": { - "description": "Successful Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreDlqRecordsResponse" - } - } - } - }, - "401": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Unauthorized" - }, - "403": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Forbidden" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Bad Request" - }, - "404": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Not Found" - }, - "500": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RdiCoreredis_di_api__models__errors__ErrorResponse" - } - } - }, - "description": "Internal Server Error" - } - }, - "x-speakeasy-group": "rdi", - "x-stability": "experimental", - "x-api-lifecycle": "preview", - "externalDocs": { - "description": "Redis Data Integration API reference", - "url": "https://redis.io/docs/latest/integrate/redis-data-integration/reference/api-reference/" - } - } - } - } -}