{ "openapi": "3.1.0", "info": { "title": "Redis Data Integration API", "description": "> **NOTE:** RDI API v1 is deprecated as of RDI 1.19.0. Use RDI API v2 for new integrations and migrate existing clients. API v1 will not be extended with new RDI features and may be removed in a future RDI version. See the [RDI API migration guide](/integrate/redis-data-integration/reference/api-migration/).\n\nAPI for Redis Data Integration services", "version": "1.19.0" }, "paths": { "/": { "get": { "summary": "Redirect To Doc", "description": "Redirects to the API documentation page.", "operationId": "redirect_to_doc__get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [] } }, "/api/v1/login": { "post": { "tags": ["login"], "summary": "Login", "description": "Login route.\n\nArgs:\n credentials (CredentialsInfo): User credentials.\n\nReturns:\n TokenInfo: Token information.", "operationId": "login_api_v1_login_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialsInfo" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenInfo" } } } } }, "security": [] } }, "/api/v1/pipelines/start": { "post": { "tags": ["secure"], "summary": "Start Pipeline", "description": "Starts a pipeline.", "operationId": "start_pipeline_api_v1_pipelines_start_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActionIdResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/stop": { "post": { "tags": ["secure"], "summary": "Stop Pipeline", "description": "Stops a pipeline.", "operationId": "stop_pipeline_api_v1_pipelines_stop_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActionIdResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/reset": { "post": { "tags": ["secure"], "summary": "Reset Pipeline", "description": "Reset pipeline.", "operationId": "reset_pipeline_api_v1_pipelines_reset_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActionIdResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/actions/{action_id}": { "get": { "tags": ["secure"], "summary": "Get Action", "description": "Gets an action status by ID.", "operationId": "get_action_api_v1_actions__action_id__get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "action_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Action Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActionResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/me": { "get": { "tags": ["secure"], "summary": "Protected Route", "description": "Protected route.\n\nArgs:\n token_data (dict): Token data.\n\nReturns:\n Dict[str, Any]: Token data.", "operationId": "protected_route_api_v1_me_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Protected Route Api V1 Me Get" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] }, { "JWTBearer": [] } ] } }, "/api/v1/pipelines/sources": { "put": { "tags": ["secure", "sources"], "summary": "Update Sources", "description": "Updates the sources in RDI settings.", "operationId": "update_sources_api_v1_pipelines_sources_put", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Body", "examples": [ { "psql": { "type": "cdc", "logging": { "level": "debug" }, "connection": { "type": "mysql", "host": "${HOST_IP}", "port": 3306, "database": "new_schema", "user": "${secret:local-vault:credentials:user}", "password": "${secret:local-vault:credentials:password}" } } } ] } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Update Sources Api V1 Pipelines Sources Put" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/sources/{name}": { "put": { "tags": ["secure", "sources"], "summary": "Upsert Source By Name", "description": "Upserts a source in RDI settings by its name.", "operationId": "upsert_source_by_name_api_v1_pipelines_sources__name__put", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "type": "cdc", "logging": { "level": "debug" }, "connection": { "type": "mysql", "host": "${HOST_IP}", "port": 3306, "database": "new_schema", "user": "${secret:local-vault:credentials:user}", "password": "${secret:local-vault:credentials:password}" } } ], "title": "Body" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Upsert Source By Name Api V1 Pipelines Sources Name Put" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } }, "patch": { "tags": ["secure", "sources"], "summary": "Partial Update Source By Name", "description": "Partially updates a source in RDI settings by name.", "operationId": "partial_update_source_by_name_api_v1_pipelines_sources__name__patch", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "active": true, "tables": { "my_table": { "columns": ["id", "name"] } } } ], "title": "Body" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Partial Update Source By Name Api V1 Pipelines Sources Name Patch" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } }, "delete": { "tags": ["secure", "sources"], "summary": "Delete Source By Name", "description": "Deletes a source from RDI settings by its name.", "operationId": "delete_source_by_name_api_v1_pipelines_sources__name__delete", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Delete Source By Name Api V1 Pipelines Sources Name Delete" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines/targets": { "put": { "tags": ["secure", "targets"], "summary": "Update Targets", "description": "Updates the targets in RDI settings.", "operationId": "update_targets_api_v1_pipelines_targets_put", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Body", "examples": [ { "target": { "connection": { "type": "redis", "host": "${HOST_IP}", "port": 12002 } } } ] } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Update Targets Api V1 Pipelines Targets Put" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/targets/{name}": { "put": { "tags": ["secure", "targets"], "summary": "Upsert Target By Name", "description": "Upserts a target in RDI settings by its name.", "operationId": "upsert_target_by_name_api_v1_pipelines_targets__name__put", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "connection": { "type": "redis", "host": "${HOST_IP}", "port": 12002 } } ], "title": "Body" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Upsert Target By Name Api V1 Pipelines Targets Name Put" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } }, "patch": { "tags": ["secure", "targets"], "summary": "Partial Update Target By Name", "description": "Partially updates a target in RDI settings by name.", "operationId": "partial_update_target_by_name_api_v1_pipelines_targets__name__patch", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "connection": { "port": 12001 } } ], "title": "Body" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Partial Update Target By Name Api V1 Pipelines Targets Name Patch" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } }, "delete": { "tags": ["secure", "targets"], "summary": "Delete Target By Name", "description": "Deletes a target from RDI settings by its name.", "operationId": "delete_target_by_name_api_v1_pipelines_targets__name__delete", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Delete Target By Name Api V1 Pipelines Targets Name Delete" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines/secret-providers/{name}": { "put": { "tags": ["secure", "secret-providers"], "summary": "Upsert Secret Provider By Name", "description": "Upserts a secret-provider in RDI settings by its name.", "operationId": "upsert_secret_provider_by_name_api_v1_pipelines_secret_providers__name__put", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "type": "vault", "parameters": { "vaultAddress": "http://vault.default:8200", "roleName": "database", "someField": "abc", "objects": [ { "objectName": "password", "secretPath": "secret/data/db-pass", "secretKey": "password" } ] } } ], "title": "Body" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Upsert Secret Provider By Name Api V1 Pipelines Secret Providers Name Put" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } }, "patch": { "tags": ["secure", "secret-providers"], "summary": "Partial Update Secret Provider By Name", "description": "Partially updates a secret provider in RDI settings by name.", "operationId": "partial_update_secret_provider_by_name_api_v1_pipelines_secret_providers__name__patch", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "type": "aws" } ], "title": "Body" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Partial Update Secret Provider By Name Api V1 Pipelines Secret Providers Name Patch" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } }, "delete": { "tags": ["secure", "secret-providers"], "summary": "Delete Secret Provider By Name", "description": "Deletes a secret-provider from RDI settings by its name.", "operationId": "delete_secret_provider_by_name_api_v1_pipelines_secret_providers__name__delete", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "title": "Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Delete Secret Provider By Name Api V1 Pipelines Secret Providers Name Delete" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines/sources/dry-run": { "post": { "tags": ["secure", "connection"], "summary": "Sources Dry Run", "description": "Tests the connection to the source database.\n\nArgs:\n body: The connection details according to the OpenAPI Scheme.\n\nReturns:\n Union[ConnectionStatusSingleConnection, Error]: The connection status.", "operationId": "sources_dry_run_api_v1_pipelines_sources_dry_run_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Body", "examples": [ { "type": "cdc", "logging": { "level": "debug" }, "connection": { "type": "mysql", "host": "${HOST_IP}", "port": 3306, "database": "new_schema", "user": "${secret:local-vault:credentials:user}", "password": "${secret:local-vault:credentials:password}" } } ] } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ConnectionStatusSingleConnection" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Sources Dry Run Api V1 Pipelines Sources Dry Run Post" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/targets/dry-run": { "post": { "tags": ["secure"], "summary": "Multiple Targets Dry Run", "description": "Tests connection to the target database(s).", "operationId": "multiple_targets_dry_run_api_v1_pipelines_targets_dry_run_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Body", "examples": [ { "targets": { "target-one": { "type": "redis", "host": "${HOST_IP}", "port": 12000 }, "target-two": { "type": "redis", "host": "${HOST_IP}", "port": 12002, "password": "${TARGET_DB_PASSWORD}" } } } ] } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TargetsOutput" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/target/dry-run": { "post": { "tags": ["secure"], "summary": "Single Target Dry Run", "description": "Tests connection by name to the target database.", "operationId": "single_target_dry_run_api_v1_pipelines_target_dry_run_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Body", "examples": [ { "type": "redis", "host": "${HOST_IP}", "port": 12002 } ] } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectionStatusSingleConnection" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/sources/{source_name}/columns": { "get": { "tags": ["secure"], "summary": "Get Columns", "description": "Returns metadata for the specified schema and tables, for the specified source.", "operationId": "get_columns_api_v1_pipelines_sources__source_name__columns_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "source_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Name" } }, { "name": "schema", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional schema name", "title": "Schema" }, "description": "Optional schema name" }, { "name": "tables", "in": "query", "required": true, "schema": { "type": "string", "description": "Comma-separated list of table names to filter by", "title": "Tables" }, "description": "Comma-separated list of table names to filter by" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetadataResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "404": { "description": "The specified source is not found in the current pipeline", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "423": { "description": "Collector API is not available for the specified source or is disabled", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines/sources/{source_name}/schemas": { "get": { "tags": ["secure"], "summary": "Get Schemas", "description": "Returns all available schemas for the specified source.\nFor databases that do not support schemas (such as MySQL), returns available databases instead.", "operationId": "get_schemas_api_v1_pipelines_sources__source_name__schemas_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "source_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SchemaResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "404": { "description": "The specified source is not found in the current pipeline", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "423": { "description": "Collector API is not available for the specified source or is disabled", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines/sources/{source_name}/databases": { "get": { "tags": ["secure"], "summary": "Get Databases", "description": "Returns all available databases for the specified source.", "operationId": "get_databases_api_v1_pipelines_sources__source_name__databases_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "source_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "404": { "description": "The specified source is not found in the current pipeline", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "423": { "description": "Collector API is not available for the specified source or is disabled", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines/sources/{source_name}/metadata": { "get": { "tags": ["secure"], "summary": "Get Metadata", "description": "Returns metadata for the specified schema and tables, for the specified source.", "operationId": "get_metadata_api_v1_pipelines_sources__source_name__metadata_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "source_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Name" } }, { "name": "schema", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional schema name", "title": "Schema" }, "description": "Optional schema name" }, { "name": "tables", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional comma-separated list of table names to filter by", "title": "Tables" }, "description": "Optional comma-separated list of table names to filter by" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetadataResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "404": { "description": "The specified source is not found in the current pipeline", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "423": { "description": "Collector API is not available for the specified source or is disabled", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines/sources/{source_name}/tables": { "get": { "tags": ["secure"], "summary": "Get Tables", "description": "Returns available tables in the specified schema for the specified source.", "operationId": "get_tables_api_v1_pipelines_sources__source_name__tables_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "source_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Name" } }, { "name": "schema", "in": "query", "required": true, "schema": { "type": "string", "description": "Schema name", "title": "Schema" }, "description": "Schema name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TableResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "404": { "description": "The specified source is not found in the current pipeline", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "423": { "description": "Collector API is not available for the specified source or is disabled", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/pipelines": { "get": { "tags": ["secure", "deploy"], "summary": "Retrieve Pipelines", "description": "Returns the current pipeline.", "operationId": "retrieve_pipelines_api_v1_pipelines_get", "security": [ { "JWTBearer": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Retrieve Pipelines Api V1 Pipelines Get" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } }, "post": { "tags": ["secure", "deploy"], "summary": "Pipelines", "description": "Updates the current pipeline completely, or creates it if it doesn't exist, using the provided configuration.\nBefore creating or updating, validates the provided configuration for schema compliance and integrity.", "operationId": "pipelines_api_v1_pipelines_post", "security": [ { "JWTBearer": [] } ], "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" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "sources": { "psql": { "type": "cdc", "logging": { "level": "debug" }, "connection": { "type": "postgresql", "host": "host.docker.internal", "port": 5432, "database": "chinook", "user": "postgres", "password": "postgres" }, "tables": { "public.invoice": { "columns": [ "billingaddress", "billingcity", "billingcountry", "billingpostalcode", "total", "customerid", "billingstate", "invoiceid", "invoicedate" ], "keys": ["invoiceid"] }, "public.track": { "columns": [ "genreid", "milliseconds", "mediatypeid", "trackid", "composer", "bytes", "name", "albumid", "unitprice" ], "keys": ["trackid"] }, "public.mediatype": { "columns": ["mediatypeid", "name"], "keys": ["mediatypeid"] }, "public.customer": { "columns": [ "country", "firstname", "address", "city", "lastname", "phone", "postalcode", "customerid", "company", "state", "fax", "email", "supportrepid" ], "keys": ["customerid"] }, "public.genre": { "columns": ["genreid", "name"], "keys": ["genreid"] }, "public.invoiceline": { "columns": [ "quantity", "trackid", "invoicelineid", "invoiceid", "unitprice" ], "keys": ["invoicelineid"] }, "public.playlist": { "columns": ["playlistid", "name"], "keys": ["playlistid"] }, "public.employee": { "columns": [ "country", "firstname", "birthdate", "address", "city", "reportsto", "title", "employeeid", "hiredate", "lastname", "phone", "postalcode", "state", "fax", "email" ], "keys": ["employeeid"] }, "public.album": { "columns": ["albumid", "artistid", "title"], "keys": ["albumid"] }, "public.artist": { "columns": ["name", "artistid"], "keys": ["artistid"] }, "public.playlisttrack": { "columns": ["playlistid", "trackid"], "keys": ["playlistid", "trackid"] } } } }, "targets": { "target": { "type": "redis", "host": "host.docker.internal", "port": 12002, "password": "test" } }, "processors": { "target_data_type": "hash" }, "jobs": [ { "name": "chinook_customer", "source": { "schema": "public", "table": "Customer" }, "output": [ { "uses": "redis.write", "with": { "connection": "target", "key": { "expression": "concat(['CustomerId:', CustomerId])", "language": "jmespath" }, "expire": 100 } } ] } ] } ], "title": "Body" } } } }, "responses": { "200": { "description": "Pipeline created or updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActionIdResponse" }, "examples": { "dry_run=false": { "summary": "dry_run=false", "value": { "action_id": "1234567890" } }, "dry_run=true": { "summary": "dry_run=true", "value": {} } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "422": { "description": "Configuration validation failed", "content": { "application/json": { "examples": { "Single validation error": { "summary": "Single validation error", "value": { "detail": "Validation failed", "errors": [ { "code": "job_validation_error", "message": "Job 'users' table 'dbz.users' was not found in the list of captured source tables.", "details": { "job": "users", "captured_tables": ["customers", "invoices"] } } ] } }, "Multiple validation errors": { "summary": "Multiple validation errors", "value": { "detail": "Validation failed", "errors": [ { "code": "job_validation_error", "message": "Job name 'user_sync' is not unique", "details": { "job": "user_sync" } }, { "code": "validation_error", "message": "Source database 'test1' is not used in any source tables.", "details": {} } ] } } }, "schema": { "$ref": "#/components/schemas/ExtendedErrorResponse" } } } } } }, "patch": { "tags": ["secure", "deploy"], "summary": "Patch Pipelines", "description": "Updates the current pipeline partially by merging with the provided configuration using JSON Merge Patch semantics.\nBefore updating, validates the merged configuration for schema compliance and integrity.", "operationId": "patch_pipelines_api_v1_pipelines_patch", "security": [ { "JWTBearer": [] } ], "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" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "examples": [ { "sources": { "psql": { "type": "cdc", "logging": { "level": "debug" }, "connection": { "type": "postgresql", "host": "host.docker.internal", "port": 5432, "database": "chinook", "user": "postgres", "password": "postgres" }, "tables": { "public.invoice": { "columns": [ "billingaddress", "billingcity", "billingcountry", "billingpostalcode", "total", "customerid", "billingstate", "invoiceid", "invoicedate" ], "keys": ["invoiceid"] }, "public.track": { "columns": [ "genreid", "milliseconds", "mediatypeid", "trackid", "composer", "bytes", "name", "albumid", "unitprice" ], "keys": ["trackid"] }, "public.mediatype": { "columns": ["mediatypeid", "name"], "keys": ["mediatypeid"] }, "public.customer": { "columns": [ "country", "firstname", "address", "city", "lastname", "phone", "postalcode", "customerid", "company", "state", "fax", "email", "supportrepid" ], "keys": ["customerid"] }, "public.genre": { "columns": ["genreid", "name"], "keys": ["genreid"] }, "public.invoiceline": { "columns": [ "quantity", "trackid", "invoicelineid", "invoiceid", "unitprice" ], "keys": ["invoicelineid"] }, "public.playlist": { "columns": ["playlistid", "name"], "keys": ["playlistid"] }, "public.employee": { "columns": [ "country", "firstname", "birthdate", "address", "city", "reportsto", "title", "employeeid", "hiredate", "lastname", "phone", "postalcode", "state", "fax", "email" ], "keys": ["employeeid"] }, "public.album": { "columns": ["albumid", "artistid", "title"], "keys": ["albumid"] }, "public.artist": { "columns": ["name", "artistid"], "keys": ["artistid"] }, "public.playlisttrack": { "columns": ["playlistid", "trackid"], "keys": ["playlistid", "trackid"] } } } }, "targets": { "target": { "type": "redis", "host": "host.docker.internal", "port": 12002, "password": "test" } }, "processors": { "target_data_type": "hash" }, "jobs": [ { "name": "chinook_customer", "source": { "schema": "public", "table": "Customer" }, "output": [ { "uses": "redis.write", "with": { "connection": "target", "key": { "expression": "concat(['CustomerId:', CustomerId])", "language": "jmespath" }, "expire": 100 } } ] } ] }, { "targets": { "target": { "type": "redis", "host": "host.docker.internal", "port": 12002, "password": "test" } }, "processors": { "target_data_type": "hash" } } ], "title": "Body" } } } }, "responses": { "200": { "description": "Pipeline updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActionIdResponse" }, "examples": { "dry_run=false": { "summary": "dry_run=false", "value": { "action_id": "1234567890" } }, "dry_run=true": { "summary": "dry_run=true", "value": {} } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "422": { "description": "Configuration validation failed", "content": { "application/json": { "examples": { "Single validation error": { "summary": "Single validation error", "value": { "detail": "Validation failed", "errors": [ { "code": "job_validation_error", "message": "Job 'users' table 'dbz.users' was not found in the list of captured source tables.", "details": { "job": "users", "captured_tables": ["customers", "invoices"] } } ] } }, "Multiple validation errors": { "summary": "Multiple validation errors", "value": { "detail": "Validation failed", "errors": [ { "code": "job_validation_error", "message": "Job name 'user_sync' is not unique", "details": { "job": "user_sync" } }, { "code": "validation_error", "message": "Source database 'test1' is not used in any source tables.", "details": {} } ] } } }, "schema": { "$ref": "#/components/schemas/ExtendedErrorResponse" } } } } } } }, "/api/v1/pipelines/undeploy": { "post": { "tags": ["secure", "deploy"], "summary": "Undeploy Pipelines", "description": "Undeploys a pipeline.", "operationId": "undeploy_pipelines_api_v1_pipelines_undeploy_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Undeploy Pipelines Api V1 Pipelines Undeploy Post" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/jobs/functions": { "get": { "tags": ["secure"], "summary": "Pipelines Jobs Functions", "description": "Retrieves a list of all supported JMESPath functions (builtin and custom) that can be used in JMESPath.", "operationId": "pipelines_jobs_functions_api_v1_pipelines_jobs_functions_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelinesFunctionsResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/config/templates/ingest/{db_type}": { "get": { "tags": ["secure"], "summary": "Pipelines Config Templates", "description": "Returns the YAML template describing the config for the specified db type.", "operationId": "pipelines_config_templates_api_v1_pipelines_config_templates_ingest__db_type__get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "db_type", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/DbType" } }, { "name": "db_flavor", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/DbFlavor" }, { "type": "null" } ], "description": "Optional database flavor", "title": "Db Flavor" }, "description": "Optional database flavor" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/TemplateResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } ], "title": "Response Pipelines Config Templates Api V1 Pipelines Config Templates Ingest Db Type Get", "$ref": "#/components/schemas/TemplateResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } }, "description": "Unprocessable Entity" }, "501": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } }, "description": "Not Implemented" } } } }, "/api/v1/pipelines/jobs/templates/ingest": { "get": { "tags": ["secure"], "summary": "Pipelines Jobs Templates", "description": "Returns the YAML templates describing how to create a job", "operationId": "pipelines_jobs_templates_api_v1_pipelines_jobs_templates_ingest_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponse", "anyOf": [ { "$ref": "#/components/schemas/TemplateResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } ], "title": "Response Pipelines Jobs Templates Api V1 Pipelines Jobs Templates Ingest Get" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "501": { "description": "Not Implemented", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/jobs/dry-run": { "post": { "tags": ["secure"], "summary": "Job Dry Run", "description": "Executes a job using input data in a dry-run mode.", "operationId": "job_dry_run_api_v1_pipelines_jobs_dry_run_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobDryRunBody" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/JobDryRunSuccessResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Job Dry Run Api V1 Pipelines Jobs Dry Run Post" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "422": { "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/strategies": { "get": { "tags": ["secure"], "summary": "Pipelines Strategies", "description": "Retrieves available strategies.", "operationId": "pipelines_strategies_api_v1_pipelines_strategies_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelinesStrategiesResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/config/schemas": { "get": { "tags": ["secure"], "summary": "Pipelines Config Schemas", "description": "Retrieves config schema.", "operationId": "pipelines_config_schemas_api_v1_pipelines_config_schemas_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Pipelines Config Schemas Api V1 Pipelines Config Schemas Get" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/jobs/schemas": { "get": { "tags": ["secure"], "summary": "Pipelines Jobs Schemas", "description": "Retrieves job schemas.", "operationId": "pipelines_jobs_schemas_api_v1_pipelines_jobs_schemas_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Pipelines Jobs Schemas Api V1 Pipelines Jobs Schemas Get" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/processors": { "put": { "tags": ["secure", "processors"], "summary": "Update Processors", "description": "Updates multiple processor properties in RDI settings.\nThe request body should be a dictionary with property names as keys and new values as values.", "operationId": "update_processors_api_v1_pipelines_processors_put", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Body" }, "examples": { "multi_update": { "summary": "Update multiple processor properties", "description": "Example of updating read_batch_size, write_batch_size, and target_data_type.", "value": { "read_batch_size": 1000, "write_batch_size": 500, "target_data_type": "hash" } } } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Update Processors Api V1 Pipelines Processors Put" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/pipelines/processors/{prop}": { "put": { "tags": ["secure", "processors"], "summary": "Upsert Processors Property", "description": "Upserts a single processor property by property name.\nThe request body should contain a single 'value' field with the new value for the property.\nThe property name is specified in the URL path.", "operationId": "upsert_processors_property_api_v1_pipelines_processors__prop__put", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "prop", "in": "path", "required": true, "schema": { "$ref": "#/components/schemas/ProcessorPropertyName" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProcessorProperty" }, "examples": { "read_batch_size": { "summary": "Update read_batch_size", "description": "Example of updating the read_batch_size property.", "value": { "value": 1000 } }, "target_data_type": { "summary": "Update target_data_type", "description": "Example of updating the target_data_type property.", "value": { "value": "hash" } }, "write_batch_size": { "summary": "Update write_batch_size", "description": "Example of updating the write_batch_size property.", "value": { "value": 500 } } } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ActionIdResponse" }, { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__Error" } ], "title": "Response Upsert Processors Property Api V1 Pipelines Processors Prop Put" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/secrets/{secret_name}": { "put": { "tags": ["secure", "secrets"], "summary": "Set Multi Key Secret", "description": "Stores multiple key-value pairs under a single secret name in the key store.\nNOTE: {secret_name} is legacy and is not used - calculated automatically\n\nArgs:\n secret_name (str): The secret name (legacy, not used - kept for backward compatibility).\n secret_keys (SecretKeyModel): The secret key/value pairs to set.\n\nReturns:\n OperationResponse: The operation response.", "operationId": "set_multi_key_secret_api_v1_secrets__secret_name__put", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "secret_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Secret Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretKeyModel" } } } }, "responses": { "200": { "description": "Secrets were set successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperationResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } } } }, "/api/v1/secrets": { "put": { "tags": ["secure", "secrets"], "summary": "Set Secrets", "description": "Sets multiple secret values in the key store for multiple secret names.\n\nArgs:\n secrets (SecretsModel): Collection of secrets to store.\n\nReturns:\n OperationResponse: The operation response.", "operationId": "set_secrets_api_v1_secrets_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretsModel" } } }, "required": true }, "responses": { "200": { "description": "Secrets were set successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperationResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/monitoring/statistics": { "get": { "tags": ["secure"], "summary": "Statistics", "description": "Retrieves RDI statistics.", "operationId": "statistics_api_v1_monitoring_statistics_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatisticsResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/status": { "get": { "tags": ["secure"], "summary": "Get Status", "description": "Retrieves RDI status.", "operationId": "get_status_api_v1_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatusResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v1/trace/start": { "post": { "tags": ["secure"], "summary": "Start Trace", "description": "Starts a trace session for troubleshooting data transformation.", "operationId": "start_trace_api_v1_trace_start_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TraceRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActionIdResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__response__ErrorResponse" } } } } }, "security": [ { "JWTBearer": [] } ] } }, "/api/v2/pipelines": { "get": { "tags": ["v2", "pipelines"], "summary": "Get Pipelines", "description": "Gets all pipelines.", "operationId": "get_pipelines_api_v2_pipelines_get", "security": [ { "JWTBearer": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PipelineResponse" }, "title": "Response Get Pipelines Api V2 Pipelines Get" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" } } }, "post": { "tags": ["v2", "pipelines"], "summary": "Create Pipeline", "description": "Creates a new pipeline.", "operationId": "create_pipeline_api_v2_pipelines_post", "security": [ { "JWTBearer": [] } ], "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 source and target databases via collector API", "default": true, "title": "Validate Tables" }, "description": "Validate against source and target databases 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/PipelineCreateRequest", "description": "Pipeline details" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Conflict" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unprocessable Entity" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v2/pipelines/{name}": { "get": { "tags": ["v2", "pipelines"], "summary": "Get Pipeline", "description": "Gets a pipeline by name.", "operationId": "get_pipeline_api_v2_pipelines__name__get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } }, "put": { "tags": ["v2", "pipelines"], "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": "update_pipeline_api_v2_pipelines__name__put", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" }, { "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 source and target databases via collector API", "default": true, "title": "Validate Tables" }, "description": "Validate against source and target databases 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/PipelineUpdateRequest", "description": "Pipeline details" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unprocessable Entity" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Service Unavailable" } } }, "patch": { "tags": ["v2", "pipelines"], "summary": "Patch Pipeline", "description": "Updates a pipeline partially (only updates specified fields), with retries on 409 conflicts received from the K8s API server.", "operationId": "patch_pipeline_api_v2_pipelines__name__patch", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" }, { "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 source and target databases via collector API", "default": true, "title": "Validate Tables" }, "description": "Validate against source and target databases 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/PipelinePatchRequest", "description": "Partial pipeline details" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unprocessable Entity" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Service Unavailable" } } }, "delete": { "tags": ["v2", "pipelines"], "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": "delete_pipeline_api_v2_pipelines__name__delete", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "204": { "description": "Successful Response" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/status": { "get": { "tags": ["v2", "pipelines"], "summary": "Get Pipeline Status", "description": "Gets the status of a pipeline by name.", "operationId": "get_pipeline_status_api_v2_pipelines__name__status_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineStatusResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/start": { "post": { "tags": ["v2", "pipelines"], "summary": "Start Pipeline", "description": "Starts a pipeline, retrying on 409 conflicts received from the K8s API server.", "operationId": "start_pipeline_api_v2_pipelines__name__start_post", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/stop": { "post": { "tags": ["v2", "pipelines"], "summary": "Stop Pipeline", "description": "Stops a pipeline, retrying on 409 conflicts received from the K8s API server.", "operationId": "stop_pipeline_api_v2_pipelines__name__stop_post", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/reset": { "post": { "tags": ["v2", "pipelines"], "summary": "Reset Pipeline", "description": "Resets a pipeline, retrying on 409 conflicts received from the K8s API server.", "operationId": "reset_pipeline_api_v2_pipelines__name__reset_post", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/metric-collections": { "get": { "tags": ["v2", "pipelines", "metric-collections"], "summary": "Get Metric Collections", "description": "Gets all metric collections for a pipeline.", "operationId": "get_metric_collections_api_v2_pipelines__name__metric_collections_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PipelineMetricCollectionResponse" }, "title": "Response Get Metric Collections Api V2 Pipelines Name Metric Collections Get" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/metric-collections/{collection_name}": { "get": { "tags": ["v2", "pipelines", "metric-collections"], "summary": "Get Metric Collection", "description": "Gets a metric collection for a pipeline.", "operationId": "get_metric_collection_api_v2_pipelines__name__metric_collections__collection_name__get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineMetricCollectionResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/dlqs": { "get": { "tags": ["v2", "dlq"], "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": "get_all_dlqs_api_v2_pipelines__name__dlqs_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DlqListResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Internal Server Error" } } } }, "/api/v2/pipelines/{name}/dlqs/{full_table_name}/records": { "get": { "tags": ["v2", "dlq"], "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": "get_dlq_records_api_v2_pipelines__name__dlqs__full_table_name__records_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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')" }, { "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/SortOrder", "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/DlqRecordsResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Bad Request" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Internal Server Error" } } } }, "/api/v2/pipelines/{name}/dlqs/{full_table_name}": { "get": { "tags": ["v2", "dlq"], "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": "get_dlq_by_table_name_api_v2_pipelines__name__dlqs__full_table_name__get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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')" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DlqTableResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "500": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Internal Server Error" } } } }, "/api/v2/pipelines/{name}/secrets": { "get": { "tags": ["v2", "pipelines", "secrets"], "summary": "Get Pipeline Secrets", "description": "Lists all pipeline secrets.", "operationId": "get_pipeline_secrets_api_v2_pipelines__name__secrets_get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PipelineSecretResponse" }, "title": "Response Get Pipeline Secrets Api V2 Pipelines Name Secrets Get" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } }, "post": { "tags": ["v2", "pipelines", "secrets"], "summary": "Create Secret", "description": "Creates a new pipeline secret.", "operationId": "create_secret_api_v2_pipelines__name__secrets_post", "security": [ { "JWTBearer": [] } ], "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Pipeline name", "title": "Name" }, "description": "Pipeline name" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineSecretCreateRequest", "description": "Pipeline secret details" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineSecretResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "409": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Conflict" } } } }, "/api/v2/pipelines/{name}/secrets/{key}": { "get": { "tags": ["v2", "pipelines", "secrets"], "summary": "Get Secret", "description": "Gets a pipeline secret by key.", "operationId": "get_secret_api_v2_pipelines__name__secrets__key__get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineSecretResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } }, "put": { "tags": ["v2", "pipelines", "secrets"], "summary": "Update Secret", "description": "Updates a pipeline secret, or creates it if it does not exist.", "operationId": "update_secret_api_v2_pipelines__name__secrets__key__put", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineSecretUpdateRequest", "description": "Pipeline secret details" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineSecretResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unprocessable Entity" } } }, "delete": { "tags": ["v2", "pipelines", "secrets"], "summary": "Delete Secret", "description": "Deletes a pipeline secret by key.", "operationId": "delete_secret_api_v2_pipelines__name__secrets__key__delete", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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" } ], "responses": { "204": { "description": "Successful Response" }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" } } } }, "/api/v2/pipelines/{name}/source-schemas/{source_name}": { "get": { "tags": ["v2", "pipelines"], "summary": "Get Pipeline Source Schemas", "description": "Lists source schemas/databases, tables, and columns for a pipeline source.", "operationId": "get_pipeline_source_schemas_api_v2_pipelines__name__source_schemas__source_name__get", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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" }, { "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/SourceSchemaDetails", "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/PipelineSourceSchemaResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unprocessable Entity" } } } }, "/api/v2/pipelines/{name}/flush-target/{target_name}": { "post": { "tags": ["v2", "pipelines", "targets"], "summary": "Flush Target", "description": "Flushes the target Redis database.\n\nSends a FLUSHALL command to the target Redis database through the collector API.", "operationId": "flush_target_api_v2_pipelines__name__flush_target__target_name__post", "security": [ { "JWTBearer": [] } ], "parameters": [ { "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" } ], "responses": { "200": { "description": "FLUSHALL completed successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FlushResponse" } } } }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Unauthorized" }, "403": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Forbidden" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Bad Request" }, "404": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Not Found" }, "502": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Bad Gateway" }, "503": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/redis_di_api__models__errors__ErrorResponse" } } }, "description": "Service Unavailable" } } } }, "/api/v2/info": { "get": { "tags": ["v2", "info"], "summary": "Info", "description": "Gets the API version and the operator leader-election mode.", "operationId": "info_api_v2_info_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InfoResponse" } } } } }, "security": [] } } }, "components": { "schemas": { "ActionIdResponse": { "properties": { "action_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action Id", "examples": ["1234567890"] } }, "type": "object", "title": "ActionIdResponse", "description": "Response model containing an action ID." }, "ActionResponse": { "properties": { "action_id": { "type": "string", "title": "Action ID", "examples": ["1715254593439-0"] }, "status": { "$ref": "#/components/schemas/TaskStatus", "title": "Action status", "examples": ["completed", "failed"] }, "output": { "anyOf": [ { "$ref": "#/components/schemas/SourcesOutput" }, { "type": "null" } ], "title": "Action output" }, "error": { "anyOf": [ { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__sources__Error" }, { "type": "null" } ], "title": "Error object", "examples": [ { "message": "Unknown error occurred" } ] } }, "type": "object", "required": ["action_id", "status"], "title": "ActionResponse" }, "Client": { "properties": { "id": { "type": "string", "title": "Id", "examples": ["975820001001"] }, "addr": { "type": "string", "title": "Addr", "examples": ["172.17.0.1:56982"] }, "age_sec": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "$ref": "#/components/schemas/NotApplicable" } ], "title": "Age Sec", "examples": [1111, "N/A"] }, "idle_sec": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "$ref": "#/components/schemas/NotApplicable" } ], "title": "Idle Sec", "examples": [1111, "N/A"] }, "user": { "type": "string", "title": "User", "examples": ["default"] } }, "type": "object", "required": ["id", "addr", "age_sec", "idle_sec", "user"], "title": "Client" }, "ComponentType": { "type": "string", "enum": [ "debezium-collector", "collector-api", "stream-processor", "metrics-exporter", "flink-processor-jobmanager", "flink-processor-taskmanager", "flink-processor", "riotx-collector", "unknown" ], "title": "ComponentType", "description": "Component types for RDI pipeline components." }, "ConnectionStatus": { "properties": { "status": { "$ref": "#/components/schemas/Result", "examples": ["success", "failed"] }, "error": { "anyOf": [ { "$ref": "#/components/schemas/redis_di_api__v1__modules__shared__sources__Error" }, { "type": "null" } ] } }, "type": "object", "required": ["status"], "title": "ConnectionStatus" }, "ConnectionStatusSingleConnection": { "properties": { "connected": { "type": "boolean", "title": "Connected" }, "error": { "type": "string", "title": "Error" }, "invalid_properties": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Invalid properties", "description": "Map of invalid property names to their specific error messages", "examples": [ { "database.hostname": "Unable to connect: Communications link failure" } ] } }, "type": "object", "required": ["connected", "error"], "title": "ConnectionStatusSingleConnection" }, "CredentialsInfo": { "properties": { "username": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Username", "description": "RDI database user", "examples": ["admin"] }, "password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Password", "description": "RDI database password", "examples": ["secret-password"] } }, "type": "object", "title": "CredentialsInfo", "description": "Credentials information" }, "DataStreams": { "properties": { "totals": { "$ref": "#/components/schemas/DataStreamsStatisticsTotal" }, "streams": { "additionalProperties": { "$ref": "#/components/schemas/DataStreamsStatistics" }, "type": "object", "title": "Streams" } }, "type": "object", "required": ["totals", "streams"], "title": "DataStreams" }, "DataStreamsStatistics": { "properties": { "total": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Total", "default": 0, "examples": [0] }, "pending": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Pending", "default": 0, "examples": [0] }, "inserted": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Inserted", "default": 0, "examples": [0] }, "updated": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Updated", "default": 0, "examples": [0] }, "deleted": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Deleted", "default": 0, "examples": [0] }, "filtered": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Filtered", "default": 0, "examples": [0] }, "rejected": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Rejected", "default": 0, "examples": [0] }, "deduplicated": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Deduplicated", "default": 0, "examples": [0] }, "last_arrival": { "type": "string", "title": "Last Arrival" } }, "type": "object", "required": ["last_arrival"], "title": "DataStreamsStatistics" }, "DataStreamsStatisticsTotal": { "properties": { "total": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Total", "default": 0, "examples": [0] }, "pending": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Pending", "default": 0, "examples": [0] }, "inserted": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Inserted", "default": 0, "examples": [0] }, "updated": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Updated", "default": 0, "examples": [0] }, "deleted": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Deleted", "default": 0, "examples": [0] }, "filtered": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Filtered", "default": 0, "examples": [0] }, "rejected": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Rejected", "default": 0, "examples": [0] }, "deduplicated": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Deduplicated", "default": 0, "examples": [0] } }, "type": "object", "title": "DataStreamsStatisticsTotal" }, "DatabaseResponse": { "properties": { "databases": { "items": { "type": "string" }, "type": "array", "title": "Databases", "examples": ["database1", "database2"] } }, "type": "object", "required": ["databases"], "title": "DatabaseResponse", "description": "Database response class." }, "DbFlavor": { "type": "string", "enum": [ "mongodb-atlas", "mongodb-replica-set", "mongodb-sharded-cluster" ], "title": "DbFlavor", "description": "Defines supported database flavors." }, "DbType": { "type": "string", "enum": [ "cassandra", "mariadb", "mongodb", "mysql", "oracle", "postgresql", "snowflake", "sqlserver", "spanner", "redis" ], "title": "DbType", "description": "Defines supported databases." }, "DlqListResponse": { "additionalProperties": { "$ref": "#/components/schemas/DlqTableInfo" }, "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}, ...}" }, "DlqRecordsResponse": { "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." }, "DlqTableInfo": { "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." }, "DlqTableResponse": { "additionalProperties": { "$ref": "#/components/schemas/DlqTableInfo" }, "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}}" }, "Entity": { "properties": { "status": { "$ref": "#/components/schemas/RdiStatus", "examples": ["ready"] }, "connected": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Connected", "examples": [true] }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "examples": ["1.2.3", "1.2.0b17"] }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error", "examples": ["Error message"] } }, "type": "object", "required": ["status"], "title": "Entity" }, "ErrorCode": { "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" }, "ExtendedErrorResponse": { "properties": { "detail": { "type": "string", "title": "Detail", "examples": ["Detailed error message"] }, "errors": { "anyOf": [ { "items": { "$ref": "#/components/schemas/redis_di_api__models__errors__Error" }, "type": "array" }, { "type": "null" } ], "title": "Errors" } }, "type": "object", "required": ["detail"], "title": "ExtendedErrorResponse", "description": "Model representing an API error response with an additional list of errors." }, "FlushResponse": { "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." }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "InfoResponse": { "properties": { "version": { "type": "string", "title": "Version" }, "leader_election_mode": { "anyOf": [ { "$ref": "#/components/schemas/LeaderElectionMode" }, { "type": "null" } ] } }, "type": "object", "required": ["version"], "title": "InfoResponse", "description": "Response model containing information about the API and operator." }, "Job": { "properties": { "source": { "$ref": "#/components/schemas/Source" }, "transform": { "anyOf": [ { "items": { "$ref": "#/components/schemas/Transform" }, "type": "array" }, { "type": "null" } ], "title": "Transform" }, "output": { "items": { "$ref": "#/components/schemas/Output" }, "type": "array", "title": "Output" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "examples": ["Alex"] } }, "type": "object", "required": ["source", "output"], "title": "Job" }, "JobDryRunBody": { "properties": { "job": { "$ref": "#/components/schemas/Job", "title": "Job settings to dry run with." }, "input_data": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Input Data", "examples": [ [ { "COUNTRY": "IL", "FNAME": "John", "LAST_NAME": "Lennon" }, { "COUNTRY": "US", "FNAME": "John", "LAST_NAME": "Doe" } ] ] } }, "type": "object", "required": ["job", "input_data"], "title": "JobDryRunBody" }, "JobDryRunSuccessResponse": { "properties": { "transformation": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Transformation", "examples": [ [ { "COUNTRY": "IL", "FIRST_NAME": "John", "LAST_NAME": "Lennon" } ] ] }, "output": { "items": {}, "type": "array", "title": "Output" } }, "type": "object", "required": ["transformation", "output"], "title": "JobDryRunSuccessResponse" }, "LeaderElectionMode": { "type": "string", "enum": ["disabled", "leader", "follower"], "title": "LeaderElectionMode", "description": "Operator leader-election mode." }, "MetadataResponse": { "properties": { "tables": { "additionalProperties": { "$ref": "#/components/schemas/Table" }, "type": "object", "title": "Tables", "examples": [ { "table1": { "cdc_ready": true, "columns": {} } } ] } }, "type": "object", "required": ["tables"], "title": "MetadataResponse", "description": "Metadata response class." }, "NotApplicable": { "type": "string", "title": "NotApplicable", "default": "N/A" }, "OperationResponse": { "properties": { "status": { "type": "boolean", "title": "Status" } }, "type": "object", "required": ["status"], "title": "OperationResponse", "description": "Represents the response of an operation." }, "Output": { "properties": { "uses": { "type": "string", "title": "Uses", "examples": ["redis.write"] }, "with": { "anyOf": [ { "$ref": "#/components/schemas/WithInput" }, { "$ref": "#/components/schemas/WithFields" }, { "$ref": "#/components/schemas/WithNest" }, { "$ref": "#/components/schemas/WithConnection" } ], "title": "With" } }, "type": "object", "required": ["uses", "with"], "title": "Output" }, "Pipeline": { "properties": { "status": { "$ref": "#/components/schemas/RdiStatus", "examples": ["ready"] }, "state": { "$ref": "#/components/schemas/State", "examples": ["cdc"] }, "last_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Error", "examples": ["Error message"] }, "tasks": { "items": { "$ref": "#/components/schemas/Task" }, "type": "array", "title": "Tasks" } }, "type": "object", "required": ["status", "state", "tasks"], "title": "Pipeline" }, "PipelineComponentResponse": { "properties": { "name": { "type": "string", "title": "Name" }, "type": { "$ref": "#/components/schemas/ComponentType" }, "version": { "type": "string", "title": "Version" }, "status": { "$ref": "#/components/schemas/Status", "default": "unknown" }, "replicas": { "type": "integer", "title": "Replicas", "default": 0 }, "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." }, "PipelineCreateRequest": { "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." }, "PipelineFunction": { "properties": { "summary": { "type": "string", "title": "Summary", "examples": ["Decodes a base64(RFC 4648) encoded string"] }, "arguments": { "items": { "$ref": "#/components/schemas/PipelineFunctionArgument" }, "type": "array", "title": "Arguments" } }, "type": "object", "required": ["summary", "arguments"], "title": "PipelineFunction" }, "PipelineFunctionArgument": { "properties": { "name": { "type": "string", "title": "Name" }, "type": { "type": "string", "enum": [ "number", "string", "boolean", "object", "array", "null", "any" ], "title": "Type", "default": "string", "examples": ["string"] }, "display_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Text" }, "optional": { "type": "boolean", "title": "Optional", "default": false } }, "type": "object", "required": ["name"], "title": "PipelineFunctionArgument" }, "PipelineMetricCollectionResponse": { "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." }, "PipelinePatchRequest": { "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." }, "PipelineResponse": { "properties": { "name": { "type": "string", "title": "Name" }, "active": { "type": "boolean", "title": "Active" }, "config": { "additionalProperties": true, "type": "object", "title": "Config" }, "status": { "$ref": "#/components/schemas/Status", "default": "unknown" }, "status_changed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Status Changed At" }, "errors": { "items": { "$ref": "#/components/schemas/redis_di_api__models__errors__Error" }, "type": "array", "title": "Errors" }, "components": { "items": { "$ref": "#/components/schemas/PipelineComponentResponse" }, "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." }, "PipelineSecretCreateRequest": { "properties": { "key": { "type": "string", "title": "Key" }, "value": { "type": "string", "title": "Value" }, "type": { "type": "string", "enum": ["simple", "file", "binary_file"], "title": "Type", "default": "simple" } }, "additionalProperties": false, "type": "object", "required": ["key", "value"], "title": "PipelineSecretCreateRequest", "description": "Request model for creating a new pipeline secret." }, "PipelineSecretResponse": { "properties": { "key": { "type": "string", "title": "Key" }, "type": { "type": "string", "enum": ["simple", "file", "binary_file"], "title": "Type" } }, "additionalProperties": false, "type": "object", "required": ["key", "type"], "title": "PipelineSecretResponse", "description": "Response model for a pipeline secret." }, "PipelineSecretUpdateRequest": { "properties": { "value": { "type": "string", "title": "Value" }, "type": { "type": "string", "enum": ["simple", "file", "binary_file"], "title": "Type", "default": "simple" } }, "additionalProperties": false, "type": "object", "required": ["value"], "title": "PipelineSecretUpdateRequest", "description": "Request model for updating an existing pipeline secret." }, "PipelineSourceSchemaResponse": { "properties": { "schemas": { "additionalProperties": { "$ref": "#/components/schemas/SourceSchemaResponse" }, "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." }, "PipelineStatusResponse": { "properties": { "status": { "$ref": "#/components/schemas/Status", "default": "unknown" }, "status_changed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Status Changed At" }, "errors": { "items": { "$ref": "#/components/schemas/redis_di_api__models__errors__Error" }, "type": "array", "title": "Errors" }, "components": { "items": { "$ref": "#/components/schemas/PipelineComponentResponse" }, "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." }, "PipelineUpdateRequest": { "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." }, "PipelinesFunctionsResponse": { "additionalProperties": { "$ref": "#/components/schemas/PipelineFunction" }, "type": "object", "title": "PipelinesFunctionsResponse" }, "PipelinesStrategiesResponse": { "properties": { "strategies": { "items": { "$ref": "#/components/schemas/StrategyModel" }, "type": "array", "title": "Strategies" } }, "type": "object", "required": ["strategies"], "title": "PipelinesStrategiesResponse" }, "ProcessingPerformance": { "properties": { "total_batches": { "type": "integer", "minimum": 0.0, "title": "Total Batches", "examples": [100] }, "batch_size_avg": { "type": "number", "minimum": 0.0, "title": "Batch Size Avg", "examples": [50.2] }, "read_time_avg": { "type": "number", "minimum": 0.0, "title": "Read Time Avg", "examples": [10.5] }, "transform_time_avg": { "type": "number", "minimum": 0.0, "title": "Transform Time Avg", "examples": [2.3] }, "write_time_avg": { "type": "number", "minimum": 0.0, "title": "Write Time Avg", "examples": [4.4] }, "process_time_avg": { "type": "number", "minimum": 0.0, "title": "Process Time Avg", "examples": [20.3] }, "ack_time_avg": { "type": "number", "minimum": 0.0, "title": "Ack Time Avg", "examples": [5.2] }, "total_time_avg": { "type": "number", "minimum": 0.0, "title": "Total Time Avg", "examples": [35.5] }, "rec_per_sec_avg": { "type": "number", "minimum": 0.0, "title": "Rec Per Sec Avg", "examples": [100.1] } }, "type": "object", "required": [ "total_batches", "batch_size_avg", "read_time_avg", "transform_time_avg", "write_time_avg", "process_time_avg", "ack_time_avg", "total_time_avg", "rec_per_sec_avg" ], "title": "ProcessingPerformance" }, "ProcessorProperty": { "properties": { "value": { "title": "Value", "examples": ["hash"] } }, "type": "object", "required": ["value"], "title": "ProcessorProperty" }, "ProcessorPropertyName": { "type": "string", "enum": [ "on_failed_retry_interval", "read_batch_size", "dedup", "dedup_max_size", "dedup_strategy", "duration", "write_batch_size", "error_handling", "dlq_max_messages", "target_data_type", "json_update_strategy", "initial_sync_processes", "idle_sleep_time_ms", "idle_streams_check_interval_ms", "busy_streams_check_interval_ms", "wait_enabled", "wait_timeout", "retry_on_replica_failure" ], "title": "ProcessorPropertyName" }, "ProcessorState": { "type": "string", "enum": ["unknown", "running", "idling", "stopped"], "title": "ProcessorState", "description": "Enum for the state of the stream processor." }, "RdiPipelineStatus": { "properties": { "rdi_version": { "type": "string", "title": "Rdi Version", "examples": ["N/A"] }, "address": { "type": "string", "title": "Address", "examples": ["172.17.0.2:12006"] }, "run_status": { "anyOf": [ { "$ref": "#/components/schemas/ProcessorState" }, { "$ref": "#/components/schemas/RdiStatus" } ], "title": "Run Status", "examples": ["stopped"] }, "sync_mode": { "type": "string", "title": "Sync Mode", "examples": ["N/A"] } }, "type": "object", "required": ["rdi_version", "address", "run_status", "sync_mode"], "title": "RdiPipelineStatus" }, "RdiStatus": { "type": "string", "enum": ["stopped", "ready", "not-ready"], "title": "RdiStatus", "description": "RDI component status." }, "Result": { "type": "string", "enum": ["success", "failed"], "title": "Result", "description": "Represents the result of an operation." }, "SchemaResponse": { "properties": { "schemas": { "items": { "type": "string" }, "type": "array", "title": "Schemas", "examples": ["schema1", "schema2"] } }, "type": "object", "required": ["schemas"], "title": "SchemaResponse", "description": "Schema response class." }, "SecretKeyModel": { "additionalProperties": { "type": "string" }, "type": "object", "title": "SecretKeyModel", "examples": [ { "TARGET_DB_PASSWORD": "password", "TARGET_DB_USERNAME": "admin" } ] }, "SecretName": { "type": "string", "enum": [ "source-db", "target-db", "rdi-sys-config", "rdi-db-ssl", "source-db-ssl", "target-db-ssl" ], "title": "SecretName", "description": "Defines supported secret names." }, "SecretsModel": { "additionalProperties": { "$ref": "#/components/schemas/SecretKeyModel" }, "propertyNames": { "$ref": "#/components/schemas/SecretName" }, "type": "object", "title": "SecretsModel", "examples": [ { "target-db": { "TARGET_DB_PASSWORD": "password", "TARGET_DB_USERNAME": "admin" } } ] }, "SnapshotStatus": { "type": "string", "enum": ["running", "failed", "paused", "completed", "N/A"], "title": "SnapshotStatus" }, "SortOrder": { "type": "string", "enum": ["asc", "desc"], "title": "SortOrder", "description": "Sort order for DLQ records." }, "Source": { "properties": { "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Schema", "examples": ["public"] }, "table": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Table", "examples": ["employee"] }, "row_format": { "anyOf": [ { "type": "string", "enum": ["full", "partial"] }, { "type": "null" } ], "title": "Row Format", "examples": ["full"] } }, "additionalProperties": true, "type": "object", "title": "Source" }, "SourceColumnResponse": { "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." }, "SourceSchemaDetails": { "type": "string", "enum": ["schemas", "tables", "columns"], "title": "SourceSchemaDetails", "description": "Detail level for source metadata responses." }, "SourceSchemaResponse": { "properties": { "tables": { "anyOf": [ { "additionalProperties": { "$ref": "#/components/schemas/SourceTableResponse" }, "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." }, "SourceTableResponse": { "properties": { "cdc_ready": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Cdc Ready", "examples": [true] }, "columns": { "anyOf": [ { "additionalProperties": { "$ref": "#/components/schemas/SourceColumnResponse" }, "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." }, "SourcesOutput": { "properties": { "sources": { "additionalProperties": { "$ref": "#/components/schemas/ConnectionStatus" }, "type": "object", "title": "Sources" } }, "type": "object", "required": ["sources"], "title": "SourcesOutput" }, "State": { "type": "string", "enum": ["cdc", "initial-sync", "not-running"], "title": "State", "description": "Represents the state of a pipeline." }, "StatisticsConnection": { "properties": { "key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key" }, "cert": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cert" }, "cacert": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cacert" }, "key_password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Password" }, "type": { "$ref": "#/components/schemas/DbType", "default": "redis", "examples": ["redis"] }, "host": { "type": "string", "title": "Host", "default": "localhost", "examples": ["localhost"] }, "port": { "type": "integer", "exclusiveMinimum": 0.0, "title": "Port", "description": "Positive int or \"${ENV_VAR_NAME}\" placeholder", "default": 5432, "examples": [5432, "${DB_PORT}"] }, "database": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Database", "examples": ["rdi"] }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User", "examples": ["rdi"] }, "password": { "type": "string", "title": "Password", "examples": ["********"] }, "status": { "type": "string", "title": "Status" } }, "additionalProperties": false, "type": "object", "required": ["password", "status"], "title": "StatisticsConnection" }, "StatisticsResponse": { "properties": { "connections": { "additionalProperties": { "$ref": "#/components/schemas/StatisticsConnection" }, "type": "object", "title": "Connections" }, "data_streams": { "$ref": "#/components/schemas/DataStreams" }, "processing_performance": { "$ref": "#/components/schemas/ProcessingPerformance" }, "rdi_pipeline_status": { "$ref": "#/components/schemas/RdiPipelineStatus" }, "clients": { "additionalProperties": { "$ref": "#/components/schemas/Client" }, "type": "object", "title": "Clients" }, "offsets": { "additionalProperties": true, "type": "object", "title": "Offsets" }, "snapshot_status": { "$ref": "#/components/schemas/SnapshotStatus", "examples": ["running"] } }, "type": "object", "required": [ "connections", "data_streams", "processing_performance", "rdi_pipeline_status", "clients", "offsets", "snapshot_status" ], "title": "StatisticsResponse" }, "Status": { "type": "string", "enum": [ "started", "stopped", "error", "creating", "updating", "deleting", "starting", "stopping", "resetting", "pending", "unknown" ], "title": "Status", "description": "Pipeline status." }, "StatusResponse": { "properties": { "components": { "additionalProperties": { "$ref": "#/components/schemas/Entity" }, "type": "object", "title": "Components" }, "pipelines": { "additionalProperties": { "$ref": "#/components/schemas/Pipeline" }, "type": "object", "title": "Pipelines" } }, "type": "object", "required": ["components", "pipelines"], "title": "StatusResponse" }, "Strategy": { "type": "string", "enum": ["ingest"], "title": "Strategy", "description": "Defines available strategies." }, "StrategyModel": { "properties": { "strategy": { "$ref": "#/components/schemas/Strategy", "examples": ["ingest"] }, "databases": { "items": { "type": "string" }, "type": "array", "title": "Databases", "examples": ["mongodb", "mysql", "oracle", "sqlserver"] } }, "type": "object", "required": ["strategy", "databases"], "title": "StrategyModel" }, "Table": { "properties": { "cdc_ready": { "type": "boolean", "title": "Cdc Ready", "examples": [true] }, "columns": { "additionalProperties": true, "type": "object", "title": "Columns" } }, "type": "object", "required": ["cdc_ready", "columns"], "title": "Table" }, "TableResponse": { "properties": { "tables": { "items": { "type": "string" }, "type": "array", "title": "Tables", "examples": ["table1", "table2"] } }, "type": "object", "required": ["tables"], "title": "TableResponse", "description": "Table response class." }, "TargetsOutput": { "properties": { "targets": { "additionalProperties": { "$ref": "#/components/schemas/ConnectionStatus" }, "type": "object", "title": "Targets" } }, "type": "object", "required": ["targets"], "title": "TargetsOutput" }, "Task": { "properties": { "name": { "type": "string", "title": "Name" }, "status": { "$ref": "#/components/schemas/TaskStatus" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error", "examples": ["Error message"] }, "created_at": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$", "title": "Created At", "examples": ["2024-03-03T10:23:12"] } }, "type": "object", "required": ["name", "status", "created_at"], "title": "Task" }, "TaskStatus": { "type": "string", "enum": ["pending", "processing", "failed", "completed"], "title": "TaskStatus", "description": "Defines task statuses for Operator" }, "TemplateResponse": { "properties": { "template": { "type": "string", "title": "Template", "examples": ["template1"] } }, "type": "object", "required": ["template"], "title": "TemplateResponse" }, "TokenInfo": { "properties": { "access_token": { "type": "string", "title": "Access Token" }, "token_type": { "type": "string", "title": "Token Type" } }, "type": "object", "required": ["access_token", "token_type"], "title": "TokenInfo", "description": "Token information" }, "TraceRequest": { "properties": { "max_change_records": { "type": "integer", "title": "The maximum number of traced change records.", "default": 10, "examples": [10] }, "rejected_only": { "type": "boolean", "title": "Indicating whether to trace only rejected change records.", "default": false, "examples": [false] }, "timeout": { "type": "integer", "title": "The maximum duration of the trace in seconds.", "default": 20, "examples": [20] } }, "type": "object", "title": "TraceRequest", "description": "Request model for the trace endpoint." }, "Transform": { "properties": { "uses": { "type": "string", "title": "Uses", "examples": ["add_field"] }, "with": { "anyOf": [ { "$ref": "#/components/schemas/WithInput" }, { "$ref": "#/components/schemas/WithFields" }, { "$ref": "#/components/schemas/WithNest" }, { "$ref": "#/components/schemas/WithConnection" } ], "title": "With" } }, "type": "object", "required": ["uses", "with"], "title": "Transform" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError" }, "WithConnection": { "properties": { "connection": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connection", "examples": ["target"] }, "data_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Data Type", "examples": ["hash"] }, "args": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Args", "examples": [ { "member": "value" }, ["expr1"] ] }, "key": { "anyOf": [ { "$ref": "#/components/schemas/WithInput" }, { "type": "null" } ] }, "cmd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cmd", "description": "Redis command to execute, e.g. HGETALL.", "examples": ["HGETALL"] }, "language": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Language", "examples": ["jmespath", "sql"] }, "field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Field", "description": "Target field name for the lookup result." } }, "type": "object", "title": "WithConnection" }, "WithFieldRef": { "properties": { "field": { "type": "string", "title": "Field", "description": "Field name to reference or remove.", "examples": ["branch"] } }, "type": "object", "required": ["field"], "title": "WithFieldRef" }, "WithFields": { "properties": { "fields": { "items": { "anyOf": [ { "$ref": "#/components/schemas/WithInput" }, { "$ref": "#/components/schemas/WithFieldRef" } ] }, "type": "array", "title": "Fields" } }, "type": "object", "required": ["fields"], "title": "WithFields" }, "WithInput": { "properties": { "expression": { "type": "string", "title": "Expression", "examples": [ "FNAME || ' ' || LAST_NAME", "concat([fname, ' ' , last_name])" ] }, "field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Field", "description": "This field it available only for a subset of with expressions e.g. `add_field`, `remove_field`.", "examples": ["FullName"] }, "language": { "type": "string", "title": "Language", "examples": ["sql", "jmespath"] } }, "type": "object", "required": ["expression", "language"], "title": "WithInput" }, "WithNest": { "properties": { "nest": { "additionalProperties": true, "type": "object", "title": "Nest", "description": "Nesting configuration for hierarchical data structures." }, "on_update": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "On Update", "examples": ["merge", "replace"] }, "data_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Data Type", "examples": ["json", "hash"] }, "connection": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connection", "examples": ["target"] } }, "type": "object", "required": ["nest"], "title": "WithNest" }, "redis_di_api__models__errors__Error": { "properties": { "code": { "$ref": "#/components/schemas/ErrorCode" }, "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" }, "redis_di_api__models__errors__ErrorResponse": { "properties": { "detail": { "type": "string", "title": "Detail", "examples": ["Detailed error message"] }, "errors": { "anyOf": [ { "items": { "$ref": "#/components/schemas/redis_di_api__models__errors__Error" }, "type": "array" }, { "type": "null" } ], "title": "Errors" } }, "type": "object", "required": ["detail"], "title": "ErrorResponse", "description": "Generic error response model" }, "redis_di_api__v1__modules__shared__response__Error": { "properties": { "status": { "type": "string", "const": "error", "title": "The status of the run.", "default": "error", "examples": ["error"] }, "error": { "type": "string", "title": "The error message.", "examples": ["Job is malformed"] } }, "type": "object", "required": ["error"], "title": "Error", "description": "Model representing an error status." }, "redis_di_api__v1__modules__shared__response__ErrorResponse": { "properties": { "detail": { "type": "string", "title": "Detail", "examples": ["Detailed error message"] } }, "type": "object", "required": ["detail"], "title": "ErrorResponse", "description": "Model representing an API error response." }, "redis_di_api__v1__modules__shared__sources__Error": { "properties": { "message": { "type": "string", "title": "Error message", "examples": [ "Failed to establish connection to the PostgreSQL database. Invalid credentials" ] } }, "type": "object", "required": ["message"], "title": "Error" } }, "securitySchemes": { "JWTBearer": { "type": "http", "scheme": "bearer" }, "HTTPBearer": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } } }, "servers": [ { "url": "/", "description": "Default server" } ] }