diff --git a/cloud-controlplane/cloud-controlplane.yaml b/cloud-controlplane/cloud-controlplane.yaml index e57f4b0..a893a2d 100644 --- a/cloud-controlplane/cloud-controlplane.yaml +++ b/cloud-controlplane/cloud-controlplane.yaml @@ -1,5 +1,103 @@ components: schemas: + ACLAccessFilter: + properties: + host: + title: |- + The host to match. If not set, will default to match all hosts + with the specified `operation` and `permission_type`. Note that + the asterisk `*` is literal and matches hosts that are set to `*` + type: string + operation: + $ref: '#/components/schemas/ACLOperation' + permission_type: + $ref: '#/components/schemas/ACLPermissionType' + principal: + title: |- + The name of the principal, if not set will default to match + all principals with the specified `operation` and `permission_type` + type: string + title: Filter an ACL based on its access + type: object + ACLFilter: + properties: + access_filter: + $ref: '#/components/schemas/ACLAccessFilter' + resource_filter: + $ref: '#/components/schemas/ACLResourceFilter' + title: A filter for ACLs + type: object + ACLOperation: + enum: + - ACL_OPERATION_ANY + - ACL_OPERATION_READ + - ACL_OPERATION_WRITE + - ACL_OPERATION_CREATE + - ACL_OPERATION_REMOVE + - ACL_OPERATION_ALTER + - ACL_OPERATION_DESCRIBE + - ACL_OPERATION_CLUSTER_ACTION + - ACL_OPERATION_DESCRIBE_CONFIGS + - ACL_OPERATION_ALTER_CONFIGS + - ACL_OPERATION_IDEMPOTENT_WRITE + title: / The ACL operation to match + type: string + ACLPattern: + description: |- + - ACL_PATTERN_ANY: Wildcard to match any pattern + - ACL_PATTERN_LITERAL: Match a literal string + - ACL_PATTERN_PREFIXED: Match a prefix + - ACL_PATTERN_MATCH: Match serves as a catch-all for all the names of a topic + the principal is authorized to access + enum: + - ACL_PATTERN_ANY + - ACL_PATTERN_LITERAL + - ACL_PATTERN_PREFIXED + - ACL_PATTERN_MATCH + title: / The ACL pattern type + type: string + ACLPermissionType: + enum: + - ACL_PERMISSION_TYPE_ANY + - ACL_PERMISSION_TYPE_ALLOW + - ACL_PERMISSION_TYPE_DENY + title: / ACL permission types + type: string + ACLResource: + description: |- + - ACL_RESOURCE_ANY: Wildcard for selecting any ACL resource + - ACL_RESOURCE_CLUSTER: Cluster wide resource + - ACL_RESOURCE_GROUP: Consumer group resource + - ACL_RESOURCE_TOPIC: Topic resource + - ACL_RESOURCE_TXN_ID: Transaction ID resource + - ACL_RESOURCE_SR_SUBJECT: Schema Registry subject resource + - ACL_RESOURCE_SR_REGISTRY: Schema Registry wide resource + - ACL_RESOURCE_SR_ANY: Wildcard to match any SR ACL resource + enum: + - ACL_RESOURCE_ANY + - ACL_RESOURCE_CLUSTER + - ACL_RESOURCE_GROUP + - ACL_RESOURCE_TOPIC + - ACL_RESOURCE_TXN_ID + - ACL_RESOURCE_SR_SUBJECT + - ACL_RESOURCE_SR_REGISTRY + - ACL_RESOURCE_SR_ANY + title: / The ACL resource types + type: string + ACLResourceFilter: + properties: + name: + title: |- + Name, if not given will default to match all items in `resource_type`. + Note that asterisk `*` is literal and matches resource ACLs + that are named `*` + type: string + pattern_type: + $ref: '#/components/schemas/ACLPattern' + resource_type: + $ref: '#/components/schemas/ACLResource' + title: A filter to match ACLs for resources + type: object AWS.Role: description: Role identifies AWS role. properties: @@ -54,6 +152,11 @@ components: $ref: '#/components/schemas/PrivateLinkAuthMode' status: $ref: '#/components/schemas/AWSPrivateLink.Status' + supported_regions: + description: List of supported regions in cross-region AWS PrivateLink. + items: + type: string + type: array type: object AWSPrivateLink.Status: properties: @@ -130,6 +233,14 @@ components: $ref: '#/components/schemas/PrivateLinkAuthMode' schema_registry_auth_mode: $ref: '#/components/schemas/PrivateLinkAuthMode' + supported_regions: + description: List of AWS regions allowed in cross region configuration. + example: + - us-east-1 + - us-west-2 + items: + type: string + type: array type: object AWSSecurityGroup: description: Security Group identifies AWS security group. @@ -143,6 +254,14 @@ components: type: object Anytime: type: object + AuthenticationConfiguration: + properties: + scram_configuration: + $ref: '#/components/schemas/ScramConfig' + title: |- + Authentication config. Currently only supporting SASL/SCRAM, + however made as a oneof for expansion + type: object AzurePeeringSpec: properties: peer_resource_group: @@ -400,7 +519,7 @@ components: example: cjcuq79c4vs94fcufc2g type: string prometheus: - $ref: '#/components/schemas/Prometheus' + $ref: '#/components/schemas/Cluster.Prometheus' read_replica_cluster_ids: description: IDs of clusters which may create read-only topics from this cluster. items: @@ -534,6 +653,16 @@ components: type: string type: array type: object + Cluster.Prometheus: + description: Prometheus metrics endpoint properties. + properties: + url: + description: Prometheus API URL. + example: https://console-aa0000l0.cjb69h1c4vs42pca89s0.fmc.prd.cloud.redpanda.com/api/cloud/prometheus/public_metrics + readOnly: true + type: string + readOnly: true + type: object Cluster.SchemaRegistryStatus: description: Cluster's Schema Registry properties. properties: @@ -854,6 +983,30 @@ components: - CONNECTION_TYPE_PUBLIC - CONNECTION_TYPE_PRIVATE type: string + ConsumerOffsetSyncOptions: + properties: + effective_interval: + readOnly: true + title: The effective interval for the task + type: string + group_filters: + items: + $ref: '#/components/schemas/NameFilter' + title: The filters + type: array + interval: + title: |- + Sync interval + If 0 provided, defaults to 30 seconds + type: string + paused: + title: |- + Allows user to pause the consumer offset sync task. If paused, then + the task will enter the 'paused' state and not sync consumer offsets from + the source cluster + type: boolean + title: Options for syncing consumer offsets + type: object CreateClusterMetadata: description: Resource describing an in-progress CreateCluster Operation. properties: @@ -953,6 +1106,17 @@ components: role_binding: $ref: '#/components/schemas/v1.RoleBinding' type: object + CreateRoleRequest: + description: CreateRoleRequest is the request of CreateRole. + properties: + role: + $ref: '#/components/schemas/RoleCreate' + type: object + CreateRoleResponse: + properties: + role: + $ref: '#/components/schemas/v1.Role' + type: object CreateServerlessClusterOperation: description: CreateServerlessClusterOperation is the response of the create serverless_cluster rpc. properties: @@ -976,6 +1140,12 @@ components: service_account: $ref: '#/components/schemas/ServiceAccount' type: object + CreateShadowLinkResponse: + properties: + shadow_link: + $ref: '#/components/schemas/v2.ShadowLink' + title: Response to creating a shadow link + type: object CreateUserInviteRequest: properties: user_invite: @@ -1215,6 +1385,8 @@ components: DeleteRoleBindingResponse: description: DeleteRoleBindingResponse is the response of DeleteRoleBinding. type: object + DeleteRoleResponse: + type: object DeleteServerlessClusterOperation: description: DeleteServerlessClusterOperation is the response of the delete serverless_cluster rpc. properties: @@ -1223,10 +1395,16 @@ components: type: object DeleteServiceAccountResponse: type: object + DeleteShadowLinkResponse: + title: Response to deleting a shadow link + type: object DeleteUserInviteResponse: type: object DeleteUserResponse: type: object + EarliestOffset: + description: Start at the earliest offset in the partition. + type: object Endpoints: description: The endpoints of Redpanda HTTP Proxy or Schema Registry. properties: @@ -1303,6 +1481,12 @@ components: type: string title: ErrorInfo type: object + FailOverResponse: + properties: + shadow_link: + $ref: '#/components/schemas/v2.ShadowLink' + title: The response to the FailOverRequest + type: object FieldViolation: description: A message type used to describe a single bad request field. properties: @@ -1361,6 +1545,15 @@ components: which represents UPPER_SNAKE_CASE. type: string type: object + FilterType: + description: |- + - FILTER_TYPE_INCLUDE: Include the items that match the filter + - FILTER_TYPE_EXCLUDE: Exclude the items that match the filter + enum: + - FILTER_TYPE_INCLUDE + - FILTER_TYPE_EXCLUDE + title: What type of filter this is, include or exclude + type: string GCP.Subnet: description: GCP subnet properties. See the official [GCP API reference](https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks). properties: @@ -1534,6 +1727,11 @@ components: $ref: '#/components/schemas/v1.Operation' title: GetOperationResponse is the request of GetOperation type: object + GetPrometheusCredentialsResponse: + properties: + prometheus_credentials: + $ref: '#/components/schemas/PrometheusCredentials' + type: object GetRegionResponse: properties: region: @@ -1550,6 +1748,11 @@ components: role_binding: $ref: '#/components/schemas/v1.RoleBinding' type: object + GetRoleResponse: + properties: + role: + $ref: '#/components/schemas/v1.Role' + type: object GetServerlessClusterResponse: description: GetServerlessClusterResponse is the request of GetServerlessCluster. properties: @@ -1572,6 +1775,12 @@ components: service_account: $ref: '#/components/schemas/ServiceAccount' type: object + GetShadowTopicResponse: + properties: + shadow_topic: + $ref: '#/components/schemas/ShadowTopic' + title: Response of to getting a shadow topic + type: object GetUserInviteResponse: properties: user_invite: @@ -1656,6 +1865,9 @@ components: - console_vault title: Azure Key Vaults type: object + LatestOffset: + description: Start at the latest offset in the partition. + type: object Link: description: Describes a URL link. properties: @@ -1769,6 +1981,19 @@ components: type: array title: ListOperationsResponse is the response of ListOperations type: object + ListPermissionsResponse: + description: ListPermissionsResponse is the response of ListPermissions. + properties: + permissions: + description: List of available permissions + example: + - iam_role_create + - iam_role_read + - iam_role_update + items: + $ref: '#/components/schemas/Permission' + type: array + type: object ListRegionsRequest.Filter: properties: cluster_type: @@ -1829,6 +2054,23 @@ components: maxItems: 100 type: array type: object + ListRolesRequest.Filter: + properties: + name: + type: string + type: object + ListRolesResponse: + description: ListRolesResponse is the response of ListRoles. + properties: + next_page_token: + type: string + roles: + description: Roles matching the request + items: + $ref: '#/components/schemas/v1.Role' + maxItems: 100 + type: array + type: object ListServerlessClustersRequest.Filter: properties: name_contains: @@ -1897,6 +2139,14 @@ components: maxItems: 100 type: array type: object + ListShadowTopicsResponse: + properties: + shadow_topics: + items: + $ref: '#/components/schemas/ShadowTopic' + type: array + title: Response to listing all shadow topics in a shadow link + type: object ListUserInvitesRequest.Filter: type: object ListUserInvitesResponse: @@ -1975,6 +2225,20 @@ components: $ref: '#/components/schemas/Unspecified' title: MaintenanceWindowConfig type: object + NameFilter: + properties: + filter_type: + $ref: '#/components/schemas/FilterType' + name: + title: |- + The resource name, or "*" + Note if "*", must be the _only_ character + and `pattern_type` must be `PATTERN_TYPE_LITERAL` + type: string + pattern_type: + $ref: '#/components/schemas/PatternType' + title: A filter based on the name of a resource + type: object Network: description: Resource describing a Network. properties: @@ -2342,6 +2606,20 @@ components: mfa_enforced: type: boolean type: object + PatternType: + description: |- + - PATTERN_TYPE_LITERAL: Must match the filter exactly + - PATTERN_TYPE_PREFIX: Will match anything that starts with filter + enum: + - PATTERN_TYPE_LITERAL + - PATTERN_TYPE_PREFIX + title: The matching pattern type + type: string + Permission: + properties: + name: + type: string + type: object Placement: description: Information about creation of new serverless clusters on the serverless region. properties: @@ -2413,15 +2691,12 @@ components: - PRIVATE_LINK_AUTH_MODE_MTLS_AND_SASL - PRIVATE_LINK_AUTH_MODE_NONE type: string - Prometheus: - description: Prometheus metrics endpoint properties. + PrometheusCredentials: properties: - url: - description: Prometheus API URL. - example: https://console-aa0000l0.cjb69h1c4vs42pca89s0.fmc.prd.cloud.redpanda.com/api/cloud/prometheus/public_metrics - readOnly: true + password: + type: string + username: type: string - readOnly: true type: object QuotaFailure: description: |- @@ -2640,6 +2915,36 @@ components: scope: $ref: '#/components/schemas/Scope' type: object + RoleCreate: + properties: + description: + description: The description of the role. + example: Billing Admins have access to billing information. + type: string + name: + description: The unique name of the role. + example: billing_admin + type: string + permissions: + items: + type: string + type: array + type: object + RoleUpdate: + properties: + description: + description: The description of the role. + example: Billing Admins have access to billing information. + type: string + name: + description: The unique name of the role. + example: billing_admin + type: string + permissions: + items: + type: string + type: array + type: object RotateServiceAccountSecretResponse: properties: service_account: @@ -2660,6 +2965,12 @@ components: sasl: $ref: '#/components/schemas/SASLSpec' type: object + SchemaRegistrySyncOptions: + description: Options for how the Schema Registry is synced. + properties: + shadow_schema_registry_topic: + $ref: '#/components/schemas/ShadowSchemaRegistryTopic' + type: object Scope: properties: resource_id: @@ -2676,6 +2987,38 @@ components: - SCOPE_RESOURCE_TYPE_NETWORK_PEERING - SCOPE_RESOURCE_TYPE_ORGANIZATION type: string + ScramConfig: + properties: + password: + title: Password + type: string + password_set: + readOnly: true + title: Indicates that the password has been set + type: boolean + password_set_at: + format: date-time + readOnly: true + title: |- + Timestamp of when the password was last set - only valid if password_set + is true + type: string + scram_mechanism: + $ref: '#/components/schemas/ScramMechanism' + username: + title: SCRAM username + type: string + title: SCRAM settings + type: object + ScramMechanism: + description: |- + - SCRAM_MECHANISM_SCRAM_SHA_256: SCRAM-SHA-256 + - SCRAM_MECHANISM_SCRAM_SHA_512: SCRAM-SHA-512 + enum: + - SCRAM_MECHANISM_SCRAM_SHA_256 + - SCRAM_MECHANISM_SCRAM_SHA_512 + title: Valid SCRAM mechanisms + type: string SecondaryIPv4Range: description: Secondary IPv4 range. properties: @@ -2702,6 +3045,30 @@ components: - redpanda_security_group title: Azure Security Groups type: object + SecuritySettingsSyncOptions: + properties: + acl_filters: + items: + $ref: '#/components/schemas/ACLFilter' + title: ACL filters + type: array + effective_interval: + readOnly: true + title: The effective interval for the task + type: string + interval: + title: |- + Sync interval + If 0 provided, defaults to 30 seconds + type: string + paused: + title: |- + Allows user to pause the security settings sync task. If paused, + then the task will enter the 'paused' state and will not sync security + settings from the source cluster + type: boolean + title: Options for syncing security settings + type: object SeedBrokers: description: Seed brokers of Redpanda Kafka API. properties: @@ -2750,6 +3117,8 @@ components: nullable: true readOnly: true type: string + prometheus: + $ref: '#/components/schemas/ServerlessCluster.Prometheus' resource_group_id: description: Resource group ID of the cluster. example: a0b40af9-0250-48ca-9417-783ed127ce42 @@ -2797,6 +3166,21 @@ components: title: Kafka API seed brokers (also known as bootstrap servers). Implicitly public type: array type: object + ServerlessCluster.Prometheus: + description: Prometheus metrics endpoint properties. + properties: + private_url: + description: Prometheus API Private URL. + example: https://d1d9risv0c3i7qbbeoc0.metrics.us-east-1.mpx.prd.cloud.redpanda.com/public_metrics + readOnly: true + type: string + url: + description: Prometheus API URL. + example: https://d1d9risv0c3i7qbbeoc0.metrics.us-east-1.mpx.prd.cloud.redpanda.com/public_metrics + readOnly: true + type: string + readOnly: true + type: object ServerlessCluster.SchemaRegistryStatus: description: Cluster's Schema Registry properties. properties: @@ -2950,6 +3334,137 @@ components: example: ci_bot type: string type: object + ShadowLinkConfigurations: + properties: + client_options: + $ref: '#/components/schemas/v2.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: ShadowLink options + type: object + ShadowLinkState: + description: |- + - SHADOW_LINK_STATE_ACTIVE: Shadow link is active + - SHADOW_LINK_STATE_PAUSED: Shadow link was paused + enum: + - SHADOW_LINK_STATE_ACTIVE + - SHADOW_LINK_STATE_PAUSED + title: State of the shadow link + type: string + ShadowLinkStatus: + properties: + shadow_topics: + items: + $ref: '#/components/schemas/ShadowTopic' + title: Status of shadow topics + type: array + state: + $ref: '#/components/schemas/ShadowLinkState' + synced_shadow_topic_properties: + items: + type: string + title: List of topic properties that are being synced + type: array + task_statuses: + items: + $ref: '#/components/schemas/ShadowLinkTaskStatus' + title: Statuses of the running tasks + type: array + title: Status of the shadow link + type: object + ShadowLinkTaskStatus: + properties: + broker_id: + format: int32 + title: The broker the task is running on + type: integer + name: + title: Name of the task + type: string + reason: + title: Reason for task being in state + type: string + shard: + format: int32 + title: The shard the task is running on + type: integer + state: + $ref: '#/components/schemas/TaskState' + title: Status of a task + type: object + ShadowSchemaRegistryTopic: + description: |- + Shadow the entire source cluster's Schema Registry byte-for-byte. + If set, the Shadow Link will attempt to add the `_schemas` + topic to the list of Shadow Topics as long as: + 1. The `_schemas` topic exists on the source cluster + 2. The `_schemas` topic does not exist on the shadow cluster, or it is + empty. + If either of the above conditions are _not_ met, then the `_schemas` + topic will _not_ be shadowed by this cluster. Unsetting this flag will + _not_ remove the `_schemas` topic from shadowing if it has already been + added. Once made a shadow topic, the + `_schemas` topic will be replicated byte-for-byte. To stop shadowing the + `_schemas` topic, unset this field, then either fail-over the topic or + delete it. + type: object + ShadowTopic: + properties: + name: + readOnly: true + title: Name of the shadow topic + type: string + source_topic_id: + readOnly: true + title: The topic ID of the source topic + type: string + source_topic_name: + title: The name of the source topic + type: string + status: + $ref: '#/components/schemas/ShadowTopicStatus' + topic_id: + readOnly: true + title: The topic ID of the shadow topic + type: string + title: A ShadowTopic resource contained by the ShadowLink + type: object + ShadowTopicState: + description: |- + - SHADOW_TOPIC_STATE_ACTIVE: Shadow topic is active + - SHADOW_TOPIC_STATE_FAULTED: Shadow topic has faulted + - SHADOW_TOPIC_STATE_PAUSED: Shadow topic has been paused + - SHADOW_TOPIC_STATE_FAILING_OVER: Shadow topic is in the process of failing over + - SHADOW_TOPIC_STATE_FAILED_OVER: Shadow topic has failed over successfully + - SHADOW_TOPIC_STATE_PROMOTING: Shadow topic is in the process of being promoted + - SHADOW_TOPIC_STATE_PROMOTED: Shadow topic is promoted successfully + enum: + - SHADOW_TOPIC_STATE_ACTIVE + - SHADOW_TOPIC_STATE_FAULTED + - SHADOW_TOPIC_STATE_PAUSED + - SHADOW_TOPIC_STATE_FAILING_OVER + - SHADOW_TOPIC_STATE_FAILED_OVER + - SHADOW_TOPIC_STATE_PROMOTING + - SHADOW_TOPIC_STATE_PROMOTED + title: State of a shadow topic + type: string + ShadowTopicStatus: + properties: + partition_information: + items: + $ref: '#/components/schemas/TopicPartitionInformation' + title: List of partition information for the shadow topic + type: array + state: + $ref: '#/components/schemas/ShadowTopicState' + title: Status of a ShadowTopic + type: object Subnets: description: Azure subnets used by Redpand cluster deployment. properties: @@ -3008,6 +3523,55 @@ components: required: - name type: object + TLSFileSettings: + properties: + ca_path: + title: Path to the CA + type: string + cert_path: + title: Path to the cert + type: string + key_path: + title: |- + Key and Cert are optional but if one is provided, then both must be + Path to the key + type: string + title: TLS file settings + type: object + TLSPEMSettings: + properties: + ca: + title: The CA + type: string + cert: + title: The cert + type: string + key: + title: |- + Key and Cert are optional but if one is provided, then both must be + The key + type: string + key_fingerprint: + readOnly: true + title: The SHA-256 of the key, in base64 format + type: string + title: Used when providing the TLS information in PEM format + type: object + TaskState: + description: |- + - TASK_STATE_ACTIVE: Task is active + - TASK_STATE_PAUSED: Task was paused + - TASK_STATE_LINK_UNAVAILABLE: Task is unable to communicate with source cluster + - TASK_STATE_NOT_RUNNING: Task is not running + - TASK_STATE_FAULTED: Task is faulted + enum: + - TASK_STATE_ACTIVE + - TASK_STATE_PAUSED + - TASK_STATE_LINK_UNAVAILABLE + - TASK_STATE_NOT_RUNNING + - TASK_STATE_FAULTED + title: Task states + type: string TimeZone: description: |- Represents a time zone from the @@ -3020,30 +3584,137 @@ components: description: Optional. IANA Time Zone Database version number, e.g. "2019a". type: string type: object - UAISpec: - description: Azure user assigned identity. - properties: - name: - title: |- - Naming convention: Between 3 and 128 characters and use Letters, numbers, underscores, and hyphens. Start with letters and numbers. - https://azure.github.io/PSRule.Rules.Azure/en/rules/Azure.Identity.UserAssignedName/ - type: string - required: - - name - type: object - Unspecified: - type: object - UpdateClusterMetadata: - description: Resource describing an in-progress UpdateCluster Operation. + TopicMetadataSyncOptions: properties: - update_type: + auto_create_shadow_topic_filters: + description: |- + List of filters that indicate which topics should be automatically + created as shadow topics on the shadow cluster. This only controls + automatic creation of shadow topics and does not effect the state of the + mirror topic once it is created. + Literal filters for __consumer_offsets, _redpanda.audit_log and _schemas + will be rejected as well as prefix filters to match topics prefixed with + _redpanda or __redpanda. + Wildcard `*` is permitted only for literal filters and will _not_ match + any topics that start with _redpanda or __redpanda. If users wish to + shadow topics that start with _redpanda or __redpanda, they should + provide a literal filter for those topics. items: - $ref: '#/components/schemas/UpdateClusterType' - title: Update operation types, based on the properties modified in the cluster + $ref: '#/components/schemas/NameFilter' type: array - title: UpdateClusterMetadata - type: object - UpdateClusterOperation: + effective_interval: + readOnly: true + title: The effective interval for the task + type: string + exclude_default: + description: |- + If this is true, then only the properties listed in + `synced_shadow_topic_properties` will be synced. + title: |- + If false, then the following topic properties will be synced by default: + - `compression.type` + - `retention.bytes` + - `retention.ms` + - `delete.retention.ms` + - Replication Factor + - `min.compaction.lag.ms` + - `max.compaction.lag.ms` + type: boolean + interval: + title: |- + How often to sync metadata + If 0 provided, defaults to 30 seconds + type: string + paused: + title: |- + Allows user to pause the topic sync task. If paused, then + the task will enter the 'paused' state and not sync topics or their + properties from the source cluster + type: boolean + start_at_earliest: + $ref: '#/components/schemas/EarliestOffset' + start_at_latest: + $ref: '#/components/schemas/LatestOffset' + start_at_timestamp: + description: |- + Enables data replication from the first offset on the + source topic/partition where the record's timestamp is + at or after the specified timestamp. + format: date-time + type: string + synced_shadow_topic_properties: + description: |- + The following properties are not allowed to be replicated and adding them + to this list will result in an error: + - `redpanda.remote.readreplica` + - `redpanda.remote.recovery` + - `redpanda.remote.allowgaps` + - `redpanda.virtual.cluster.id` + - `redpanda.leaders.preference` + - `redpanda.cloud_topic.enabled` + + This list is a list of properties in addition to the default properties + that will be synced. See `exclude_default`. + items: + type: string + title: |- + List of topic properties that should be synced from the source topic. + The following properties will always be replicated + - Partition count + - `max.message.bytes` + - `cleanup.policy` + - `timestamp.type` + type: array + title: Options for syncing topic metadata + type: object + TopicPartitionInformation: + properties: + high_watermark: + format: int64 + title: Shadowed partition's HWM + type: string + partition_id: + format: int64 + title: Partition ID + type: string + source_high_watermark: + format: int64 + title: Source partition's HWM + type: string + source_last_stable_offset: + format: int64 + title: Source partition's LSO + type: string + source_last_updated_timestamp: + format: date-time + title: Timestamp of the last time the source partition information was updated + type: string + title: Topic partition information + type: object + UAISpec: + description: Azure user assigned identity. + properties: + name: + title: |- + Naming convention: Between 3 and 128 characters and use Letters, numbers, underscores, and hyphens. Start with letters and numbers. + https://azure.github.io/PSRule.Rules.Azure/en/rules/Azure.Identity.UserAssignedName/ + type: string + required: + - name + type: object + Unspecified: + type: object + UpdateClusterMetadata: + description: Resource describing an in-progress UpdateCluster Operation. + properties: + update_type: + items: + $ref: '#/components/schemas/UpdateClusterType' + title: Update operation types, based on the properties modified in the cluster + type: array + title: UpdateClusterMetadata + type: object + UpdateClusterOperation: description: UpdateClusterOperation is the response of the update cluster rpc. properties: operation: @@ -3087,6 +3758,19 @@ components: $ref: '#/components/schemas/ResourceGroup' title: UpdateResourceGroupResponse is the response of UpdateResourceGroup type: object + UpdateRoleBody: + properties: + role: + $ref: '#/components/schemas/RoleUpdate' + update_mask: + type: string + title: UpdateRoleRequest is the request of UpdateRole + type: object + UpdateRoleResponse: + properties: + role: + $ref: '#/components/schemas/v1.Role' + type: object UpdateServerlessClusterBody: description: UpdateServerlessClusterRequest is the request of UpdateServerlessCluster. type: object @@ -3109,6 +3793,12 @@ components: service_account: $ref: '#/components/schemas/ServiceAccount' type: object + UpdateShadowLinkResponse: + properties: + shadow_link: + $ref: '#/components/schemas/v2.ShadowLink' + title: Response to the update shadow link request + type: object UpdateUserInviteBody: properties: update_mask: @@ -3263,6 +3953,20 @@ components: - name - resource_group type: object + common.v1.TLSSettings: + properties: + do_not_set_sni_hostname: + title: If true, the SNI hostname will not be provided when TLS is used + type: boolean + enabled: + title: Whether or not TLS is enabled + type: boolean + tls_file_settings: + $ref: '#/components/schemas/TLSFileSettings' + tls_pem_settings: + $ref: '#/components/schemas/TLSPEMSettings' + title: TLS settings + type: object rpc.Status: description: Describes errors properties: @@ -3490,6 +4194,32 @@ components: readOnly: true title: Operation type: object + v1.Role: + properties: + created_at: + format: date-time + type: string + description: + description: The description of the role. + example: Billing Admins have access to billing information. + type: string + id: + type: string + is_builtin: + description: Whether the role is a built-in role. Built-in roles cannot be modified or deleted. + type: boolean + name: + description: The unique name of the role. + example: billing_admin + type: string + permissions: + items: + type: string + type: array + updated_at: + format: date-time + type: string + type: object v1.RoleBinding: properties: account_id: @@ -3507,6 +4237,143 @@ components: format: date-time type: string type: object + v2.GetShadowLinkResponse: + properties: + shadow_link: + $ref: '#/components/schemas/v2.ShadowLink' + title: Response to getting a shadow link + type: object + v2.ListShadowLinksResponse: + properties: + shadow_links: + items: + $ref: '#/components/schemas/v2.ShadowLink' + title: The shadow links + type: array + title: All shadow links on the cluster + type: object + v2.ShadowLink: + properties: + configurations: + $ref: '#/components/schemas/ShadowLinkConfigurations' + name: + title: The name of the shadow link + type: string + status: + $ref: '#/components/schemas/ShadowLinkStatus' + uid: + readOnly: true + title: The UUID of the shadow link + type: string + required: + - name + title: A ShadowLink resource + type: object + v2.ShadowLinkClientOptions: + properties: + authentication_configuration: + $ref: '#/components/schemas/AuthenticationConfiguration' + bootstrap_servers: + items: + type: string + title: The bootstrap servers to use + type: array + client_id: + readOnly: true + title: |- + The Client ID for the Kafka RPC requests setn by this cluster to the + source cluster + type: string + connection_timeout_ms: + format: int32 + title: |- + Connection timeout. + If 0 is provided, defaults to 1 second + 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: + format: int32 + title: |- + Fetch max bytes. + If 0 is provided, defaults to 20 MiB + type: integer + fetch_min_bytes: + format: int32 + title: |- + Fetch min bytes. + If 0 is provided, defaults to 5 MiB + type: integer + fetch_partition_max_bytes: + format: int32 + title: |- + Fetch partition max bytes. + If 0 is provided, defaults to 1 MiB + type: integer + fetch_wait_max_ms: + format: int32 + title: |- + Fetch request timeout. + If 0 is provided, defaults to 500ms + type: integer + metadata_max_age_ms: + format: int32 + title: |- + Max metadata age. + If 0 is provided, defaults to 10 seconds + type: integer + retry_backoff_ms: + format: int32 + title: |- + Retry base backoff. + If 0 is provided, defaults to 100ms + type: integer + source_cluster_id: + title: |- + If provided, this is the expected ID of the source cluster. If it does + not match then the connection will be rejected. If provided, this value + must match the `ClusterId` field returned in the Kafka Metadata response + message + type: string + tls_settings: + $ref: '#/components/schemas/common.v1.TLSSettings' + required: + - bootstrap_servers + title: Options for the client link + type: object securitySchemes: auth0: description: RedpandaCloud @@ -4774,6 +5641,32 @@ paths: summary: Update organization tags: - Organization + /v1/permissions: + get: + description: List all available Redpanda Cloud permissions. + operationId: PermissionService_ListPermissions + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListPermissionsResponse' + description: OK + "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 permissions + tags: + - Control Plane Permissions /v1/regions/{cloud_provider}: get: description: List available regions on the different cloud providers. @@ -5245,6 +6138,191 @@ paths: summary: Get role binding tags: - Control Plane Role Bindings + /v1/roles: + get: + description: List Redpanda Cloud roles. + operationId: RoleService_ListRoles + parameters: + - in: query + name: filter.name + schema: + type: string + - in: query + name: page_size + schema: + format: int32 + type: integer + - in: query + name: page_token + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListRolesResponse' + description: OK + "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 roles + tags: + - Control Plane Roles + post: + description: Create a Redpanda Cloud role. + operationId: RoleService_CreateRole + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleRequest' + description: CreateRoleRequest is the request of CreateRole. + required: true + x-originalParamName: body + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleResponse' + description: Role Created + "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: Create role + tags: + - Control Plane Roles + /v1/roles/{id}: + delete: + description: Delete Redpanda Cloud role. + operationId: RoleService_DeleteRole + parameters: + - in: path + name: id + required: true + schema: + type: string + responses: + "204": + content: + application/json: + schema: {} + description: Role was deleted successfully + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: An unexpected error response. + summary: Delete role + tags: + - Control Plane Roles + get: + description: Get Redpanda role. + operationId: RoleService_GetRole + parameters: + - in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetRoleResponse' + description: Ok + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "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 role + tags: + - Control Plane Roles + patch: + description: Update a Redpanda Cloud role. + operationId: RoleService_UpdateRole + parameters: + - in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleBody' + required: true + x-originalParamName: body + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleResponse' + description: Ok + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "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: Update role + tags: + - Control Plane Roles /v1/serverless/clusters: get: description: List Redpanda Serverless clusters. The `filter.` query string parameters find matching clusters that meet all specified conditions. @@ -5500,6 +6578,50 @@ paths: summary: Update serverless cluster tags: - Serverless Clusters + /v1/serverless/clusters/{id}/prometheus/credentials: + get: + description: Get the Redpanda Serverless cluster Prometheus credentials for accessing the metrics scrape endpoint. + operationId: ServerlessClusterService_GetPrometheusCredentials + parameters: + - in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PrometheusCredentials' + description: OK + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Bad Request + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "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 Prometheus Credentials + tags: + - Serverless Clusters /v1/serverless/region: get: description: Get Redpanda Serverless region. @@ -6174,6 +7296,10 @@ tags: name: Serverless Regions - description: See information about the organization the current user belongs to. name: Organization + - description: Manage your Redpanda Cloud organization permissions. + name: Control Plane Permissions + - description: Manage your Redpanda Cloud organization roles. + name: Control Plane Roles - description: Manage role bindings for your cloud organization users. name: Control Plane Role Bindings - description: Manage Redpanda Cloud service accounts. diff --git a/cloud-controlplane/x-topics/cloud-regions.md b/cloud-controlplane/x-topics/cloud-regions.md index cd434fd..7ef1bc3 100644 --- a/cloud-controlplane/x-topics/cloud-regions.md +++ b/cloud-controlplane/x-topics/cloud-regions.md @@ -830,6 +830,19 @@ Usage tiers define the sizing of a cluster and provide tested and guaranteed wor + + germanywestcentral + germanywestcentral-az1,germanywestcentral-az2,germanywestcentral-az3 + + + + northeurope northeurope-az1,northeurope-az2,northeurope-az3 @@ -856,6 +869,19 @@ Usage tiers define the sizing of a cluster and provide tested and guaranteed wor + + swedencentral + swedencentral-az1,swedencentral-az2,swedencentral-az3 + + + + uksouth uksouth-az1,uksouth-az2,uksouth-az3 diff --git a/cloud-dataplane/cloud-dataplane.yaml b/cloud-dataplane/cloud-dataplane.yaml index e79b5cb..0774efb 100644 --- a/cloud-dataplane/cloud-dataplane.yaml +++ b/cloud-dataplane/cloud-dataplane.yaml @@ -18,6 +18,104 @@ components: - OPERATION_CREATE_TOKENS - OPERATION_DESCRIBE_TOKENS type: string + ACLAccessFilter: + properties: + host: + title: |- + The host to match. If not set, will default to match all hosts + with the specified `operation` and `permission_type`. Note that + the asterisk `*` is literal and matches hosts that are set to `*` + type: string + operation: + $ref: '#/components/schemas/ACLOperation' + permission_type: + $ref: '#/components/schemas/ACLPermissionType' + principal: + title: |- + The name of the principal, if not set will default to match + all principals with the specified `operation` and `permission_type` + type: string + title: Filter an ACL based on its access + type: object + ACLFilter: + properties: + access_filter: + $ref: '#/components/schemas/ACLAccessFilter' + resource_filter: + $ref: '#/components/schemas/ACLResourceFilter' + title: A filter for ACLs + type: object + ACLOperation: + enum: + - ACL_OPERATION_ANY + - ACL_OPERATION_READ + - ACL_OPERATION_WRITE + - ACL_OPERATION_CREATE + - ACL_OPERATION_REMOVE + - ACL_OPERATION_ALTER + - ACL_OPERATION_DESCRIBE + - ACL_OPERATION_CLUSTER_ACTION + - ACL_OPERATION_DESCRIBE_CONFIGS + - ACL_OPERATION_ALTER_CONFIGS + - ACL_OPERATION_IDEMPOTENT_WRITE + title: The ACL operation to match + type: string + ACLPattern: + description: |- + - ACL_PATTERN_ANY: Wildcard to match any pattern + - ACL_PATTERN_LITERAL: Match a literal string + - ACL_PATTERN_PREFIXED: Match a prefix + - ACL_PATTERN_MATCH: Match serves as a catch-all for all the names of a topic + the principal is authorized to access + enum: + - ACL_PATTERN_ANY + - ACL_PATTERN_LITERAL + - ACL_PATTERN_PREFIXED + - ACL_PATTERN_MATCH + title: The ACL pattern type + type: string + ACLPermissionType: + enum: + - ACL_PERMISSION_TYPE_ANY + - ACL_PERMISSION_TYPE_ALLOW + - ACL_PERMISSION_TYPE_DENY + title: ACL permission types + type: string + ACLResource: + description: |- + - ACL_RESOURCE_ANY: Wildcard for selecting any ACL resource + - ACL_RESOURCE_CLUSTER: Cluster wide resource + - ACL_RESOURCE_GROUP: Consumer group resource + - ACL_RESOURCE_TOPIC: Topic resource + - ACL_RESOURCE_TXN_ID: Transaction ID resource + - ACL_RESOURCE_SR_SUBJECT: Schema Registry subject resource + - ACL_RESOURCE_SR_REGISTRY: Schema Registry wide resource + - ACL_RESOURCE_SR_ANY: Wildcard to match any SR ACL resource + enum: + - ACL_RESOURCE_ANY + - ACL_RESOURCE_CLUSTER + - ACL_RESOURCE_GROUP + - ACL_RESOURCE_TOPIC + - ACL_RESOURCE_TXN_ID + - ACL_RESOURCE_SR_SUBJECT + - ACL_RESOURCE_SR_REGISTRY + - ACL_RESOURCE_SR_ANY + title: The ACL resource types + type: string + ACLResourceFilter: + properties: + name: + title: |- + Name, if not given will default to match all items in `resource_type`. + Note that asterisk `*` is literal and matches resource ACLs + that are named `*` + type: string + pattern_type: + $ref: '#/components/schemas/ACLPattern' + resource_type: + $ref: '#/components/schemas/ACLResource' + title: A filter to match ACLs for resources + type: object Action: enum: - ACTION_PREPARE @@ -80,6 +178,17 @@ components: type: string title: AnnotatedOption represents an annotated option type: object + AuthenticationConfiguration: + properties: + plain_configuration: + $ref: '#/components/schemas/PlainConfig' + scram_configuration: + $ref: '#/components/schemas/ScramConfig' + title: |- + Authentication config. Supports: + * SASL/SCRAM + * SASL/PLAIN + type: object AuthenticationInfo: properties: mechanism: @@ -292,6 +401,14 @@ components: - COMPONENT_STATUS_EXPERIMENTAL - COMPONENT_STATUS_DEPRECATED type: string + ComponentType: + description: Component type for this tool. + enum: + - COMPONENT_TYPE_PROCESSOR + - COMPONENT_TYPE_CACHE + - COMPONENT_TYPE_INPUT + - COMPONENT_TYPE_OUTPUT + type: string Config: properties: name: @@ -373,6 +490,14 @@ components: nullable: true type: string type: object + ConfigurationYAMLSchema: + properties: + component_type: + $ref: '#/components/schemas/ComponentType' + config_schema: + description: JSON schema of the configuration components that are allowed for MCP Servers. + type: string + type: object ConnectCluster: properties: address: @@ -526,6 +651,30 @@ components: description: Type of connector (sink or source). type: string type: object + ConsumerOffsetSyncOptions: + properties: + effective_interval: + readOnly: true + title: The effective interval for the task + type: string + group_filters: + items: + $ref: '#/components/schemas/NameFilter' + title: The filters + type: array + interval: + title: |- + Sync interval + If 0 provided, defaults to 30 seconds + type: string + paused: + title: |- + Allows user to pause the consumer offset sync task. If paused, then + the task will enter the 'paused' state and not sync consumer offsets from + the source cluster + type: boolean + title: Options for syncing consumer offsets + type: object CreateACLRequest: properties: host: @@ -591,6 +740,11 @@ components: secret: $ref: '#/components/schemas/Secret' type: object + CreateMCPServerResponse: + properties: + mcp_server: + $ref: '#/components/schemas/MCPServer' + type: object CreatePipelineResponse: properties: pipeline: @@ -755,6 +909,8 @@ components: DeleteKafkaConnectSecretResponse: description: DeleteKafkaConnectSecretResponse is the response of DeleteKafkaConnectSecret. type: object + DeleteMCPServerResponse: + type: object DeleteMountTaskResponse: type: object DeletePipelineResponse: @@ -809,6 +965,9 @@ components: - input_topic_name - output_topic_names type: object + EarliestOffset: + description: Start at the earliest offset in the partition. + type: object Entity: properties: entity_name: @@ -1010,6 +1169,15 @@ components: which represents UPPER_SNAKE_CASE. type: string type: object + FilterType: + description: |- + - FILTER_TYPE_INCLUDE: Include the items that match the filter + - FILTER_TYPE_EXCLUDE: Exclude the items that match the filter + enum: + - FILTER_TYPE_INCLUDE + - FILTER_TYPE_EXCLUDE + title: What type of filter this is, include or exclude + type: string GetConnectClusterResponse: properties: cluster: @@ -1038,6 +1206,19 @@ components: secret: $ref: '#/components/schemas/Secret' type: object + GetMCPServerResponse: + properties: + mcp_server: + $ref: '#/components/schemas/MCPServer' + type: object + GetMCPServerServiceConfigSchemaResponse: + properties: + configuration_yamls: + description: The configuration schema for the MCP Server. + items: + $ref: '#/components/schemas/ConfigurationYAMLSchema' + type: array + type: object GetMountTaskResponse: properties: task: @@ -1083,6 +1264,18 @@ components: secret: $ref: '#/components/schemas/Secret' type: object + GetShadowMetricsResponse: + properties: + error_topics: + format: uint64 + type: string + failed_over_topics: + format: uint64 + type: string + total_topics_replicated: + format: uint64 + type: string + type: object GetTopicConfigurationsResponse: properties: configurations: @@ -1246,6 +1439,9 @@ components: - KAFKA_CONNECTION_STATE_CLOSED title: Enums type: string + LatestOffset: + description: Start at the latest offset in the partition. + type: object Link: description: Describes a URL link. properties: @@ -1274,6 +1470,24 @@ components: description: Optional lint type or enum. type: string type: object + LintMCPConfigRequest: + properties: + tools: + additionalProperties: + $ref: '#/components/schemas/Tool' + description: The MCP tool's configuration in YAML format. + type: object + required: + - tools + type: object + LintMCPConfigResponse: + properties: + lint_hints: + additionalProperties: + $ref: '#/components/schemas/LintHint' + description: A list of linting issues. + type: object + type: object LintPipelineConfigRequest: properties: config_yaml: @@ -1411,6 +1625,30 @@ components: response.total_size = 13 type: string type: object + ListMCPServersRequest.Filter: + properties: + display_name_contains: + description: Filter MCP servers by display name. Any MCP servers that partially match this name are returned. + type: string + secret_id: + description: Filter MCP servers by 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". + type: object + type: object + ListMCPServersResponse: + properties: + mcp_servers: + items: + $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: properties: tasks: @@ -1584,6 +1822,23 @@ components: $ref: '#/components/schemas/Secret' type: array type: object + ListShadowLinkTopicsRequest.Filter: + properties: + topic_name_contains: + description: Substring match on shadow topic name. Case-sensitive. + type: string + type: object + ListShadowLinkTopicsResponse: + properties: + next_page_token: + title: Token to retrieve the next page + type: string + shadow_topics: + items: + $ref: '#/components/schemas/v1.ShadowTopic' + title: Shadow topic status information + type: array + type: object ListTopicsRequest.Filter: properties: name_contains: @@ -1674,6 +1929,136 @@ components: description: The localized error message in the above locale. type: string type: object + MCPServer: + description: Defines the MCP server resource. + properties: + description: + description: Optional MCP server description. + type: string + display_name: + description: User-friendly MCP server name. + type: string + id: + description: MCP Server ID. + type: string + resources: + $ref: '#/components/schemas/Resources' + service_account: + $ref: '#/components/schemas/MCPServer.ServiceAccount' + state: + $ref: '#/components/schemas/MCPServer.State' + status: + $ref: '#/components/schemas/MCPServer.Status' + tags: + additionalProperties: + type: string + description: |- + Tags are key-value pairs that can be assigned to a MCP server resource. + They help organize MCP servers and enable filtering when listing them. + type: object + tools: + additionalProperties: + $ref: '#/components/schemas/Tool' + description: The MCP server configuration. + type: object + url: + readOnly: true + title: URL to connect to the MCP server + type: string + required: + - id + - display_name + - tools + - 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 + - client_secret + type: object + MCPServer.State: + description: |- + State of the MCP server. + + - STATE_STARTING: The MCP server is starting. + - STATE_RUNNING: The MCP server is running. + - STATE_STOPPING: The MCP server is in the process of stopping. + - STATE_STOPPED: The MCP server is stopped and in paused state. + - STATE_ERROR: The MCP server encountered an error. + enum: + - STATE_STARTING + - STATE_RUNNING + - STATE_STOPPING + - STATE_STOPPED + - STATE_ERROR + type: string + MCPServer.Status: + description: MCP server status may contain an error message. + properties: + error: + type: string + type: object + MCPServerCreate: + description: MCPServerCreate contains the details for the MCP Server creation request. + properties: + description: + description: MCP server description. + type: string + display_name: + description: User-friendly MCP server name. + type: string + resources: + $ref: '#/components/schemas/Resources' + service_account: + $ref: '#/components/schemas/MCPServer.ServiceAccount' + tags: + additionalProperties: + type: string + description: Optional list of tags to attach to a MCP server. + type: object + tools: + additionalProperties: + $ref: '#/components/schemas/Tool' + description: The MCP server configuration. + type: object + required: + - display_name + - tools + - service_account + type: object + MCPServerUpdate: + properties: + description: + description: MCP server description. + type: string + display_name: + description: User-friendly MCP server name. + type: string + resources: + $ref: '#/components/schemas/Resources' + service_account: + $ref: '#/components/schemas/MCPServer.ServiceAccount' + tags: + additionalProperties: + type: string + description: |- + A map of tags to add, update or delete. + If a tag's value is empty, the server interprets that as a deletion. + type: object + tools: + additionalProperties: + $ref: '#/components/schemas/Tool' + description: The MCP server configuration. + type: object + type: object MatchingACL: properties: error: @@ -1762,6 +2147,20 @@ components: title: ID of mount type: integer type: object + NameFilter: + properties: + filter_type: + $ref: '#/components/schemas/FilterType' + name: + title: |- + The resource name, or "*" + Note if "*", must be the _only_ character + and `pattern_type` must be `PATTERN_TYPE_LITERAL` + type: string + pattern_type: + $ref: '#/components/schemas/PatternType' + title: A filter based on the name of a resource + type: object Options: properties: include_tasks: @@ -1812,6 +2211,15 @@ components: status: $ref: '#/components/schemas/PartitionStatus' type: object + PatternType: + description: |- + - PATTERN_TYPE_LITERAL: Must match the filter exactly + - PATTERN_TYPE_PREFIX: Will match anything that starts with filter + enum: + - PATTERN_TYPE_LITERAL + - PATTERN_TYPE_PREFIX + title: The matching pattern type + type: string PermissionType: description: Whether the operation should be allowed or denied. enum: @@ -1840,7 +2248,7 @@ components: resources: $ref: '#/components/schemas/Resources' service_account: - $ref: '#/components/schemas/ServiceAccount' + $ref: '#/components/schemas/Pipeline.ServiceAccount' state: $ref: '#/components/schemas/Pipeline.State' status: @@ -1862,6 +2270,13 @@ components: - display_name - config_yaml type: object + Pipeline.ServiceAccount: + properties: + client_id: + type: string + client_secret: + type: string + type: object Pipeline.State: description: |- State of the pipeline. @@ -1901,7 +2316,7 @@ components: resources: $ref: '#/components/schemas/Resources' service_account: - $ref: '#/components/schemas/ServiceAccount' + $ref: '#/components/schemas/Pipeline.ServiceAccount' tags: additionalProperties: type: string @@ -1925,7 +2340,7 @@ components: resources: $ref: '#/components/schemas/Resources' service_account: - $ref: '#/components/schemas/ServiceAccount' + $ref: '#/components/schemas/Pipeline.ServiceAccount' tags: additionalProperties: type: string @@ -1946,6 +2361,27 @@ components: secret_id: type: string type: object + PlainConfig: + properties: + password: + title: Password + type: string + password_set: + readOnly: true + title: Indicates that the password has been set + type: boolean + password_set_at: + format: date-time + readOnly: true + title: |- + Timestamp of when the password was last set - only valid if password_set + is true + type: string + username: + title: PLAIN username + type: string + title: PLAIN settings + type: object Policy: properties: host: @@ -2255,6 +2691,12 @@ components: - SASL_MECHANISM_SCRAM_SHA_256 - SASL_MECHANISM_SCRAM_SHA_512 type: string + SchemaRegistrySyncOptions: + description: Options for how the Schema Registry is synced. + properties: + shadow_schema_registry_topic: + $ref: '#/components/schemas/ShadowSchemaRegistryTopic' + type: object Scope: description: Defines the scope of a secret. enum: @@ -2262,6 +2704,39 @@ components: - SCOPE_REDPANDA_CLUSTER - SCOPE_MCP_SERVER - SCOPE_AI_AGENT + - SCOPE_AI_GATEWAY + type: string + ScramConfig: + properties: + password: + title: Password + type: string + password_set: + readOnly: true + title: Indicates that the password has been set + type: boolean + password_set_at: + format: date-time + readOnly: true + title: |- + Timestamp of when the password was last set - only valid if password_set + is true + type: string + scram_mechanism: + $ref: '#/components/schemas/ScramMechanism' + username: + title: SCRAM username + type: string + title: SCRAM settings + type: object + ScramMechanism: + description: |- + - SCRAM_MECHANISM_SCRAM_SHA_256: SCRAM-SHA-256 + - SCRAM_MECHANISM_SCRAM_SHA_512: SCRAM-SHA-512 + enum: + - SCRAM_MECHANISM_SCRAM_SHA_256 + - SCRAM_MECHANISM_SCRAM_SHA_512 + title: Valid SCRAM mechanisms type: string Secret: description: Defines the secret resource. @@ -2281,12 +2756,29 @@ components: title: Secret scopes type: array type: object - ServiceAccount: + SecuritySettingsSyncOptions: properties: - client_id: + acl_filters: + items: + $ref: '#/components/schemas/ACLFilter' + title: ACL filters + type: array + effective_interval: + readOnly: true + title: The effective interval for the task type: string - client_secret: + interval: + title: |- + Sync interval + If 0 provided, defaults to 30 seconds type: string + paused: + title: |- + Allows user to pause the security settings sync task. If paused, + then the task will enter the 'paused' state and will not sync security + settings from the source cluster + type: boolean + title: Options for syncing security settings type: object SetConfiguration: properties: @@ -2350,22 +2842,215 @@ components: type: object SetTopicPartitionsResponse: type: object - Source: + ShadowLinkClientOptions: properties: - ip_address: + authentication_configuration: + $ref: '#/components/schemas/AuthenticationConfiguration' + bootstrap_servers: + items: + type: string + title: The bootstrap servers to use + type: array + client_id: + readOnly: true + title: |- + The Client ID for the Kafka RPC requests sent by this cluster to the + source cluster type: string - port: - format: int64 + connection_timeout_ms: + format: int32 + title: |- + Connection timeout. + If 0 is provided, defaults to 1 second type: integer - type: object - StartPipelineResponse: - properties: - pipeline: - $ref: '#/components/schemas/Pipeline' - type: object - StopPipelineResponse: - properties: - pipeline: + 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: + format: int32 + title: |- + Fetch max bytes. + If 0 is provided, defaults to 20 MiB + type: integer + fetch_min_bytes: + format: int32 + title: |- + Fetch min bytes. + If 0 is provided, defaults to 5 MiB + type: integer + fetch_partition_max_bytes: + format: int32 + title: |- + Fetch partition max bytes. + If 0 is provided, defaults to 5 MiB + type: integer + fetch_wait_max_ms: + format: int32 + title: |- + Fetch request timeout. + If 0 is provided, defaults to 500ms + type: integer + metadata_max_age_ms: + format: int32 + title: |- + Max metadata age. + If 0 is provided, defaults to 10 seconds + type: integer + retry_backoff_ms: + format: int32 + title: |- + Retry base backoff. + If 0 is provided, defaults to 100ms + type: integer + source_cluster_id: + title: |- + If provided, this is the expected ID of the source cluster. If it does + not match then the connection will be rejected. If provided, this value + must match the `ClusterId` field returned in the Kafka Metadata response + message + type: string + tls_settings: + $ref: '#/components/schemas/TLSSettings' + required: + - bootstrap_servers + title: Options for the client link + type: object + ShadowLinkConfigurations: + properties: + client_options: + $ref: '#/components/schemas/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: ShadowLink options + type: object + ShadowLinkState: + description: |- + - SHADOW_LINK_STATE_ACTIVE: Shadow link is active + - SHADOW_LINK_STATE_PAUSED: Shadow link was paused + enum: + - SHADOW_LINK_STATE_ACTIVE + - SHADOW_LINK_STATE_PAUSED + title: State of the shadow link + type: string + ShadowLinkTaskStatus: + properties: + broker_id: + format: int32 + title: The broker the task is running on + type: integer + name: + title: Name of the task + type: string + reason: + title: Reason for task being in state + type: string + shard: + format: int32 + title: The shard the task is running on + type: integer + state: + $ref: '#/components/schemas/TaskState' + title: Status of a task + type: object + ShadowSchemaRegistryTopic: + description: |- + Shadow the entire source cluster's Schema Registry byte-for-byte. + If set, the Shadow Link will attempt to add the `_schemas` + topic to the list of Shadow Topics as long as: + 1. The `_schemas` topic exists on the source cluster + 2. The `_schemas` topic does not exist on the shadow cluster, or it is + empty. + If either of the above conditions are _not_ met, then the `_schemas` + topic will _not_ be shadowed by this cluster. Unsetting this flag will + _not_ remove the `_schemas` topic from shadowing if it has already been + added. Once made a shadow topic, the + `_schemas` topic will be replicated byte-for-byte. To stop shadowing the + `_schemas` topic, unset this field, then either fail-over the topic or + delete it. + type: object + ShadowTopicState: + description: |- + - SHADOW_TOPIC_STATE_ACTIVE: Shadow topic is active + - SHADOW_TOPIC_STATE_FAULTED: Shadow topic has faulted + - SHADOW_TOPIC_STATE_PAUSED: Shadow topic has been paused + - SHADOW_TOPIC_STATE_FAILING_OVER: Shadow topic is in the process of failing over + - SHADOW_TOPIC_STATE_FAILED_OVER: Shadow topic has failed over successfully + - SHADOW_TOPIC_STATE_PROMOTING: Shadow topic is in the process of being promoted + - SHADOW_TOPIC_STATE_PROMOTED: Shadow topic is promoted successfully + enum: + - SHADOW_TOPIC_STATE_ACTIVE + - SHADOW_TOPIC_STATE_FAULTED + - SHADOW_TOPIC_STATE_PAUSED + - SHADOW_TOPIC_STATE_FAILING_OVER + - SHADOW_TOPIC_STATE_FAILED_OVER + - SHADOW_TOPIC_STATE_PROMOTING + - SHADOW_TOPIC_STATE_PROMOTED + title: State of a shadow topic + type: string + Source: + properties: + ip_address: + type: string + port: + format: int64 + type: integer + type: object + StartMCPServerResponse: + properties: + mcp_server: + $ref: '#/components/schemas/MCPServer' + type: object + StartPipelineResponse: + properties: + pipeline: + $ref: '#/components/schemas/Pipeline' + type: object + StopMCPServerResponse: + properties: + mcp_server: + $ref: '#/components/schemas/MCPServer' + type: object + StopPipelineResponse: + properties: + pipeline: $ref: '#/components/schemas/Pipeline' type: object SuccessfulEntity: @@ -2375,12 +3060,60 @@ components: entity_type: $ref: '#/components/schemas/EntityType' type: object + TLSFileSettings: + properties: + ca_path: + title: Path to the CA + type: string + cert_path: + title: Path to the cert + type: string + key_path: + title: |- + Key and Cert are optional but if one is provided, then both must be + Path to the key + type: string + title: TLS file settings + type: object TLSInfo: properties: enabled: title: Whether TLS is in use type: boolean type: object + TLSPEMSettings: + properties: + ca: + title: The CA + type: string + cert: + title: The cert + type: string + key: + title: |- + Key and Cert are optional but if one is provided, then both must be + The key + type: string + key_fingerprint: + readOnly: true + title: The SHA-256 of the key, in base64 format + type: string + title: Used when providing the TLS information in PEM format + type: object + TLSSettings: + properties: + do_not_set_sni_hostname: + title: If true, the SNI hostname will not be provided when TLS is used + type: boolean + enabled: + title: Whether or not TLS is enabled + type: boolean + tls_file_settings: + $ref: '#/components/schemas/TLSFileSettings' + tls_pem_settings: + $ref: '#/components/schemas/TLSPEMSettings' + title: TLS settings + type: object TaskInfo: properties: connector: @@ -2391,6 +3124,21 @@ components: format: int32 type: integer type: object + TaskState: + description: |- + - TASK_STATE_ACTIVE: Task is active + - TASK_STATE_PAUSED: Task was paused + - TASK_STATE_LINK_UNAVAILABLE: Task is unable to communicate with source cluster + - TASK_STATE_NOT_RUNNING: Task is not running + - TASK_STATE_FAULTED: Task is faulted + enum: + - TASK_STATE_ACTIVE + - TASK_STATE_PAUSED + - TASK_STATE_LINK_UNAVAILABLE + - TASK_STATE_NOT_RUNNING + - TASK_STATE_FAULTED + title: Task states + type: string TaskStatus: properties: id: @@ -2407,6 +3155,17 @@ components: description: ID of worker that the task is assigned to. type: string type: object + Tool: + description: A configuration tool for the MCP server. + properties: + component_type: + $ref: '#/components/schemas/ComponentType' + config_yaml: + description: The contents of the configuration tool in YAML format. + type: string + required: + - config_yaml + type: object TopicLocation: properties: topic_location: @@ -2419,6 +3178,89 @@ components: description: Topic name. type: string type: object + TopicMetadataSyncOptions: + properties: + auto_create_shadow_topic_filters: + description: |- + List of filters that indicate which topics should be automatically + created as shadow topics on the shadow cluster. This only controls + automatic creation of shadow topics and does not effect the state of the + mirror topic once it is created. + Literal filters for __consumer_offsets, _redpanda.audit_log and _schemas + will be rejected as well as prefix filters to match topics prefixed with + _redpanda or __redpanda. + Wildcard `*` is permitted only for literal filters and will _not_ match + any topics that start with _redpanda or __redpanda. If users wish to + shadow topics that start with _redpanda or __redpanda, they should + provide a literal filter for those topics. + items: + $ref: '#/components/schemas/NameFilter' + type: array + effective_interval: + readOnly: true + title: The effective interval for the task + type: string + exclude_default: + description: |- + If this is true, then only the properties listed in + `synced_shadow_topic_properties` will be synced. + title: |- + If false, then the following topic properties will be synced by default: + - `compression.type` + - `retention.bytes` + - `retention.ms` + - `delete.retention.ms` + - Replication Factor + - `min.compaction.lag.ms` + - `max.compaction.lag.ms` + type: boolean + interval: + title: |- + How often to sync metadata + If 0 provided, defaults to 30 seconds + type: string + paused: + title: |- + Allows user to pause the topic sync task. If paused, then + the task will enter the 'paused' state and not sync topics or their + properties from the source cluster + type: boolean + start_at_earliest: + $ref: '#/components/schemas/EarliestOffset' + start_at_latest: + $ref: '#/components/schemas/LatestOffset' + start_at_timestamp: + description: |- + Enables data replication from the first offset on the + source topic/partition where the record's timestamp is + at or after the specified timestamp. + format: date-time + type: string + synced_shadow_topic_properties: + description: |- + The following properties are not allowed to be replicated and adding them + to this list will result in an error: + - `redpanda.remote.readreplica` + - `redpanda.remote.recovery` + - `redpanda.remote.allowgaps` + - `redpanda.virtual.cluster.id` + - `redpanda.leaders.preference` + - `redpanda.cloud_topic.enabled` + + This list is a list of properties in addition to the default properties + that will be synced. See `exclude_default`. + items: + type: string + title: |- + List of topic properties that should be synced from the source topic. + The following properties will always be replicated + - Partition count + - `max.message.bytes` + - `cleanup.policy` + - `timestamp.type` + type: array + title: Options for syncing topic metadata + type: object TopicMount: description: |- TopicMount defines the migration of a topic from the cloud storage into this cluster, @@ -2440,6 +3282,30 @@ components: required: - source_topic_reference type: object + TopicPartitionInformation: + properties: + high_watermark: + format: int64 + title: Shadowed partition's HWM + type: string + partition_id: + format: int64 + title: Partition ID + type: string + source_high_watermark: + format: int64 + title: Source partition's HWM + type: string + source_last_stable_offset: + format: int64 + title: Source partition's LSO + type: string + source_last_updated_timestamp: + format: date-time + title: Timestamp of the last time the source partition information was updated + type: string + title: Topic partition information + type: object TransformMetadata: properties: environment_variables: @@ -2503,6 +3369,11 @@ components: secret: $ref: '#/components/schemas/Secret' type: object + UpdateMCPServerResponse: + properties: + mcp_server: + $ref: '#/components/schemas/MCPServer' + type: object UpdateMountTaskBody: properties: action: @@ -2704,6 +3575,69 @@ components: description: Detailed error message. No compatibility guarantees are given for the text contained in this message. type: string type: object + v1.FailOverResponse: + properties: + failed_over_topics: + items: + type: string + title: |- + List of topics that were failed over + If shadow_topic_name was specified in the request, this will contain only that topic + If shadow_topic_name was not specified, this will contain all topics in the shadow link + type: array + name: + title: Name of the shadow link that was failed over + type: string + type: object + v1.GetShadowLinkResponse: + properties: + shadow_link: + $ref: '#/components/schemas/v1.ShadowLink' + type: object + v1.GetShadowTopicResponse: + properties: + shadow_topic: + $ref: '#/components/schemas/v1.ShadowTopic' + type: object + v1.ShadowLink: + properties: + configurations: + $ref: '#/components/schemas/ShadowLinkConfigurations' + name: + title: Return name, configuration, and overall state + type: string + state: + $ref: '#/components/schemas/ShadowLinkState' + synced_shadow_topic_properties: + items: + type: string + type: array + tasks_status: + items: + $ref: '#/components/schemas/ShadowLinkTaskStatus' + type: array + uid: + type: string + type: object + v1.ShadowTopic: + properties: + partitions: + items: + $ref: '#/components/schemas/TopicPartitionInformation' + type: array + state: + $ref: '#/components/schemas/ShadowTopicState' + topic_id: + type: string + topic_name: + type: string + total_lag: + format: int64 + type: string + total_partitions: + format: int32 + type: integer + type: object securitySchemes: auth0: description: RedpandaCloud @@ -4006,6 +4940,7 @@ paths: - SCOPE_REDPANDA_CLUSTER - SCOPE_MCP_SERVER - SCOPE_AI_AGENT + - SCOPE_AI_GATEWAY type: string type: array - description: |- @@ -4258,9 +5193,13 @@ paths: parameters: - description: |- The maximum number of connections to return. If unspecified or 0, a - default value may be applied. Note that paging is currently not fully - supported, and this field only acts as a limit for the first page of data - returned. Subsequent pages of data cannot be requested. + default value may be applied. The server may return fewer connections + than requested due to memory constraints; the limit is set to allow + listing all connections for a single broker. Consider filtering by + node_id to view connections for specific brokers. Note that paging is + currently not fully supported, and this field only acts as a limit for + the first page of data returned. Subsequent pages of data cannot be + requested. in: query name: page_size schema: @@ -4632,22 +5571,23 @@ paths: summary: Retrieve the schema for Redpanda Connect pipeline configurations tags: - Redpanda Connect Pipelines - /v1/redpanda-connect/pipelines: + /v1/redpanda-connect/mcp-servers: get: - description: 'List Redpanda Connect pipelines. Optional: filter based on pipeline name.' - operationId: PipelineService_ListPipelines + description: 'List MCP servers and optionally filter by display name, tags, or secret ID.' + operationId: MCPServerService_ListMCPServers parameters: - - description: Any pipelines that partially match this name will be returned. + - description: Filter MCP servers by name. Any servers that partially match this name are returned. in: query - name: filter.name_contains + name: filter.display_name_contains schema: type: string - - 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 + - description: Filter MCP servers by tags. MCP servers that match all the provided tags are returned. The query format is "filter.tags[key]=value". in: query name: filter.tags[string] schema: type: string - - in: query + - description: Filter MCP servers by secret ID. + in: query name: filter.secret_id schema: type: string @@ -4669,7 +5609,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ListPipelinesResponse' + $ref: '#/components/schemas/ListMCPServersResponse' description: OK "401": content: @@ -4689,25 +5629,25 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: List Redpanda Connect pipelines + summary: List MCP servers tags: - - Redpanda Connect Pipelines + - Remote MCP post: - description: Create a new Redpanda Connect pipeline. - operationId: PipelineService_CreatePipeline + description: Create an MCP server. + operationId: MCPServerService_CreateMCPServer requestBody: content: application/json: schema: - $ref: '#/components/schemas/PipelineCreate' + $ref: '#/components/schemas/MCPServerCreate' required: true - x-originalParamName: pipeline + x-originalParamName: mcp_server responses: "201": content: application/json: schema: - $ref: '#/components/schemas/Pipeline' + $ref: '#/components/schemas/MCPServer' description: OK "401": content: @@ -4727,26 +5667,38 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Create Redpanda Connect pipeline + summary: Create an MCP server tags: - - Redpanda Connect Pipelines - /v1/redpanda-connect/pipelines-by-secrets: - get: - description: Get Redpanda Connect pipelines by secrets. - operationId: PipelineService_GetPipelinesBySecrets + - Remote MCP + /v1/redpanda-connect/mcp-servers/{id}: + delete: + description: Delete an MCP server. + operationId: MCPServerService_DeleteMCPServer + parameters: + - description: MCP server ID. + in: path + name: id + required: true + schema: + type: string responses: - "200": + "204": content: application/json: - schema: - $ref: '#/components/schemas/GetPipelinesBySecretsResponse' - description: OK + schema: {} + description: Deleted "401": content: application/json: schema: $ref: '#/components/schemas/rpc.Status' description: Unauthenticated. + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found "500": content: application/json: @@ -4759,17 +5711,16 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Get Redpanda Connect pipelines by secrets + summary: Delete an MCP server tags: - - Redpanda Connect Pipelines - /v1/redpanda-connect/pipelines-for-secret: + - Remote MCP get: - description: Get Redpanda Connect pipelines for a given secret. - operationId: PipelineService_GetPipelinesForSecret + description: Get a specific MCP server. + operationId: MCPServerService_GetMCPServer parameters: - - description: Secret ID. - in: query - name: secret_id + - description: MCP server ID. + in: path + name: id required: true schema: type: string @@ -4778,7 +5729,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetPipelinesForSecretResponse' + $ref: '#/components/schemas/MCPServer' description: OK "401": content: @@ -4786,6 +5737,12 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: Unauthenticated. + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found "500": content: application/json: @@ -4798,24 +5755,406 @@ paths: schema: $ref: '#/components/schemas/rpc.Status' description: An unexpected error response. - summary: Get Redpanda Connect pipelines for secret + summary: Get an MCP server tags: - - Redpanda Connect Pipelines - /v1/redpanda-connect/pipelines/{id}: - delete: - description: Delete a Redpanda Connect pipeline. - operationId: PipelineService_DeletePipeline + - Remote MCP + put: + description: Edit an MCP server. + operationId: MCPServerService_UpdateMCPServer parameters: - - description: Pipeline ID. + - description: MCP Server ID. in: path name: id required: true schema: type: string - responses: - "204": - content: - application/json: + - description: |- + Specifies which fields should be updated. If not provided, + all fields will be updated. + in: query + name: update_mask + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MCPServerUpdate' + required: true + x-originalParamName: mcp_server + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/MCPServer' + 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: Edit an MCP Server + tags: + - Remote MCP + /v1/redpanda-connect/mcp-servers/{id}:start: + post: + description: Start an existing MCP server. + operationId: MCPServerService_StartMCPServer + parameters: + - description: MCP server ID. + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/MCPServer' + description: Started + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "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: Start an existing MCP server + tags: + - Remote MCP + /v1/redpanda-connect/mcp-servers/{id}:stop: + post: + description: Stop an MCP server. + operationId: MCPServerService_StopMCPServer + parameters: + - description: MCP Server ID. + in: path + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/MCPServer' + description: Stopped + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Unauthenticated. + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/rpc.Status' + description: Not Found + "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: Stop an MCP server + tags: + - Remote MCP + /v1/redpanda-connect/mcp-servers:getConfigSchema: + get: + description: The configuration schema includes all available Redpanda Connect components and processors in this MCP server instance. + operationId: MCPServerService_GetMCPServerServiceConfigSchema + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetMCPServerServiceConfigSchemaResponse' + 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: Retrieve the schema for MCP server configurations + tags: + - Remote MCP + /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. + operationId: MCPServerService_LintMCPConfig + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LintMCPConfigRequest' + required: true + x-originalParamName: body + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/LintMCPConfigResponse' + description: Linting finished. See `lint_hints` for details. + "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: Lint the configuration of an MCP tool + tags: + - Remote MCP + /v1/redpanda-connect/pipelines: + get: + description: 'List Redpanda Connect pipelines. Optional: filter based on pipeline name.' + operationId: PipelineService_ListPipelines + parameters: + - description: Any pipelines that partially match this name will be returned. + in: query + name: filter.name_contains + schema: + type: string + - 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 + - in: query + name: filter.secret_id + 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/ListPipelinesResponse' + 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 Redpanda Connect pipelines + tags: + - Redpanda Connect Pipelines + post: + description: Create a new Redpanda Connect pipeline. + operationId: PipelineService_CreatePipeline + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PipelineCreate' + required: true + x-originalParamName: pipeline + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/Pipeline' + 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: Create Redpanda Connect pipeline + tags: + - Redpanda Connect Pipelines + /v1/redpanda-connect/pipelines-by-secrets: + get: + description: Get Redpanda Connect pipelines by secrets. + operationId: PipelineService_GetPipelinesBySecrets + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetPipelinesBySecretsResponse' + 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 Redpanda Connect pipelines by secrets + tags: + - Redpanda Connect Pipelines + /v1/redpanda-connect/pipelines-for-secret: + get: + description: Get Redpanda Connect pipelines for a given secret. + operationId: PipelineService_GetPipelinesForSecret + parameters: + - description: Secret ID. + in: query + name: secret_id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetPipelinesForSecretResponse' + 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 Redpanda Connect pipelines for secret + tags: + - Redpanda Connect Pipelines + /v1/redpanda-connect/pipelines/{id}: + delete: + description: Delete a Redpanda Connect pipeline. + operationId: PipelineService_DeletePipeline + parameters: + - description: Pipeline ID. + in: path + name: id + required: true + schema: + type: string + responses: + "204": + content: + application/json: schema: {} description: Deleted "401": @@ -5428,6 +6767,7 @@ paths: - SCOPE_REDPANDA_CLUSTER - SCOPE_MCP_SERVER - SCOPE_AI_AGENT + - SCOPE_AI_GATEWAY type: string type: array - description: |- @@ -5528,6 +6868,7 @@ paths: - SCOPE_REDPANDA_CLUSTER - SCOPE_MCP_SERVER - SCOPE_AI_AGENT + - SCOPE_AI_GATEWAY type: string type: array responses: @@ -6263,7 +7604,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' @@ -6679,10 +8020,12 @@ tags: name: Wasm Transforms - description: Manage [connectors](https://docs.redpanda.com/redpanda-cloud/develop/managed-connectors/) and interact with the Kafka Connect API. name: Kafka Connect - - description: Monitoring operations for Redpanda. - name: Monitoring - 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: 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. name: Quotas - description: Manage [secrets](https://docs.redpanda.com/redpanda-cloud/security/secrets) for Redpanda Cloud.