From c6ddb696b4212f04e0047e0b6b8bf44f60b4dff2 Mon Sep 17 00:00:00 2001 From: vbotbuildovich <62446873+vbotbuildovich@users.noreply.github.com> Date: Thu, 11 Dec 2025 23:47:59 +0000 Subject: [PATCH 1/2] auto-docs: Update Cloud API spec --- cloud-controlplane/cloud-controlplane.yaml | 541 ++++++++++++++++++++- cloud-dataplane/cloud-dataplane.yaml | 332 +++++++++++-- 2 files changed, 819 insertions(+), 54 deletions(-) diff --git a/cloud-controlplane/cloud-controlplane.yaml b/cloud-controlplane/cloud-controlplane.yaml index a893a2d..705aa3e 100644 --- a/cloud-controlplane/cloud-controlplane.yaml +++ b/cloud-controlplane/cloud-controlplane.yaml @@ -753,6 +753,10 @@ components: items: type: string type: array + redpanda_node_count: + description: redpanda_node_count defines the starting node count for the cluster. + format: int32 + type: integer redpanda_version: description: Cluster's Redpanda version. Only `major.minor` semver is supported, e.g. `24.1`. nullable: true @@ -1140,6 +1144,12 @@ components: service_account: $ref: '#/components/schemas/ServiceAccount' type: object + CreateShadowLinkOperation: + description: CreateShadowLinkOperation wraps the Operation for creating a shadow link. + properties: + operation: + $ref: '#/components/schemas/v1.Operation' + type: object CreateShadowLinkResponse: properties: shadow_link: @@ -1395,6 +1405,12 @@ components: type: object DeleteServiceAccountResponse: type: object + DeleteShadowLinkOperation: + description: DeleteShadowLinkOperation wraps the Operation for deleting a shadow link. + properties: + operation: + $ref: '#/components/schemas/v1.Operation' + type: object DeleteShadowLinkResponse: title: Response to deleting a shadow link type: object @@ -2139,6 +2155,15 @@ components: maxItems: 100 type: array type: object + ListShadowLinksRequest.Filter: + properties: + resource_group_id: + description: Filter by resource group ID. + type: string + shadow_redpanda_id: + description: Filter by shadow Redpanda cluster ID. + type: string + type: object ListShadowTopicsResponse: properties: shadow_topics: @@ -3131,6 +3156,11 @@ components: type: string state: $ref: '#/components/schemas/ServerlessCluster.State' + tags: + additionalProperties: + type: string + title: User-defined tags for the Serverless cluster + type: object updated_at: description: Timestamp when the Serverless cluster was updated. format: date-time @@ -3225,6 +3255,11 @@ components: serverless_region: description: Name of the region where the Serverless cluster will be provisioned. type: string + tags: + additionalProperties: + type: string + title: User-defined tags for the Serverless cluster + type: object required: - name - resource_group_id @@ -3237,6 +3272,11 @@ components: id: description: ID of the vcluster. type: string + tags: + additionalProperties: + type: string + title: User-defined tags for the Serverless cluster (full replacement) + type: object required: - id title: ServerlessClusterUpdate @@ -3334,6 +3374,16 @@ components: example: ci_bot type: string type: object + ShadowLink.State: + description: State represents the lifecycle state of a shadow link. + enum: + - STATE_CREATING + - STATE_CREATION_FAILED + - STATE_DELETING + - STATE_DELETION_FAILED + - STATE_ACTIVE + - STATE_PAUSED + type: string ShadowLinkConfigurations: properties: client_options: @@ -3348,6 +3398,53 @@ components: $ref: '#/components/schemas/TopicMetadataSyncOptions' title: ShadowLink options type: object + ShadowLinkCreate: + description: ShadowLinkCreate contains fields for creating a shadow link. + properties: + client_options: + $ref: '#/components/schemas/v1.ShadowLinkClientOptions' + consumer_offset_sync_options: + $ref: '#/components/schemas/ConsumerOffsetSyncOptions' + name: + title: |- + Human-readable name for the shadow link. Must be unique. + Must follow Kubernetes DNS-1123 subdomain naming convention: + - lowercase alphanumeric characters, hyphens allowed + - must start and end with alphanumeric character + - maximum 63 characters + type: string + schema_registry_sync_options: + $ref: '#/components/schemas/SchemaRegistrySyncOptions' + security_sync_options: + $ref: '#/components/schemas/SecuritySettingsSyncOptions' + shadow_redpanda_id: + description: Shadow Redpanda cluster ID where the shadow link will be created. + type: string + source_redpanda_id: + description: Source Redpanda cluster ID. This field is optional. If provided, fetches bootstrap server information. + type: string + topic_metadata_sync_options: + $ref: '#/components/schemas/TopicMetadataSyncOptions' + type: object + ShadowLinkListItem: + description: |- + ShadowLinkListItem represents a lightweight shadow link item for list responses. + This message contains only a subset of shadow link fields for listing operations. + To retrieve the full shadow link details use the GetShadowLink method instead. + properties: + id: + description: Shadow link ID. + readOnly: true + type: string + name: + description: Human-readable name for the shadow link. + type: string + shadow_redpanda_id: + description: Shadow Redpanda cluster ID where the shadow link is created. + type: string + state: + $ref: '#/components/schemas/ShadowLink.State' + type: object ShadowLinkState: description: |- - SHADOW_LINK_STATE_ACTIVE: Shadow link is active @@ -3398,6 +3495,23 @@ components: $ref: '#/components/schemas/TaskState' title: Status of a task type: object + ShadowLinkUpdate: + description: ShadowLinkUpdate contains fields that can be updated on a shadow link. + properties: + client_options: + $ref: '#/components/schemas/v1.ShadowLinkClientOptions' + consumer_offset_sync_options: + $ref: '#/components/schemas/ConsumerOffsetSyncOptions' + id: + description: Shadow link ID. + type: string + schema_registry_sync_options: + $ref: '#/components/schemas/SchemaRegistrySyncOptions' + security_sync_options: + $ref: '#/components/schemas/SecuritySettingsSyncOptions' + topic_metadata_sync_options: + $ref: '#/components/schemas/TopicMetadataSyncOptions' + type: object ShadowSchemaRegistryTopic: description: |- Shadow the entire source cluster's Schema Registry byte-for-byte. @@ -3773,6 +3887,12 @@ components: type: object UpdateServerlessClusterBody: description: UpdateServerlessClusterRequest is the request of UpdateServerlessCluster. + properties: + tags: + additionalProperties: + type: string + title: User-defined tags for the Serverless cluster (full replacement) + type: object type: object UpdateServerlessClusterOperation: description: UpdateServerlessClusterOperation is the response of the update cluster rpc. @@ -3793,6 +3913,12 @@ components: service_account: $ref: '#/components/schemas/ServiceAccount' type: object + UpdateShadowLinkOperation: + description: UpdateShadowLinkOperation wraps the Operation for updating a shadow link. + properties: + operation: + $ref: '#/components/schemas/v1.Operation' + type: object UpdateShadowLinkResponse: properties: shadow_link: @@ -3967,6 +4093,31 @@ components: $ref: '#/components/schemas/TLSPEMSettings' title: TLS settings type: object + controlplane.v1.TLSSettings: + description: TLSSettings configures TLS encryption. + properties: + ca: + description: The CA certificate for TLS. + type: string + cert: + description: |- + Cert is the certificate for TLS. + + Key and Cert are optional but if one is provided, then both must be provided. + type: string + do_not_set_sni_hostname: + description: Do not set SNI hostname. + type: boolean + enabled: + description: Enable TLS. + type: boolean + key: + description: |- + The private key for TLS. + + Key and Cert are optional but if one is provided, then both must be provided. + type: string + type: object rpc.Status: description: Describes errors properties: @@ -4034,6 +4185,12 @@ components: description: Detailed error message. No compatibility guarantees are given for the text contained in this message. type: string type: object + v1.CreateShadowLinkRequest: + description: CreateShadowLinkRequest creates a new shadow link. + properties: + shadow_link: + $ref: '#/components/schemas/ShadowLinkCreate' + type: object v1.CustomerManagedResources: description: The cloud resources created by user. properties: @@ -4162,6 +4319,24 @@ components: - redpanda_connect_service_account title: GCP Customer-Managed Resoures type: object + v1.GetShadowLinkResponse: + description: GetShadowLinkResponse returns the shadow link. + properties: + shadow_link: + $ref: '#/components/schemas/v1.ShadowLink' + type: object + v1.ListShadowLinksResponse: + description: ListShadowLinksResponse returns a list of shadow links. + properties: + next_page_token: + description: Token for fetching the next page of results. + type: string + shadow_links: + description: List of shadow links matching the filter. + items: + $ref: '#/components/schemas/ShadowLinkListItem' + type: array + type: object v1.Operation: description: Operation describes a long running operation properties: @@ -4237,6 +4412,136 @@ components: format: date-time type: string type: object + v1.ShadowLink: + description: |- + ShadowLink represents a shadow link resource. + Shadow links enable data replication from one Redpanda cluster to another. + properties: + client_options: + $ref: '#/components/schemas/v1.ShadowLinkClientOptions' + consumer_offset_sync_options: + $ref: '#/components/schemas/ConsumerOffsetSyncOptions' + created_at: + description: Timestamp when the shadow link was created. + format: date-time + readOnly: true + type: string + id: + description: Shadow link ID. + readOnly: true + type: string + name: + title: |- + Human-readable name for the shadow link. Must be unique. + Must follow Kubernetes DNS-1123 subdomain naming convention: + - lowercase alphanumeric characters, hyphens allowed + - must start and end with alphanumeric character + - maximum 63 characters + type: string + reason: + description: Reason provides additional context for the current state. + readOnly: true + type: string + schema_registry_sync_options: + $ref: '#/components/schemas/SchemaRegistrySyncOptions' + security_sync_options: + $ref: '#/components/schemas/SecuritySettingsSyncOptions' + shadow_redpanda_id: + description: Shadow Redpanda cluster ID where the shadow link is created. This ID is immutable. + type: string + state: + $ref: '#/components/schemas/ShadowLink.State' + topic_metadata_sync_options: + $ref: '#/components/schemas/TopicMetadataSyncOptions' + updated_at: + description: Timestamp when the shadow link was last updated. + format: date-time + readOnly: true + type: string + type: object + v1.ShadowLinkClientOptions: + description: ShadowLinkClientOptions configures the Kafka client connection settings. + properties: + authentication_configuration: + $ref: '#/components/schemas/AuthenticationConfiguration' + bootstrap_servers: + description: Bootstrap servers for the source cluster. Required if source Redpanda ID is not provided. + items: + type: string + type: array + client_id: + description: Client ID for the connection. + readOnly: true + type: string + connection_timeout_ms: + description: Connection timeout in milliseconds (defaults to 1000ms if 0). + format: int32 + type: integer + effective_connection_timeout_ms: + format: int32 + readOnly: true + title: The effective connection timeout in milliseconds + type: integer + effective_fetch_max_bytes: + format: int32 + readOnly: true + title: The effective fetch max bytes + type: integer + effective_fetch_min_bytes: + format: int32 + readOnly: true + title: The effective fetch min bytes + type: integer + effective_fetch_partition_max_bytes: + format: int32 + readOnly: true + title: The effective fetch partition max bytes + type: integer + effective_fetch_wait_max_ms: + format: int32 + readOnly: true + title: The effective fetch wait max in milliseconds + type: integer + effective_metadata_max_age_ms: + format: int32 + readOnly: true + title: The effective metadata max age in milliseconds + type: integer + effective_retry_backoff_ms: + format: int32 + readOnly: true + title: The effective retry backoff in milliseconds + type: integer + fetch_max_bytes: + description: Maximum bytes to fetch (defaults to 20971520 bytes / 20 MiB if 0). + format: int32 + type: integer + fetch_min_bytes: + description: Minimum bytes to fetch (defaults to 5242880 bytes / 5 MiB if 0). + format: int32 + type: integer + fetch_partition_max_bytes: + description: Maximum bytes per partition to fetch (defaults to 1048576 bytes / 1 MiB if 0). + format: int32 + type: integer + fetch_wait_max_ms: + description: Maximum time to wait for fetch requests in milliseconds (defaults to 500ms if 0). + format: int32 + type: integer + metadata_max_age_ms: + description: Metadata refresh interval in milliseconds (defaults to 10000ms if 0). + format: int32 + type: integer + retry_backoff_ms: + description: Retry backoff in milliseconds (defaults to 100ms if 0). + format: int32 + type: integer + source_cluster_id: + description: Source cluster ID. + type: string + tls_settings: + $ref: '#/components/schemas/controlplane.v1.TLSSettings' + type: object v2.GetShadowLinkResponse: properties: shadow_link: @@ -4857,7 +5162,7 @@ paths: - Clusters /v1/network/{network_id}/network-peerings: get: - description: List Redpanda network peerings. + description: List Redpanda networks peerings. operationId: NetworkPeeringService_ListNetworkPeerings parameters: - in: path @@ -4974,7 +5279,7 @@ paths: - Network Peerings /v1/network/{network_peering.network_id}/network-peerings: post: - description: Create a Redpanda network peering. + description: Create a Redpanda network pering. operationId: NetworkPeeringService_CreateNetworkPeering parameters: - in: path @@ -6978,6 +7283,235 @@ paths: summary: Rotate service account secret tags: - Control Plane Service Accounts + /v1/shadow-links: + get: + description: List Redpanda shadow links. + operationId: ShadowLinkService_ListShadowLinks + parameters: + - description: Filter by shadow Redpanda cluster ID. + in: query + name: filter.shadow_redpanda_id + schema: + type: string + - description: Filter by resource group ID. + in: query + name: filter.resource_group_id + schema: + type: string + - description: Maximum number of results per page. + in: query + name: page_size + schema: + format: int32 + type: integer + - description: Page token from previous response for pagination. + in: query + name: page_token + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1.ListShadowLinksResponse' + description: OK + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: List shadow links + tags: + - Shadow Links + post: + description: Create a Redpanda shadow link for data replication. + operationId: ShadowLinkService_CreateShadowLink + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1.CreateShadowLinkRequest' + description: CreateShadowLinkRequest creates a new shadow link. + required: true + x-originalParamName: body + responses: + "202": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateShadowLinkOperation' + description: Accepted + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Bad Request + "409": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Conflict - Shadow link with given name already exists + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Create shadow link + tags: + - Shadow Links + /v1/shadow-links/{id}: + delete: + description: Delete a Redpanda shadow link. + operationId: ShadowLinkService_DeleteShadowLink + parameters: + - description: Shadow link ID. + in: path + name: id + required: true + schema: + type: string + responses: + "202": + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteShadowLinkOperation' + description: Accepted - Shadow link deletion initiated + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found - Shadow link with given ID does not exist + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Delete shadow link + tags: + - Shadow Links + get: + description: Get a Redpanda shadow link by ID. + operationId: ShadowLinkService_GetShadowLink + parameters: + - description: Shadow link ID. + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1.GetShadowLinkResponse' + description: OK + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found - Shadow link with given ID does not exist + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Get shadow link + tags: + - Shadow Links + /v1/shadow-links/{shadow_link.id}: + patch: + description: Update a Redpanda shadow link configuration. + operationId: ShadowLinkService_UpdateShadowLink + parameters: + - description: Shadow link ID. + in: path + name: shadow_link.id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + client_options: + $ref: '#/components/schemas/v1.ShadowLinkClientOptions' + consumer_offset_sync_options: + $ref: '#/components/schemas/ConsumerOffsetSyncOptions' + schema_registry_sync_options: + $ref: '#/components/schemas/SchemaRegistrySyncOptions' + security_sync_options: + $ref: '#/components/schemas/SecuritySettingsSyncOptions' + topic_metadata_sync_options: + $ref: '#/components/schemas/TopicMetadataSyncOptions' + title: Shadow link fields to update. + type: object + description: Shadow link fields to update. + required: true + x-originalParamName: shadow_link + responses: + "202": + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateShadowLinkOperation' + description: Accepted + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found - Shadow link with given ID does not exist + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Please reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Update shadow link + tags: + - Shadow Links /v1/user-invites: get: description: List user invites to your Redpanda Cloud organization. @@ -7294,6 +7828,9 @@ tags: name: Serverless Private Links - description: See available Redpanda Serverless regions. name: Serverless Regions + - name: ShadowLinkService + - description: Manage Redpanda Cloud shadow links for data replication. + name: Shadow Links - description: See information about the organization the current user belongs to. name: Organization - description: Manage your Redpanda Cloud organization permissions. diff --git a/cloud-dataplane/cloud-dataplane.yaml b/cloud-dataplane/cloud-dataplane.yaml index 0774efb..7b6b716 100644 --- a/cloud-dataplane/cloud-dataplane.yaml +++ b/cloud-dataplane/cloud-dataplane.yaml @@ -506,7 +506,7 @@ components: info: $ref: '#/components/schemas/ConnectCluster.Info' name: - description: Unique name of Connect cluster. For Redpanda Cloud, the value is `redpanda`. + description: Unique name of connect cluster. For Redpanda Cloud, the value is `redpanda`. type: string plugins: items: @@ -1061,6 +1061,15 @@ components: type: string title: ErrorInfo type: object + FailOverBody: + properties: + shadow_topic_name: + title: |- + The name of the shadow topic to fail over, if not set will fail over + the entire shadow link + type: string + title: Request to fail over a shadow link or a single shadow topic + type: object FailedEntity: properties: entity_name: @@ -1475,7 +1484,7 @@ components: tools: additionalProperties: $ref: '#/components/schemas/Tool' - description: The MCP tool's configuration in YAML format. + description: The Redpanda Connect MCP tools configuration in YAML format. type: object required: - tools @@ -1628,15 +1637,15 @@ components: ListMCPServersRequest.Filter: properties: display_name_contains: - description: Filter MCP servers by display name. Any MCP servers that partially match this name are returned. + description: Any MCP Server that partially match this name will be returned. type: string secret_id: - description: Filter MCP servers by secret ID. + description: Match MCP servers that use this secret ID. type: string tags[string]: additionalProperties: type: string - description: Filter MCP servers by tags. MCP servers that match all the provided tags are returned. The query format is "filter.tags[key]=value". + description: MCP servers that match all the provided tags will be returned. type: object type: object ListMCPServersResponse: @@ -1646,7 +1655,6 @@ components: $ref: '#/components/schemas/MCPServer' type: array next_page_token: - description: Token to retrieve the next page of results. Include this value in the next request's `page_token` parameter. Empty if there are no more results. type: string type: object ListMountTasksResponse: @@ -1959,7 +1967,7 @@ components: tools: additionalProperties: $ref: '#/components/schemas/Tool' - description: The MCP server configuration. + description: The Redpanda Connect MCP server configuration. type: object url: readOnly: true @@ -1972,13 +1980,10 @@ components: - service_account type: object MCPServer.ServiceAccount: - description: Service account credentials used to authenticate with Redpanda Cloud. properties: client_id: - description: The service account client ID for authenticating with Redpanda Cloud. type: string client_secret: - description: The service account client secret for authenticating with Redpanda Cloud. type: string required: - client_id @@ -2027,7 +2032,7 @@ components: tools: additionalProperties: $ref: '#/components/schemas/Tool' - description: The MCP server configuration. + description: The Redpanda Connect MCP server configuration. type: object required: - display_name @@ -2040,7 +2045,7 @@ components: description: MCP server description. type: string display_name: - description: User-friendly MCP server name. + description: User-friendly MCP servers name. type: string resources: $ref: '#/components/schemas/Resources' @@ -2056,7 +2061,7 @@ components: tools: additionalProperties: $ref: '#/components/schemas/Tool' - description: The MCP server configuration. + description: The Redpanda Connect MCP server configuration. type: object type: object MatchingACL: @@ -2854,7 +2859,7 @@ components: client_id: readOnly: true title: |- - The Client ID for the Kafka RPC requests sent by this cluster to the + The Client ID for the Kafka RPC requests setn by this cluster to the source cluster type: string connection_timeout_ms: @@ -4914,7 +4919,7 @@ paths: description: 'List Kafka Connect cluster secrets. Optional: filter based on secret name and labels.' operationId: SecretService_ListKafkaConnectSecrets parameters: - - description: Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`. + - description: Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`. in: path name: cluster_name required: true @@ -5034,7 +5039,7 @@ paths: description: Delete a Kafka Connect cluster secret. operationId: SecretService_DeleteKafkaConnectSecret parameters: - - description: Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`. + - description: Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`. in: path name: cluster_name required: true @@ -5573,20 +5578,20 @@ paths: - Redpanda Connect Pipelines /v1/redpanda-connect/mcp-servers: get: - description: 'List MCP servers and optionally filter by display name, tags, or secret ID.' + description: 'List Redpanda Connect MCP Servers. Optional: filter based on MCP server name.' operationId: MCPServerService_ListMCPServers parameters: - - description: Filter MCP servers by name. Any servers that partially match this name are returned. + - description: Any MCP Server that partially match this name will be returned. in: query name: filter.display_name_contains schema: type: string - - description: Filter MCP servers by tags. MCP servers that match all the provided tags are returned. The query format is "filter.tags[key]=value". + - description: This is a request variable of the map type. The query format is "map_name[key]=value", e.g. If the map name is Age, the key type is string, and the value type is integer, the query parameter is expressed as Age["bob"]=18 in: query name: filter.tags[string] schema: type: string - - description: Filter MCP servers by secret ID. + - description: Match MCP servers that use this secret ID. in: query name: filter.secret_id schema: @@ -5629,11 +5634,11 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: List MCP servers + summary: List Redpanda Connect MCP Servers tags: - - Remote MCP + - Redpanda Connect MCP servers post: - description: Create an MCP server. + description: Create a new Redpanda Connect MCP Server. operationId: MCPServerService_CreateMCPServer requestBody: content: @@ -5667,15 +5672,15 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Create an MCP server + summary: Create Redpanda Connect MCP Server tags: - - Remote MCP + - Redpanda Connect MCP servers /v1/redpanda-connect/mcp-servers/{id}: delete: - description: Delete an MCP server. + description: Delete a Redpanda Connect MCP server. operationId: MCPServerService_DeleteMCPServer parameters: - - description: MCP server ID. + - description: MCP Server ID. in: path name: id required: true @@ -5711,11 +5716,11 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Delete an MCP server + summary: Delete a Redpanda Connect MCP server tags: - - Remote MCP + - Redpanda Connect MCP servers get: - description: Get a specific MCP server. + description: Get a specific Redpanda Connect MCP server. operationId: MCPServerService_GetMCPServer parameters: - description: MCP server ID. @@ -5755,11 +5760,11 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Get an MCP server + summary: Get Redpanda Connect MCP server tags: - - Remote MCP + - Redpanda Connect MCP servers put: - description: Edit an MCP server. + description: Update the configuration of a Redpanda Connect MCP server. operationId: MCPServerService_UpdateMCPServer parameters: - description: MCP Server ID. @@ -5807,15 +5812,15 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Edit an MCP Server + summary: Update a Redpanda Connect MCP Server tags: - - Remote MCP + - Redpanda Connect MCP servers /v1/redpanda-connect/mcp-servers/{id}:start: post: - description: Start an existing MCP server. + description: Start a stopped Redpanda Connect MCP server. operationId: MCPServerService_StartMCPServer parameters: - - description: MCP server ID. + - description: MCP Server ID. in: path name: id required: true @@ -5852,12 +5857,12 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Start an existing MCP server + summary: Start a Redpanda Connect MCP server tags: - - Remote MCP + - Redpanda Connect MCP servers /v1/redpanda-connect/mcp-servers/{id}:stop: post: - description: Stop an MCP server. + description: Stop a running Redpanda Connect MCP server. operationId: MCPServerService_StopMCPServer parameters: - description: MCP Server ID. @@ -5897,12 +5902,12 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Stop an MCP server + summary: Stops a Redpanda Connect MCP server tags: - - Remote MCP + - Redpanda Connect MCP servers /v1/redpanda-connect/mcp-servers:getConfigSchema: get: - description: The configuration schema includes all available Redpanda Connect components and processors in this MCP server instance. + description: The configuration schema includes available components and processors in this Redpanda Connect MCP Server instance. operationId: MCPServerService_GetMCPServerServiceConfigSchema responses: "200": @@ -5929,12 +5934,12 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Retrieve the schema for MCP server configurations + summary: Retrieve the schema for Redpanda Connect MCP Servers configurations. tags: - - Remote MCP + - Redpanda Connect MCP servers /v1/redpanda-connect/mcp-servers:lint-config: post: - description: Validates a given MCP tool configuration and returns a list of linting hints. The request should contain a map of tool names to tool configurations, where each tool contains YAML in its `config_yaml` field. If no problems are found, the list is empty. + description: Validates a supplied Redpanda Connect MCP tools YAML and returns a list of linting hints. If no problems are found, the list is empty. operationId: MCPServerService_LintMCPConfig requestBody: content: @@ -5968,9 +5973,9 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Lint the configuration of an MCP tool + summary: Lint a Redpanda Connect MCP tools configuration tags: - - Remote MCP + - Redpanda Connect MCP servers /v1/redpanda-connect/pipelines: get: description: 'List Redpanda Connect pipelines. Optional: filter based on pipeline name.' @@ -7038,6 +7043,227 @@ paths: summary: Update secret tags: - Secrets + /v1/shadow-links/{name}: + get: + description: Retrieve details of a specific shadow link by name. + operationId: ShadowLinkService_GetShadowLink + parameters: + - in: path + name: name + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1.GetShadowLinkResponse' + description: OK + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Get Shadow Link + tags: + - Shadow Links (Data Plane) + /v1/shadow-links/{name}/failover: + post: + description: Fail over a shadow link or a specific shadow topic within a link. + operationId: ShadowLinkService_FailOver + parameters: + - description: The name of the shadow link to fail over + in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FailOverBody' + required: true + x-originalParamName: body + responses: + "202": + content: + application/json: + schema: + $ref: '#/components/schemas/v1.FailOverResponse' + description: Failover accepted and initiated + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Fail Over Shadow Link + tags: + - Shadow Links (Data Plane) + /v1/shadow-links/{name}/metrics: + get: + description: Retrieve metrics for a specific shadow link, including total topics replicated, failed over topics, and error topics. + operationId: ShadowLinkService_GetShadowMetrics + parameters: + - in: path + name: name + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetShadowMetricsResponse' + description: OK + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Get Shadow Link Metrics + tags: + - Shadow Links (Data Plane) + /v1/shadow-links/{shadow_link_name}/topic: + get: + description: 'List shadow topic status information for a specific shadow link. Optional: filter based on topic name.' + operationId: ShadowLinkService_ListShadowLinkTopics + parameters: + - in: path + name: shadow_link_name + required: true + schema: + type: string + - description: Substring match on shadow topic name. Case-sensitive. + in: query + name: filter.topic_name_contains + schema: + type: string + - description: Limit the paginated response to a number of items. Defaults to 100. Use -1 to disable pagination. + in: query + name: page_size + schema: + format: int32 + type: integer + - description: |- + Value of the next_page_token field returned by the previous response. + If not provided, the system assumes the first page is requested. + in: query + name: page_token + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListShadowLinkTopicsResponse' + description: OK + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: List Shadow Link Topics + tags: + - Shadow Links (Data Plane) + /v1/shadow-links/{shadow_link_name}/topic/{topic_name}: + get: + description: Retrieve details of a specific shadow topic within a shadow link. + operationId: ShadowLinkService_GetShadowTopic + parameters: + - in: path + name: shadow_link_name + required: true + schema: + type: string + - in: path + name: topic_name + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1.GetShadowTopicResponse' + description: OK + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Internal Server Error. Reach out to support. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Get Shadow Topic + tags: + - Shadow Links (Data Plane) /v1/topics: get: description: 'List topics, with partition count and replication factor. Optional: filter based on topic name.' @@ -7604,7 +7830,7 @@ paths: content: multipart/form-data: schema: - example: '{"name":"redact-orders", "input_topic_name":"orders", "output_topic_names":["orders-redacted"], "environment_variables":[{"key":"LOGGER_LEVEL", "value":"DEBUG"}]}' + example: '{"name":"redact-orders","input_topic_name":"orders","output_topic_names":["orders-redacted"],"environment_variables":[{"key":"LOGGER_LEVEL","value":"DEBUG"}]}' properties: metadata: $ref: '#/components/schemas/DeployTransformRequest' @@ -7622,7 +7848,7 @@ paths: schema: $ref: '#/components/schemas/TransformMetadata' description: Created - summary: Deploy transform + summary: Deploy Transform tags: - Wasm Transforms /v1/transforms/{name}: @@ -8022,8 +8248,8 @@ tags: name: Kafka Connect - description: Create and manage [Redpanda Connect](https://docs.redpanda.com/redpanda-cloud/develop/connect/about) pipelines and their configurations. name: Redpanda Connect Pipelines - - description: Create and manage MCP servers and their configurations. - name: Remote MCP + - description: Create and manage Redpanda Connect MCP servers and their configurations. + name: Redpanda Connect MCP servers - description: Monitoring operations for Redpanda. name: Monitoring - description: Manage client throughput limits. See [Redpanda Client Throughput Limits](https://docs.redpanda.com/current/manage/cluster-maintenance/manage-throughput/#client-throughput-limits) for more information. @@ -8032,6 +8258,8 @@ tags: name: Secrets - description: Manage Redpanda roles. name: Security + - description: Data plane operations for Redpanda shadow links. + name: Shadow Links (Data Plane) - description: Manage Redpanda topics. name: Topics - description: Manage Redpanda users. For more information, see [Role-Based Access Control](https://docs.redpanda.com/redpanda-cloud/security/authorization/rbac/). From 7cd75715f6567f5646eb7a9110d99739acac1af7 Mon Sep 17 00:00:00 2001 From: Kat Batuigas <36839689+kbatuigas@users.noreply.github.com> Date: Fri, 12 Dec 2025 11:06:19 -0800 Subject: [PATCH 2/2] Apply suggestions from code review --- cloud-controlplane/cloud-controlplane.yaml | 2 +- cloud-dataplane/cloud-dataplane.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cloud-controlplane/cloud-controlplane.yaml b/cloud-controlplane/cloud-controlplane.yaml index 705aa3e..64a7b02 100644 --- a/cloud-controlplane/cloud-controlplane.yaml +++ b/cloud-controlplane/cloud-controlplane.yaml @@ -5279,7 +5279,7 @@ paths: - Network Peerings /v1/network/{network_peering.network_id}/network-peerings: post: - description: Create a Redpanda network pering. + description: Create a Redpanda network peering. operationId: NetworkPeeringService_CreateNetworkPeering parameters: - in: path diff --git a/cloud-dataplane/cloud-dataplane.yaml b/cloud-dataplane/cloud-dataplane.yaml index 7b6b716..abcf91b 100644 --- a/cloud-dataplane/cloud-dataplane.yaml +++ b/cloud-dataplane/cloud-dataplane.yaml @@ -7848,7 +7848,7 @@ paths: schema: $ref: '#/components/schemas/TransformMetadata' description: Created - summary: Deploy Transform + summary: Deploy transform tags: - Wasm Transforms /v1/transforms/{name}: