components:
  schemas:
    ACL.Operation:
      description: The operation that is allowed or denied (e.g. READ).
      enum:
        - OPERATION_ANY
        - OPERATION_ALL
        - OPERATION_READ
        - OPERATION_WRITE
        - OPERATION_CREATE
        - OPERATION_DELETE
        - OPERATION_ALTER
        - OPERATION_DESCRIBE
        - OPERATION_CLUSTER_ACTION
        - OPERATION_DESCRIBE_CONFIGS
        - OPERATION_ALTER_CONFIGS
        - OPERATION_IDEMPOTENT_WRITE
        - 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
        - ACTION_EXECUTE
        - ACTION_FINISH
        - ACTION_CANCEL
      type: string
    AddPartitionsToTopicsRequest:
      properties:
        partition_count:
          description: The number of partitions to add for the topics.
          format: int32
          type: integer
        topic_names:
          description: The topic names.
          items:
            type: string
          type: array
        validate_only:
          description: 'Validate the request only, do not execute it.'
          type: boolean
      type: object
    AddPartitionsToTopicsResponse:
      properties:
        statuses:
          description: The status of the operation for each topic.
          items:
            $ref: '#/components/schemas/AlterTopicPartitionStatus'
          type: array
      type: object
    AddTopicPartitionsBody:
      properties:
        partition_count:
          description: The number of partitions to add to the topic.
          format: int32
          type: integer
        validate_only:
          description: 'Validate the request only, do not execute it.'
          type: boolean
      type: object
    AddTopicPartitionsResponse:
      type: object
    AlterTopicPartitionStatus:
      properties:
        error:
          description: The error if any.
          type: string
        success:
          description: Whether the operation was successful.
          type: boolean
        topic_name:
          description: The topic name.
          type: string
      type: object
    AnnotatedOption:
      properties:
        description:
          type: string
        value:
          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:
          $ref: '#/components/schemas/AuthenticationMechanism'
        state:
          $ref: '#/components/schemas/AuthenticationState'
        user_principal:
          title: Authenticated user principal
          type: string
      title: Other Messages
      type: object
    AuthenticationMechanism:
      enum:
        - AUTHENTICATION_MECHANISM_MTLS
        - AUTHENTICATION_MECHANISM_SASL_SCRAM
        - AUTHENTICATION_MECHANISM_SASL_OAUTHBEARER
        - AUTHENTICATION_MECHANISM_SASL_PLAIN
        - AUTHENTICATION_MECHANISM_SASL_GSSAPI
      title: |-
        - AUTHENTICATION_MECHANISM_MTLS: Mutual TLS using client certificates
         - AUTHENTICATION_MECHANISM_SASL_SCRAM: SASL SCRAM
         - AUTHENTICATION_MECHANISM_SASL_OAUTHBEARER: SASL OAUTHBEARER (OAuth 2.0 / OpenID Connect)
         - AUTHENTICATION_MECHANISM_SASL_PLAIN: SASL PLAIN (username/password in plaintext)
         - AUTHENTICATION_MECHANISM_SASL_GSSAPI: SASL GSSAPI (Kerberos)
      type: string
    AuthenticationState:
      enum:
        - AUTHENTICATION_STATE_UNAUTHENTICATED
        - AUTHENTICATION_STATE_SUCCESS
        - AUTHENTICATION_STATE_FAILURE
      type: string
    BadRequest:
      description: |-
        Describes violations in a client request. This error type focuses on the
        syntactic aspects of the request.
      properties:
        field_violations:
          description: Describes all violations in a client request.
          items:
            $ref: '#/components/schemas/FieldViolation'
          type: array
      title: BadRequest
      type: object
    BatchDeleteQuotaRequest:
      properties:
        deletions:
          items:
            $ref: '#/components/schemas/QuotaDeletion'
          type: array
      type: object
    BatchDeleteQuotaResponse:
      properties:
        failed_entities:
          items:
            $ref: '#/components/schemas/FailedEntity'
          type: array
        successful_entities:
          items:
            $ref: '#/components/schemas/SuccessfulEntity'
          type: array
      type: object
    BatchSetQuotaRequest:
      properties:
        settings:
          description: |-
            A list of quota settings to apply. Each setting pairs an entity
            with the specific values to be set for it.
          items:
            $ref: '#/components/schemas/QuotaSetting'
          type: array
      type: object
    BatchSetQuotaResponse:
      properties:
        failed_entities:
          items:
            $ref: '#/components/schemas/FailedEntity'
          type: array
        successful_entities:
          items:
            $ref: '#/components/schemas/SuccessfulEntity'
          type: array
      type: object
    BloblangFunctionSpec:
      description: BloblangFunctionSpec represents a Bloblang function specification.
      properties:
        categories:
          items:
            type: string
          type: array
        description:
          type: string
        examples:
          items:
            type: string
          type: array
        name:
          type: string
        params:
          $ref: '#/components/schemas/ParamSpec'
        status:
          type: string
        version:
          type: string
      type: object
    BloblangMethodSpec:
      description: BloblangMethodSpec represents a Bloblang method specification.
      properties:
        categories:
          items:
            type: string
          type: array
        description:
          type: string
        examples:
          items:
            type: string
          type: array
        name:
          type: string
        params:
          $ref: '#/components/schemas/ParamSpec'
        status:
          type: string
        version:
          type: string
      type: object
    ComponentList:
      description: ComponentList contains the structured component data.
      properties:
        bloblang_functions:
          items:
            $ref: '#/components/schemas/BloblangFunctionSpec'
          type: array
        bloblang_methods:
          items:
            $ref: '#/components/schemas/BloblangMethodSpec'
          type: array
        buffers:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        caches:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        inputs:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        metrics:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        outputs:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        processors:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        rate_limits:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        scanners:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        tracers:
          items:
            $ref: '#/components/schemas/ComponentSpec'
          type: array
        version:
          type: string
      type: object
    ComponentSpec:
      description: ComponentSpec represents a component specification.
      properties:
        categories:
          items:
            type: string
          type: array
        config:
          $ref: '#/components/schemas/FieldSpec'
        description:
          type: string
        examples:
          items:
            type: string
          type: array
        footnotes:
          type: string
        name:
          type: string
        status:
          $ref: '#/components/schemas/ComponentStatus'
        summary:
          type: string
        type:
          type: string
        version:
          type: string
      type: object
    ComponentStatus:
      description: ComponentStatus represents the stability level of a component.
      enum:
        - COMPONENT_STATUS_STABLE
        - COMPONENT_STATUS_BETA
        - 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:
          description: A topic-level config key (e.g. `segment.bytes`).
          type: string
        value:
          description: A topic-level config value (e.g. 1073741824).
          nullable: true
          type: string
      type: object
    ConfigAlterOperation:
      enum:
        - CONFIG_ALTER_OPERATION_SET
        - CONFIG_ALTER_OPERATION_DELETE
        - CONFIG_ALTER_OPERATION_APPEND
        - CONFIG_ALTER_OPERATION_SUBTRACT
      type: string
    ConfigSource:
      enum:
        - CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG
        - CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG
        - CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG
        - CONFIG_SOURCE_STATIC_BROKER_CONFIG
        - CONFIG_SOURCE_DEFAULT_CONFIG
        - CONFIG_SOURCE_DYNAMIC_BROKER_LOGGER_CONFIG
      type: string
    ConfigSynonym:
      properties:
        name:
          type: string
        source:
          $ref: '#/components/schemas/ConfigSource'
        value:
          nullable: true
          type: string
      type: object
    ConfigType:
      enum:
        - CONFIG_TYPE_BOOLEAN
        - CONFIG_TYPE_STRING
        - CONFIG_TYPE_INT
        - CONFIG_TYPE_SHORT
        - CONFIG_TYPE_LONG
        - CONFIG_TYPE_DOUBLE
        - CONFIG_TYPE_LIST
        - CONFIG_TYPE_CLASS
        - CONFIG_TYPE_PASSWORD
      type: string
    Configuration:
      properties:
        config_synonyms:
          description: |-
            If no config value is set at the topic level, it will inherit the value
            set at the broker or cluster level. `name` is the corresponding config
            key whose value is inherited. `source` indicates whether the inherited
            config is default, broker, etc.
          items:
            $ref: '#/components/schemas/ConfigSynonym'
          type: array
        documentation:
          description: Config documentation.
          nullable: true
          type: string
        name:
          description: A topic-level config key (e.g. `segment.bytes`).
          type: string
        read_only:
          description: 'Whether the config is read-only, or is dynamic and can be altered.'
          type: boolean
        sensitive:
          description: Whether this is a sensitive config key and value.
          type: boolean
        source:
          $ref: '#/components/schemas/ConfigSource'
        type:
          $ref: '#/components/schemas/ConfigType'
        value:
          description: A topic-level config value (e.g. 1073741824).
          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:
          description: The host address of the Kafka Connect cluster.
          type: string
        info:
          $ref: '#/components/schemas/ConnectCluster.Info'
        name:
          description: 'Unique name of connect cluster. For Redpanda Cloud, the value is `redpanda`.'
          type: string
        plugins:
          items:
            $ref: '#/components/schemas/ConnectorPlugin'
          type: array
      type: object
    ConnectCluster.Info:
      properties:
        commit:
          description: The git commit ID of the connect worker source code.
          type: string
        kafka_cluster_id:
          description: Cluster ID.
          type: string
        version:
          description: Connect worker version.
          type: string
      type: object
    Connector:
      properties:
        state:
          description: State of the connector instance.
          type: string
        trace:
          description: String value of stack trace.
          type: string
        worker_id:
          description: ID of worker that the connector is assigned to.
          type: string
      type: object
    ConnectorError:
      properties:
        content:
          description: Detailed description of the error.
          type: string
        title:
          description: Short description of the error.
          type: string
        type:
          $ref: '#/components/schemas/ConnectorError.Type'
      title: |-
        ConnectorError is the error of a connector, this is holistic error
        abstraction, made parsing the error trace of connector or Task
      type: object
    ConnectorError.Type:
      description: Error level.
      enum:
        - TYPE_ERROR
        - TYPE_WARNING
      type: string
    ConnectorHolisticState:
      description: |-
        State of a connector or one of its tasks, as described in the [Kafka Connect documentation](https://kafka.apache.org/documentation.html#connect_administration). Takes into account not just the state of the connector instance itself, but also the tasks within the connector.

         - CONNECTOR_HOLISTIC_STATE_PAUSED: The connector or task has been administratively paused.
         - CONNECTOR_HOLISTIC_STATE_RESTARTING: The connector or task is restarting.
         - CONNECTOR_HOLISTIC_STATE_DESTROYED: The connector is destroyed, regardless of any tasks.
         - CONNECTOR_HOLISTIC_STATE_STOPPED: The connector or task has been stopped.
         - CONNECTOR_HOLISTIC_STATE_UNASSIGNED: - The connector or task has not yet been assigned to a worker,
        - THe connector is running, but there are unassigned tasks.
         - CONNECTOR_HOLISTIC_STATE_HEALTHY: The connector is running, > 0 tasks, all of them in running state.
         - CONNECTOR_HOLISTIC_STATE_UNHEALTHY: - The connector has failed,
        - The connector is running, but has no tasks,
        - Connector is running and has tasks, but all tasks have failed.
         - CONNECTOR_HOLISTIC_STATE_DEGRADED: The connector is running and has tasks, and at least one task, but not all, have failed.
         - CONNECTOR_HOLISTIC_STATE_UNKNOWN: The connector or task state could not be determined.
      enum:
        - CONNECTOR_HOLISTIC_STATE_PAUSED
        - CONNECTOR_HOLISTIC_STATE_RESTARTING
        - CONNECTOR_HOLISTIC_STATE_DESTROYED
        - CONNECTOR_HOLISTIC_STATE_STOPPED
        - CONNECTOR_HOLISTIC_STATE_UNASSIGNED
        - CONNECTOR_HOLISTIC_STATE_HEALTHY
        - CONNECTOR_HOLISTIC_STATE_UNHEALTHY
        - CONNECTOR_HOLISTIC_STATE_DEGRADED
        - CONNECTOR_HOLISTIC_STATE_UNKNOWN
      type: string
    ConnectorInfoStatus:
      properties:
        info:
          $ref: '#/components/schemas/ConnectorSpec'
        name:
          description: Name of connector.
          type: string
        status:
          $ref: '#/components/schemas/ConnectorStatus'
      type: object
    ConnectorPlugin:
      properties:
        class:
          type: string
        type:
          type: string
        version:
          type: string
      type: object
    ConnectorSpec:
      description: |-
        Connector specifications as defined in the Kafka Connect
        API. You may include this in the request body when creating a new connector.
      properties:
        config:
          additionalProperties:
            type: string
          description: Connector configuration properties.
          type: object
        name:
          description: Name of connector.
          type: string
        tasks:
          items:
            $ref: '#/components/schemas/TaskInfo'
          readOnly: true
          type: array
        type:
          readOnly: true
          type: string
      required:
        - name
        - config
      type: object
    ConnectorStatus:
      properties:
        connector:
          $ref: '#/components/schemas/Connector'
        errors:
          description: List of parsed connectors' and tasks' errors.
          items:
            $ref: '#/components/schemas/ConnectorError'
          type: array
        holistic_state:
          $ref: '#/components/schemas/ConnectorHolisticState'
        name:
          description: Name of connector.
          type: string
        tasks:
          description: 'Status of connector tasks. For more information, see the [https://docs.redpanda.com/current/deploy/deployment-option/cloud/managed-connectors/monitor-connectors/#connector-tasks](Monitor Connectors) documentation.'
          items:
            $ref: '#/components/schemas/TaskStatus'
          type: array
        type:
          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:
          description: |-
            The host address to use for this ACL. To allow a principal
            access from multiple hosts, you must create an ACL for each host.
          type: string
        operation:
          $ref: '#/components/schemas/ACL.Operation'
        permission_type:
          $ref: '#/components/schemas/PermissionType'
        principal:
          description: |-
            The user for whom this ACL applies. With the Kafka simple
            authorizer, you must include the prefix "User:" with the user name.
          type: string
        resource_name:
          description: |-
            The name of the resource this ACL targets.
            For requests with resource_type CLUSTER, this will default to "kafka-cluster".
          type: string
        resource_pattern_type:
          $ref: '#/components/schemas/ResourcePatternType'
        resource_type:
          $ref: '#/components/schemas/CreateACLResourceType'
      required:
        - resource_type
        - resource_pattern_type
        - principal
        - host
        - operation
        - permission_type
      type: object
    CreateACLResponse:
      type: object
    CreateConnectorResponse:
      properties:
        connector:
          $ref: '#/components/schemas/ConnectorSpec'
      type: object
    CreateKafkaConnectSecretBody:
      description: CreateKafkaConnectSecretRequest is the request of CreateKafkaConnectSecret.
      properties:
        labels:
          additionalProperties:
            type: string
          description: Secret labels.
          type: object
        name:
          description: Name of connector.
          type: string
        secret_data:
          description: The secret data. Must be Base64-encoded.
          format: byte
          type: string
      required:
        - name
        - secret_data
      type: object
    CreateKafkaConnectSecretResponse:
      description: CreateKafkaConnectSecretResponse is the response of CreateKafkaConnectSecret.
      properties:
        secret:
          $ref: '#/components/schemas/Secret'
      type: object
    CreateMCPServerResponse:
      properties:
        mcp_server:
          $ref: '#/components/schemas/MCPServer'
      type: object
    CreatePipelineResponse:
      properties:
        pipeline:
          $ref: '#/components/schemas/Pipeline'
      type: object
    CreateRoleResponse:
      description: CreateRoleResponse is the response for CreateRole.
      properties:
        role:
          $ref: '#/components/schemas/Role'
      type: object
    CreateSecretRequest:
      description: CreateSecretRequest is the request of CreateSecret.
      properties:
        id:
          description: Secret identifier.
          type: string
        labels:
          additionalProperties:
            type: string
          description: Secret labels.
          type: object
        scopes:
          items:
            $ref: '#/components/schemas/Scope'
          title: Secret scopes
          type: array
        secret_data:
          description: The secret data. Must be Base64-encoded.
          format: byte
          type: string
      required:
        - secret_data
      type: object
    CreateSecretResponse:
      description: CreateSecretResponse is the response of CreateSecret.
      properties:
        secret:
          $ref: '#/components/schemas/Secret'
      type: object
    CreateTopicRequest.Topic:
      properties:
        configs:
          description: |-
            An array of key-value config pairs for a topic.
            These correspond to Kafka topic-level configs.
          items:
            $ref: '#/components/schemas/Config'
          type: array
        name:
          description: Name of topic.
          type: string
        partition_count:
          description: |-
            The number of partitions to give the topic. If specifying
            partitions manually (see `replica_assignments`), set to -1.
            Or, to use the cluster default partition count, set to null.
          format: int32
          nullable: true
          type: integer
        replica_assignments:
          description: |-
            Manually specify broker ID assignments for partition replicas. If manually assigning replicas, both `replication_factor` and
            `partition_count` must be -1.
          items:
            $ref: '#/components/schemas/ReplicaAssignment'
          type: array
        replication_factor:
          description: |-
            The number of replicas every partition must have.
            If specifying partitions manually (see `replica_assignments`), set to -1.
            Or, to use the cluster default replication factor, set to null.
          format: int32
          nullable: true
          type: integer
      type: object
    CreateTopicResponse:
      properties:
        partition_count:
          description: |-
            The number of partitions created for the topic.
            This field has a default value of -1, which may be returned if the broker
            does not support v5+ of this request which added support for returning
            this information.
          format: int32
          type: integer
        replication_factor:
          description: |-
            The number of replicas per topic partition.
            This field has a default of -1, which may be returned if the broker
            does not support v5+ of this request which added support for returning
            this information.
          format: int32
          type: integer
        topic_name:
          description: Name of topic.
          type: string
      type: object
    CreateUserRequest.User:
      properties:
        mechanism:
          $ref: '#/components/schemas/SASLMechanism'
        name:
          description: Username.
          type: string
        password:
          description: Password.
          type: string
      type: object
    CreateUserResponse:
      properties:
        user:
          $ref: '#/components/schemas/CreateUserResponse.User'
      type: object
    CreateUserResponse.User:
      properties:
        mechanism:
          $ref: '#/components/schemas/SASLMechanism'
        name:
          title: Name of newly-created user
          type: string
      type: object
    DeleteACLsRequest.Filter:
      properties:
        host:
          description: |-
            The host address to use for this ACL. To allow a principal
            access from multiple hosts, you must create an ACL for each host.
          nullable: true
          type: string
        operation:
          $ref: '#/components/schemas/ACL.Operation'
        permission_type:
          $ref: '#/components/schemas/PermissionType'
        principal:
          description: |-
            The user for whom this ACL applies. With the Kafka simple
            authorizer, you must include the prefix "User:" with the user name.
          nullable: true
          type: string
        resource_name:
          description: The name of the resource this ACL targets.
          nullable: true
          type: string
        resource_pattern_type:
          $ref: '#/components/schemas/ResourcePatternType'
        resource_type:
          $ref: '#/components/schemas/ResourceType'
      required:
        - resource_type
        - resource_pattern_type
        - operation
        - permission_type
      type: object
    DeleteACLsResponse:
      properties:
        matching_acls:
          items:
            $ref: '#/components/schemas/MatchingACL'
          type: array
      type: object
    DeleteKafkaConnectSecretResponse:
      description: DeleteKafkaConnectSecretResponse is the response of DeleteKafkaConnectSecret.
      type: object
    DeleteMCPServerResponse:
      type: object
    DeleteMountTaskResponse:
      type: object
    DeletePipelineResponse:
      type: object
    DeleteQuotaRequest:
      properties:
        entity:
          $ref: '#/components/schemas/RequestQuotaEntity'
        value_type:
          $ref: '#/components/schemas/ValueType'
      type: object
    DeleteQuotaResponse:
      type: object
    DeleteRoleResponse:
      description: DeleteRoleResponse is the response for DeleteRole.
      type: object
    DeleteSecretResponse:
      description: DeleteSecretResponse is the response of DeleteSecret.
      type: object
    DeleteTopicResponse:
      type: object
    DeleteTransformResponse:
      type: object
    DeleteUserResponse:
      type: object
    DeployTransformRequest:
      description: |-
        Metadata required to deploy a new Wasm
        transform in a Redpanda cluster.
      properties:
        environment_variables:
          description: The environment variables you want to apply to your transform's environment
          items:
            $ref: '#/components/schemas/EnvironmentVariable'
          type: array
        input_topic_name:
          description: The input topic to apply the transform to.
          example: orders
          type: string
        name:
          description: Name of the transform.
          example: redact-payment-details-in-orders
          type: string
        output_topic_names:
          description: Output topic to write the transform results to.
          example: orders-redacted
          items:
            type: string
          type: array
      required:
        - name
        - input_topic_name
        - output_topic_names
      type: object
    EarliestOffset:
      description: Start at the earliest offset in the partition.
      type: object
    Entity:
      properties:
        entity_name:
          type: string
        entity_type:
          $ref: '#/components/schemas/EntityType'
      type: object
    EntityType:
      description: |-
        The type of entity that the quota applies to.

         - ENTITY_TYPE_USER: Not supported in Redpanda
         - ENTITY_TYPE_IP: Not supported in Redpanda
      enum:
        - ENTITY_TYPE_CLIENT_ID
        - ENTITY_TYPE_CLIENT_ID_PREFIX
        - ENTITY_TYPE_USER
        - ENTITY_TYPE_IP
      type: string
    EnvironmentVariable:
      properties:
        key:
          description: The key of your environment variable.
          example: LOG_LEVEL
          type: string
        value:
          description: The value of your environment variable.
          example: DEBUG
          type: string
      required:
        - key
        - value
      type: object
    ErrorInfo:
      description: |-
        Describes the cause of the error with structured details.

        Example of an error when contacting the "pubsub.googleapis.com" API when it
        is not enabled:

            { "reason": "API_DISABLED"
              "domain": "googleapis.com"
              "metadata": {
                "resource": "projects/123",
                "service": "pubsub.googleapis.com"
              }
            }

        This response indicates that the pubsub.googleapis.com API is not enabled.

        Example of an error that is returned when attempting to create a Spanner
        instance in a region that is out of stock:

            { "reason": "STOCKOUT"
              "domain": "spanner.googleapis.com",
              "metadata": {
                "availableRegions": "us-central1,us-east2"
              }
            }
      properties:
        domain:
          description: |-
            The logical grouping to which the "reason" belongs. The error domain
            is typically the registered service name of the tool or product that
            generates the error. Example: "pubsub.googleapis.com". If the error is
            generated by some common infrastructure, the error domain must be a
            globally unique value that identifies the infrastructure. For Google API
            infrastructure, the error domain is "googleapis.com".
          type: string
        metadata:
          additionalProperties:
            type: string
          description: |-
            Additional structured details about this error.

            Keys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should
            ideally be lowerCamelCase. Also, they must be limited to 64 characters in
            length. When identifying the current value of an exceeded limit, the units
            should be contained in the key, not the value.  For example, rather than
            `{"instanceLimit": "100/request"}`, should be returned as,
            `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of
            instances that can be created in a single (batch) request.
          type: object
        reason:
          description: |-
            The reason of the error. This is a constant value that identifies the
            proximate cause of the error. Error reasons are unique within a particular
            domain of errors. This should be at most 63 characters and match a
            regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents
            UPPER_SNAKE_CASE.
          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:
          type: string
        entity_type:
          $ref: '#/components/schemas/EntityType'
        error_code:
          format: int32
          type: integer
        error_message:
          type: string
      type: object
    FieldSpec:
      description: FieldSpec represents a field specification.
      properties:
        advanced:
          type: boolean
        annotated_options:
          items:
            $ref: '#/components/schemas/AnnotatedOption'
          type: array
        children:
          items:
            $ref: '#/components/schemas/FieldSpec'
          type: array
        default_value:
          type: string
        deprecated:
          type: boolean
        description:
          type: string
        examples:
          items:
            type: string
          type: array
        interpolated:
          items:
            type: string
          type: array
        kind:
          type: string
        name:
          type: string
        optional:
          type: boolean
        type:
          type: string
        version:
          type: string
      type: object
    FieldViolation:
      description: A message type used to describe a single bad request field.
      properties:
        description:
          description: A description of why the request element is bad.
          type: string
        field:
          description: |-
            A path that leads to a field in the request body. The value will be a
            sequence of dot-separated identifiers that identify a protocol buffer
            field.

            Consider the following:

                message CreateContactRequest {
                  message EmailAddress {
                    enum Type {
                      TYPE_UNSPECIFIED = 0;
                      HOME = 1;
                      WORK = 2;
                    }

                    optional string email = 1;
                    repeated EmailType type = 2;
                  }

                  string full_name = 1;
                  repeated EmailAddress email_addresses = 2;
                }

            In this example, in proto `field` could take one of the following values:

            * `full_name` for a violation in the `full_name` value
            * `email_addresses[1].email` for a violation in the `email` field of the
              first `email_addresses` message
            * `email_addresses[3].type[2]` for a violation in the second `type`
              value in the third `email_addresses` message.

            In JSON, the same values are represented as:

            * `fullName` for a violation in the `fullName` value
            * `emailAddresses[1].email` for a violation in the `email` field of the
              first `emailAddresses` message
            * `emailAddresses[3].type[2]` for a violation in the second `type`
              value in the third `emailAddresses` message.
          type: string
        localized_message:
          $ref: '#/components/schemas/LocalizedMessage'
        reason:
          description: |-
            The reason of the field-level error. This is a constant value that
            identifies the proximate cause of the field-level error. It should
            uniquely identify the type of the FieldViolation within the scope of the
            google.rpc.ErrorInfo.domain. This should be at most 63
            characters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`,
            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:
          $ref: '#/components/schemas/ConnectCluster'
      type: object
    GetConnectorConfigResponse:
      properties:
        config:
          additionalProperties:
            type: string
          type: object
      type: object
    GetConnectorResponse:
      properties:
        connector:
          $ref: '#/components/schemas/ConnectorSpec'
      type: object
    GetConnectorStatusResponse:
      properties:
        status:
          $ref: '#/components/schemas/ConnectorStatus'
      type: object
    GetKafkaConnectSecretResponse:
      description: GetKafkaConnectSecretResponse is the response of GetKafkaConnectSecret.
      properties:
        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:
          $ref: '#/components/schemas/MountTask'
      type: object
    GetPipelineResponse:
      properties:
        pipeline:
          $ref: '#/components/schemas/Pipeline'
      type: object
    GetPipelineServiceConfigSchemaResponse:
      properties:
        config_schema:
          description: JSON schema of the configuration components that are allowed for Connect pipelines.
          type: string
      type: object
    GetPipelinesBySecretsResponse:
      properties:
        pipelines_for_secret:
          items:
            $ref: '#/components/schemas/PipelinesForSecret'
          type: array
      type: object
    GetPipelinesForSecretResponse:
      properties:
        pipelines_for_secret:
          $ref: '#/components/schemas/PipelinesForSecret'
      type: object
    GetRoleResponse:
      description: GetRoleResponse is the response to GetRole.
      properties:
        members:
          description: Members assigned to the role.
          items:
            $ref: '#/components/schemas/RoleMembership'
          type: array
        role:
          $ref: '#/components/schemas/Role'
      type: object
    GetSecretResponse:
      description: GetSecretResponse is the response of GetSecret.
      properties:
        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:
          items:
            $ref: '#/components/schemas/Configuration'
          type: array
      type: object
    GetTransformResponse:
      properties:
        transform:
          $ref: '#/components/schemas/TransformMetadata'
      type: object
    Help:
      description: |-
        Provides links to documentation or for performing an out of band action.

        For example, if a quota check failed with an error indicating the calling
        project hasn't enabled the accessed service, this can contain a URL pointing
        directly to the right place in the developer console to flip the bit.
      properties:
        links:
          description: URL(s) pointing to additional information on handling the current error.
          items:
            $ref: '#/components/schemas/Link'
          type: array
      title: Help
      type: object
    InFlightRequests:
      properties:
        has_more_requests:
          description: |-
            Whether there are more in-flight requests than those in
            `sampled_in_flight_requests`.
          type: boolean
        sampled_in_flight_requests:
          items:
            $ref: '#/components/schemas/Request'
          title: 'A sample (e.g., the 5 latest) of the currently in-flight requests'
          type: array
      type: object
    KafkaConnection:
      properties:
        api_versions:
          additionalProperties:
            format: int32
            type: integer
          description: |-
            This map records, for each Kafka API, the highest version number observed
            in requests on this connection. It can be useful for understanding which
            protocol versions a client supports or has negotiated with the broker.
            Only APIs that were actually used (i.e. at least one request was seen)
            are included.

            Example:
              { 0: 11, 1: 13 }
            means that for API key 0 (Produce), version 11 was the highest seen,
            and for API key 1 (Fetch), version 13 was the highest seen.

            Reference:
            - https://kafka.apache.org/0101/protocol.html#protocol_api_keys
            - https://kafka.apache.org/0101/protocol.html#protocol_compatibility
          type: object
        authentication_info:
          $ref: '#/components/schemas/AuthenticationInfo'
        client_id:
          description: |-
            Client identifier included in every request sent by the Kafka client.
            This is typically a configurable property (client.id) set by the
            application when creating a producer or consumer, and is often used for
            metrics, quotas, and debugging.
          type: string
        client_software_name:
          description: |-
            Name of the client library, reported automatically in ApiVersions v3+
            requests. This is set by the client implementation and is not typically
            configurable by applications.
          type: string
        client_software_version:
          description: |-
            Version of the client library, reported automatically in ApiVersions v3+
            requests. Like client_software_name, this is set by the
            client and not usually configurable by applications.
          type: string
        close_time:
          description: |-
            When the connection was closed. This field is set only when the
            connection state is "closed".
          format: date-time
          type: string
        group_id:
          description: |-
            Most recent group ID seen in requests sent over this connection. This
            typically refers to a consumer group, but the Kafka group protocol is
            more general and may also be used by other types of clients that
            coordinate membership and assignments through the broker.
          type: string
        group_instance_id:
          description: |-
            Most recent group instance ID seen in requests sent over this connection.
            This is used when static membership is enabled, allowing a specific
            client instance to retain its group membership across restarts.
          type: string
        group_member_id:
          description: |-
            Most recent group member ID seen in requests sent over this connection.
            This is the unique identifier assigned by the broker to a particular
            member of the group.
          type: string
        idle_duration:
          title: How long the connection has been idle (no in-flight requests)
          type: string
        in_flight_requests:
          $ref: '#/components/schemas/InFlightRequests'
        listener_name:
          description: |-
            Name of the Kafka listener that accepted this connection.
            A listener is a named broker endpoint (for example, "internal",
            "external", or "sasl_tls"). Each listener defines its network address and
            enforces its protocol and authentication policy.
          type: string
        node_id:
          format: int32
          title: Broker node ID
          type: integer
        open_time:
          format: date-time
          title: When the broker accepted the connection
          type: string
        recent_request_statistics:
          $ref: '#/components/schemas/RequestStatistics'
        shard_id:
          format: int64
          title: Broker shard that handles the connection
          type: integer
        source:
          $ref: '#/components/schemas/Source'
        state:
          $ref: '#/components/schemas/KafkaConnectionState'
        tls_info:
          $ref: '#/components/schemas/TLSInfo'
        total_request_statistics:
          $ref: '#/components/schemas/RequestStatistics'
        transactional_id:
          title: Most recent transactional ID seen in requests sent over this connection
          type: string
        uid:
          title: Kafka connection UUID
          type: string
      title: Kafka connection details for a broker
      type: object
    KafkaConnectionState:
      description: |-
        - KAFKA_CONNECTION_STATE_OPEN: The connection is accepting requests.
         - KAFKA_CONNECTION_STATE_ABORTING: The connection is aborting ongoing requests and about to be closed.
        This is a transient state between open and closed that should rarely be
        observable under normal circumstances.
         - KAFKA_CONNECTION_STATE_CLOSED: The connection has been closed.
      enum:
        - KAFKA_CONNECTION_STATE_OPEN
        - KAFKA_CONNECTION_STATE_ABORTING
        - 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:
        description:
          description: Describes what the link offers.
          type: string
        url:
          description: The URL of the link.
          type: string
      type: object
    LintHint:
      description: LintHint is a generic linting hint.
      properties:
        column:
          description: Column number of the lint.
          format: int32
          type: integer
        hint:
          description: The hint message.
          type: string
        line:
          description: Line number of the lint.
          format: int32
          type: integer
        lint_type:
          description: Optional lint type or enum.
          type: string
      type: object
    LintMCPConfigRequest:
      properties:
        tools:
          additionalProperties:
            $ref: '#/components/schemas/Tool'
          description: Map of tool names to their configurations. Each tool contains YAML configuration.
          type: object
      required:
        - tools
      type: object
    LintMCPConfigResponse:
      properties:
        lint_hints:
          additionalProperties:
            $ref: '#/components/schemas/LintHint'
          description: Map of tool names to their linting issues. Empty if no issues are found.
          type: object
      type: object
    LintPipelineConfigRequest:
      properties:
        config_yaml:
          description: |-
            The Redpanda Connect pipeline configuration in YAML format.
            See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation
            for more details.
          type: string
      required:
        - config_yaml
      type: object
    LintPipelineConfigResponse:
      properties:
        lint_hints:
          description: A list of linting issues.
          items:
            $ref: '#/components/schemas/LintHint'
          type: array
      type: object
    ListACLsRequest.Filter:
      properties:
        host:
          description: |-
            The host address to use for this ACL. To allow a principal
            access from multiple hosts, you must create an ACL for each host.
          nullable: true
          type: string
        operation:
          $ref: '#/components/schemas/ACL.Operation'
        permission_type:
          $ref: '#/components/schemas/PermissionType'
        principal:
          description: |-
            The user for whom this ACL applies. With the Kafka simple
            authorizer, you must include the prefix "User:" with the user name.
          nullable: true
          type: string
        resource_name:
          description: The name of the resource this ACL targets.
          nullable: true
          type: string
        resource_pattern_type:
          $ref: '#/components/schemas/ResourcePatternType'
        resource_type:
          $ref: '#/components/schemas/ResourceType'
      type: object
    ListACLsResponse:
      properties:
        resources:
          items:
            $ref: '#/components/schemas/ListACLsResponse.Resource'
          type: array
      type: object
    ListACLsResponse.Resource:
      properties:
        acls:
          items:
            $ref: '#/components/schemas/Policy'
          type: array
        resource_name:
          description: The name of the resource this ACL targets.
          type: string
        resource_pattern_type:
          $ref: '#/components/schemas/ResourcePatternType'
        resource_type:
          $ref: '#/components/schemas/ResourceType'
      type: object
    ListComponentsResponse:
      properties:
        components:
          $ref: '#/components/schemas/ComponentList'
      type: object
    ListConnectClustersResponse:
      properties:
        clusters:
          items:
            $ref: '#/components/schemas/ConnectCluster'
          type: array
      type: object
    ListConnectorTopicsResponse:
      properties:
        topics:
          description: Topic names.
          items:
            type: string
          type: array
      type: object
    ListConnectorsResponse:
      properties:
        connectors:
          description: 'List of connectors, where the parent key is the connector name.'
          items:
            $ref: '#/components/schemas/ConnectorInfoStatus'
          type: array
        next_page_token:
          description: Page Token to fetch the next page. The value can be used as page_token in the next call to this endpoint.
          type: string
      type: object
    ListKafkaConnectSecretsResponse:
      description: ListKafkaConnectSecretsResponse is the response of ListKafkaConnectSecrets.
      properties:
        next_page_token:
          description: Token to retrieve the next page.
          type: string
        secrets:
          description: Secrets retrieved.
          items:
            $ref: '#/components/schemas/Secret'
          type: array
      type: object
    ListKafkaConnectionsResponse:
      description: |-
        ListKafkaConnectionsResponse is the response from the ListKafkaConnections
        RPC.
      properties:
        connections:
          description: |-
            The list of connections matching the request.
            Note that in addition to open connections, some recently-closed
            connections may also be included here. If you don't want to include
            closed connections, set the filter in the request to `state =
            KAFKA_CONNECTION_STATE_OPEN`.
          items:
            $ref: '#/components/schemas/KafkaConnection'
          type: array
        total_size:
          format: uint64
          title: |-
            Total number of connections matching the request.
            This may be greater than `len(connections)` if some connections were
            omitted from the response due to the specified (or default) `page_size`.
            Example:
              request.page_size = 10
              response.connections = [<10 items>]
              response.total_size = 13
          type: string
      type: object
    ListMCPServersRequest.Filter:
      properties:
        display_name_contains:
          description: Returns MCP servers that partially match this name.
          type: string
        secret_id:
          description: Filters MCP servers that reference this secret ID in their tool configurations.
          type: string
        'tags[string]':
          additionalProperties:
            type: string
          description: Filters by tags using exact match. Returns only MCP servers that have all the specified key-value pairs.
          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. Empty if there are no more results.
          type: string
      type: object
    ListMountTasksResponse:
      properties:
        tasks:
          items:
            $ref: '#/components/schemas/MountTask'
          type: array
      type: object
    ListMountableTopicsResponse:
      properties:
        topics:
          items:
            $ref: '#/components/schemas/TopicLocation'
          type: array
      type: object
    ListPipelinesRequest.Filter:
      properties:
        name_contains:
          description: Any pipelines that partially match this name will be returned.
          type: string
        secret_id:
          type: string
        'tags[string]':
          additionalProperties:
            type: string
          description: Pipelines that match all the provided tags will be returned.
          type: object
      type: object
    ListPipelinesResponse:
      properties:
        next_page_token:
          type: string
        pipelines:
          items:
            $ref: '#/components/schemas/Pipeline'
          type: array
      type: object
    ListQuotasRequest.Filter:
      properties:
        entity_name:
          description: Filter by entity name. If unspecified will return all entities for specified entity type.
          type: string
        entity_type:
          $ref: '#/components/schemas/EntityType'
        match_default:
          description: 'If true, the entity_name will match the default entity (e.g., default client-id).'
          type: boolean
      type: object
    ListQuotasResponse:
      properties:
        page_token:
          description: 'Token to retrieve the next page of results. If empty, there are no more results.'
          type: string
        quotas:
          items:
            $ref: '#/components/schemas/QuotaEntry'
          type: array
      type: object
    ListResourcesRequest.Filter:
      properties:
        scopes:
          items:
            $ref: '#/components/schemas/Scope'
          type: array
        secret_id:
          type: string
      type: object
    ListResourcesResponse:
      properties:
        resources:
          items:
            $ref: '#/components/schemas/ListResourcesResponse.Resource'
          type: array
      type: object
    ListResourcesResponse.Resource:
      properties:
        display_name:
          type: string
        id:
          type: string
        type:
          $ref: '#/components/schemas/ListResourcesResponse.Type'
      type: object
    ListResourcesResponse.Type:
      enum:
        - TYPE_PIPELINE
        - TYPE_CLUSTER
        - TYPE_MCP_SERVER
        - TYPE_AI_AGENT
      type: string
    ListRoleMembersRequest.Filter:
      description: Filter options.
      properties:
        name_contains:
          description: Filter results to only members with names which contain the string.
          type: string
      type: object
    ListRoleMembersResponse:
      description: ListRoleMembersResponse is the response for ListRoleMembers.
      properties:
        members:
          description: Members assigned to the role.
          items:
            $ref: '#/components/schemas/RoleMembership'
          type: array
        next_page_token:
          description: Token to retrieve the next page.
          type: string
        role_name:
          description: The role name.
          type: string
      type: object
    ListRolesRequest.Filter:
      description: Filter options.
      properties:
        name_contains:
          description: Filter results to only roles with names which contain the string.
          type: string
        name_prefix:
          description: Filter results only roles named with the prefix.
          type: string
        principal:
          description: |-
            Return only roles assigned to this principal. The principal must contain
            the principal type. For example: "User:jane" is a valid principal format.
          type: string
      type: object
    ListRolesResponse:
      description: ListRolesResponse is the response for ListRoles.
      properties:
        next_page_token:
          description: Token to retrieve the next page.
          type: string
        roles:
          description: The roles in the system.
          items:
            $ref: '#/components/schemas/Role'
          type: array
      type: object
    ListSecretScopesResponse:
      description: ListSecretScopesResponse is the response of ListSecretScopes.
      properties:
        scopes:
          items:
            $ref: '#/components/schemas/Scope'
          type: array
      type: object
    ListSecretsFilter:
      description: ListSecretsFilter are the filter options for listing secrets.
      properties:
        'labels[string][string]':
          additionalProperties:
            type: string
          description: The secret labels to search for.
          type: object
        name_contains:
          description: Substring match on secret name. Case-sensitive.
          type: string
        scopes:
          items:
            $ref: '#/components/schemas/Scope'
          title: Secret scopes to search for
          type: array
      type: object
    ListSecretsResponse:
      description: ListSecretsResponse is the response of ListSecrets.
      properties:
        next_page_token:
          description: Token to retrieve the next page.
          type: string
        secrets:
          description: Secrets retrieved.
          items:
            $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:
          description: Substring match on topic name. Case-sensitive.
          type: string
      type: object
    ListTopicsResponse:
      properties:
        next_page_token:
          type: string
        topics:
          items:
            $ref: '#/components/schemas/ListTopicsResponse.Topic'
          type: array
      type: object
    ListTopicsResponse.Topic:
      properties:
        internal:
          description: Whether topic is internal only.
          type: boolean
        name:
          description: Topic name.
          type: string
        partition_count:
          description: Topic partition count.
          format: int32
          type: integer
        replication_factor:
          description: Topic replication factor.
          format: int32
          type: integer
      type: object
    ListTransformsRequest.Filter:
      properties:
        name_contains:
          description: Substring match on transform name. Case-sensitive.
          type: string
      type: object
    ListTransformsResponse:
      properties:
        next_page_token:
          description: Token to retrieve the next page.
          type: string
        transforms:
          items:
            $ref: '#/components/schemas/TransformMetadata'
          type: array
      type: object
    ListUsersRequest.Filter:
      properties:
        name:
          description: Username.
          type: string
        name_contains:
          description: Substring match on username. Case-sensitive.
          type: string
      type: object
    ListUsersResponse:
      properties:
        next_page_token:
          description: Token to retrieve the next page.
          type: string
        users:
          items:
            $ref: '#/components/schemas/ListUsersResponse.User'
          type: array
      type: object
    ListUsersResponse.User:
      properties:
        mechanism:
          $ref: '#/components/schemas/SASLMechanism'
        name:
          description: Username.
          type: string
      type: object
    LocalizedMessage:
      description: |-
        Provides a localized error message that is safe to return to the user
        which can be attached to an RPC error.
      properties:
        locale:
          title: |-
            The locale used following the specification defined at
            https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
            Examples are: "en-US", "fr-CH", "es-MX"
          type: string
        message:
          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: Unique identifier for the MCP server.
          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 an MCP server resource.
            They help organize MCP servers and enable filtering when listing them.
          type: object
        tools:
          additionalProperties:
            $ref: '#/components/schemas/Tool'
          description: Map of tool names to their configurations. Each tool defines a capability that the MCP server exposes.
          type: object
        url:
          description: URL to connect to the MCP server.
          readOnly: true
          type: string
      required:
        - id
        - display_name
        - tools
        - service_account
      type: object
    MCPServer.ServiceAccount:
      properties:
        client_id:
          type: string
        client_secret:
          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:
          description: Error message if the MCP server is in an error state. Empty if no error.
          type: string
      type: object
    MCPServerCreate:
      description: MCPServerCreate contains the details for the MCP server creation request.
      properties:
        description:
          description: Optional 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 an MCP server.
          type: object
        tools:
          additionalProperties:
            $ref: '#/components/schemas/Tool'
          description: Map of tool names to their configurations. Each tool defines a capability that the MCP server exposes.
          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: Map of tool names to their configurations. Each tool defines a capability that the MCP server exposes.
          type: object
      type: object
    MatchingACL:
      properties:
        error:
          $ref: '#/components/schemas/rpc.Status'
        host:
          description: The host address to use for this ACL.
          type: string
        operation:
          $ref: '#/components/schemas/ACL.Operation'
        permission_type:
          $ref: '#/components/schemas/PermissionType'
        principal:
          description: The user for whom this ACL applies.
          type: string
        resource_name:
          description: The name of the resource this ACL targets.
          type: string
        resource_pattern_type:
          $ref: '#/components/schemas/ResourcePatternType'
        resource_type:
          $ref: '#/components/schemas/ResourceType'
      type: object
    MountTask:
      properties:
        id:
          description: Unique identifier for this mount task.
          format: int32
          type: integer
        state:
          $ref: '#/components/schemas/MountTask.State'
        topics:
          description: List of topics that are being mounted or unmounted.
          items:
            $ref: '#/components/schemas/MountTask.Topic'
          type: array
        type:
          $ref: '#/components/schemas/MountTask.Type'
      type: object
    MountTask.State:
      description: |2-
         - STATE_PLANNED: Planned: The mount task has been created and is awaiting further actions.
         - STATE_PREPARING: Preparing: The mount task is gathering resources and preparing for execution.
         - STATE_PREPARED: Prepared: All preparations are complete, and the mount task is ready to be executed.
         - STATE_EXECUTING: Executing: The mount task is actively transferring or transforming data.
         - STATE_EXECUTED: Executed: The core mount task actions are complete, but the mount task has not yet cut over or finalized.
         - STATE_CUT_OVER: Cut Over: The mount task has reached a critical point where ownership is transferred or final adjustments are made.
         - STATE_FINISHED: Finished: The mount task has been successfully completed, and no further actions are required.
         - STATE_CANCELING: Canceling: The mount task is in the process of being canceled, and rollback or cleanup actions may be in progress.
         - STATE_CANCELLED: Cancelled: The mount task has been fully canceled, and no further actions will be taken.
      enum:
        - STATE_PLANNED
        - STATE_PREPARING
        - STATE_PREPARED
        - STATE_EXECUTING
        - STATE_EXECUTED
        - STATE_CUT_OVER
        - STATE_FINISHED
        - STATE_CANCELING
        - STATE_CANCELLED
      type: string
    MountTask.Topic:
      properties:
        source_topic_reference:
          description: |-
            The topic reference in the object storage bucket.
            This field is only set for tasks of type MOUNT.
          type: string
        topic_reference:
          description: |-
            The topic reference within the current cluster, which may be either a simple topic name or a full reference
            in the form: cluster-uuid/topic-name/revision.
          type: string
      type: object
    MountTask.Type:
      description: |2-
         - TYPE_MOUNT: Mount represents the process of making topics available in a cluster by loading them from object storage.
         - TYPE_UNMOUNT: Unmount represents the process of offloading topics back to object storage.
      enum:
        - TYPE_MOUNT
        - TYPE_UNMOUNT
      type: string
    MountTopicsResponse:
      properties:
        mount_task_id:
          format: int32
          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:
          description: Restart connector's tasks.
          type: boolean
        only_failed:
          description: Restart only connectors that have failed.
          type: boolean
      type: object
    ParamDefinition:
      description: ParamDefinition represents a parameter definition.
      properties:
        default_value:
          type: string
        description:
          type: string
        name:
          type: string
        type:
          type: string
      type: object
    ParamSpec:
      description: ParamSpec represents parameter specifications.
      properties:
        definitions:
          items:
            $ref: '#/components/schemas/ParamDefinition'
          type: array
      type: object
    PartitionStatus:
      enum:
        - PARTITION_STATUS_RUNNING
        - PARTITION_STATUS_INACTIVE
        - PARTITION_STATUS_ERRORED
        - PARTITION_STATUS_UNKNOWN
      type: string
    PartitionTransformStatus:
      properties:
        broker_id:
          format: int32
          type: integer
        lag:
          format: int32
          type: integer
        partition_id:
          format: int32
          type: integer
        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:
        - PERMISSION_TYPE_ANY
        - PERMISSION_TYPE_DENY
        - PERMISSION_TYPE_ALLOW
      type: string
    Pipeline:
      description: Defines the pipeline resource.
      properties:
        config_yaml:
          description: 'The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.'
          title: |-
            The pipeline configuration in YAML.
            See https://docs.redpanda.com/redpanda-connect/configuration/about/
          type: string
        description:
          description: Optional pipeline description.
          type: string
        display_name:
          description: User-friendly pipeline name.
          type: string
        id:
          description: Pipeline ID.
          type: string
        resources:
          $ref: '#/components/schemas/Resources'
        service_account:
          $ref: '#/components/schemas/Pipeline.ServiceAccount'
        state:
          $ref: '#/components/schemas/Pipeline.State'
        status:
          $ref: '#/components/schemas/Pipeline.Status'
        tags:
          additionalProperties:
            type: string
          description: |-
            Tags are key-value pairs that can be assigned to a pipeline resource.
            They help organize pipelines and enable filtering when listing them.
          type: object
        url:
          description: |-
            URL to connect to the pipeline, for example, via http_server.
            May be empty if no http_server is used.
          type: string
      required:
        - id
        - 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.

         - STATE_STARTING: The pipeline is starting.
         - STATE_RUNNING: The pipeline is running.
         - STATE_STOPPING: The pipeline is in the process of stopping.
         - STATE_STOPPED: The pipeline is stopped and in paused state.
         - STATE_ERROR: The pipeline encountered an error. See [Error Handling](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/error_handling/) for further guidance.
         - STATE_COMPLETED: The pipeline has completed the job successfully.
      enum:
        - STATE_STARTING
        - STATE_RUNNING
        - STATE_STOPPING
        - STATE_STOPPED
        - STATE_ERROR
        - STATE_COMPLETED
      type: string
    Pipeline.Status:
      description: Pipeline status may contain an error message.
      properties:
        error:
          type: string
      type: object
    PipelineCreate:
      description: PipelineCreate contains the details for the pipeline creation request.
      properties:
        config_yaml:
          description: 'The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.'
          type: string
        description:
          description: Pipeline description.
          type: string
        display_name:
          description: User-friendly pipeline name.
          type: string
        resources:
          $ref: '#/components/schemas/Resources'
        service_account:
          $ref: '#/components/schemas/Pipeline.ServiceAccount'
        tags:
          additionalProperties:
            type: string
          description: Optional list of tags to attach to a pipeline.
          type: object
      required:
        - display_name
        - config_yaml
      type: object
    PipelineUpdate:
      properties:
        config_yaml:
          description: 'The Redpanda Connect pipeline configuration in YAML format. See the [Redpanda Connect Configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) documentation for more details.'
          type: string
        description:
          description: Pipeline description.
          type: string
        display_name:
          description: User-friendly pipeline name.
          type: string
        resources:
          $ref: '#/components/schemas/Resources'
        service_account:
          $ref: '#/components/schemas/Pipeline.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
      required:
        - display_name
        - config_yaml
      type: object
    PipelinesForSecret:
      properties:
        pipelines:
          items:
            $ref: '#/components/schemas/Pipeline'
          type: array
        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:
          description: The host address for this ACL.
          type: string
        operation:
          $ref: '#/components/schemas/ACL.Operation'
        permission_type:
          $ref: '#/components/schemas/PermissionType'
        principal:
          description: The user for whom this ACL applies.
          type: string
      type: object
    Quota.Value:
      properties:
        value:
          format: double
          type: number
        value_type:
          $ref: '#/components/schemas/ValueType'
      type: object
    QuotaDeletion:
      properties:
        entity:
          $ref: '#/components/schemas/RequestQuotaEntity'
        value_types:
          items:
            $ref: '#/components/schemas/ValueType'
          title: Value that should be deleted for the specified entity
          type: array
      type: object
    QuotaEntry:
      description: QuotaEntry represents the quota for a specific entity type.
      properties:
        entity:
          $ref: '#/components/schemas/Entity'
        values:
          items:
            $ref: '#/components/schemas/Quota.Value'
          type: array
      type: object
    QuotaFailure:
      description: |-
        Describes how a quota check failed.

        For example if a daily limit was exceeded for the calling project,
        a service could respond with a QuotaFailure detail containing the project
        id and the description of the quota limit that was exceeded.  If the
        calling project hasn't enabled the service in the developer console, then
        a service could respond with the project id and set `service_disabled`
        to true.

        Also see RetryInfo and Help types for other details about handling a
        quota failure.
      properties:
        violations:
          description: Describes all quota violations.
          items:
            $ref: '#/components/schemas/QuotaFailure.Violation'
          type: array
      title: QuotaFailure
      type: object
    QuotaFailure.Violation:
      description: |-
        A message type used to describe a single quota violation.  For example, a
        daily quota or a custom quota that was exceeded.
      properties:
        api_service:
          description: |-
            The API Service from which the `QuotaFailure.Violation` orginates. In
            some cases, Quota issues originate from an API Service other than the one
            that was called. In other words, a dependency of the called API Service
            could be the cause of the `QuotaFailure`, and this field would have the
            dependency API service name.

            For example, if the called API is Kubernetes Engine API
            (container.googleapis.com), and a quota violation occurs in the
            Kubernetes Engine API itself, this field would be
            "container.googleapis.com". On the other hand, if the quota violation
            occurs when the Kubernetes Engine API creates VMs in the Compute Engine
            API (compute.googleapis.com), this field would be
            "compute.googleapis.com".
          type: string
        description:
          description: |-
            A description of how the quota check failed. Clients can use this
            description to find more about the quota configuration in the service's
            public documentation, or find the relevant quota limit to adjust through
            developer console.

            For example: "Service disabled" or "Daily Limit for read operations
            exceeded".
          type: string
        future_quota_value:
          description: |-
            The new quota value being rolled out at the time of the violation. At the
            completion of the rollout, this value will be enforced in place of
            quota_value. If no rollout is in progress at the time of the violation,
            this field is not set.

            For example, if at the time of the violation a rollout is in progress
            changing the number of CPUs quota from 10 to 20, 20 would be the value of
            this field.
          format: int64
          nullable: true
          type: string
        quota_dimensions:
          additionalProperties:
            type: string
          description: |-
            The dimensions of the violated quota. Every non-global quota is enforced
            on a set of dimensions. While quota metric defines what to count, the
            dimensions specify for what aspects the counter should be increased.

            For example, the quota "CPUs per region per VM family" enforces a limit
            on the metric "compute.googleapis.com/cpus_per_vm_family" on dimensions
            "region" and "vm_family". And if the violation occurred in region
            "us-central1" and for VM family "n1", the quota_dimensions would be,

            {
              "region": "us-central1",
              "vm_family": "n1",
            }

            When a quota is enforced globally, the quota_dimensions would always be
            empty.
          type: object
        quota_id:
          description: |-
            The id of the violated quota. Also know as "limit name", this is the
            unique identifier of a quota in the context of an API service.

            For example, "CPUS-PER-VM-FAMILY-per-project-region".
          type: string
        quota_metric:
          description: |-
            The metric of the violated quota. A quota metric is a named counter to
            measure usage, such as API requests or CPUs. When an activity occurs in a
            service, such as Virtual Machine allocation, one or more quota metrics
            may be affected.

            For example, "compute.googleapis.com/cpus_per_vm_family",
            "storage.googleapis.com/internet_egress_bandwidth".
          type: string
        quota_value:
          description: |-
            The enforced quota value at the time of the `QuotaFailure`.

            For example, if the enforced quota value at the time of the
            `QuotaFailure` on the number of CPUs is "10", then the value of this
            field would reflect this quantity.
          format: int64
          type: string
        subject:
          description: |-
            The subject on which the quota check failed.
            For example, "clientip:<ip address of client>" or "project:<Google
            developer project id>".
          type: string
      type: object
    QuotaSetting:
      properties:
        entity:
          $ref: '#/components/schemas/RequestQuotaEntity'
        values:
          items:
            $ref: '#/components/schemas/RequestQuotaValue'
          type: array
      type: object
    ReplicaAssignment:
      properties:
        partition_id:
          description: A partition to create.
          format: int32
          type: integer
        replica_ids:
          description: The broker IDs the partition replicas are assigned to.
          items:
            format: int32
            type: integer
          type: array
      type: object
    Request:
      properties:
        api_key:
          format: int32
          title: |-
            API key for the request type (e.g., produce/fetch/metadata/etc)
            https://kafka.apache.org/0101/protocol.html#protocol_api_keys
          type: integer
        in_flight_duration:
          title: How long the request has been in-flight since it was received
          type: string
      type: object
    RequestQuotaEntity:
      properties:
        entity_name:
          description: |-
            Entity name is the name of the entity type specified.
            If left empty, the entity will be treated as a default entity (e.g., all clients).
            If entity_type is ENTITY_TYPE_CLIENT_ID_PREFIX, this field must be set.
          type: string
        entity_type:
          $ref: '#/components/schemas/EntityType'
      type: object
    RequestQuotaValue:
      properties:
        value:
          format: double
          type: number
        value_type:
          $ref: '#/components/schemas/ValueType'
      type: object
    RequestStatistics:
      properties:
        fetch_bytes:
          description: Sum of bytes fetched.
          format: uint64
          type: string
        produce_batch_count:
          format: uint64
          title: |-
            Number of produced batches.
            Average batch size = produce_bytes / produce_batch_count
          type: string
        produce_bytes:
          description: Sum of bytes produced.
          format: uint64
          type: string
        request_count:
          description: Number of requests the client has made.
          format: uint64
          type: string
      type: object
    ResourcePatternType:
      description: |-
        The pattern to use for matching the specified resource_name
        (any, exact match, literal, or prefixed).
      enum:
        - RESOURCE_PATTERN_TYPE_ANY
        - RESOURCE_PATTERN_TYPE_MATCH
        - RESOURCE_PATTERN_TYPE_LITERAL
        - RESOURCE_PATTERN_TYPE_PREFIXED
      type: string
    ResourceType:
      description: |-
        The type of resource (topic, consumer group, etc.) this
        ACL targets.
      enum:
        - RESOURCE_TYPE_ANY
        - RESOURCE_TYPE_TOPIC
        - RESOURCE_TYPE_GROUP
        - RESOURCE_TYPE_CLUSTER
        - RESOURCE_TYPE_TRANSACTIONAL_ID
        - RESOURCE_TYPE_DELEGATION_TOKEN
        - RESOURCE_TYPE_USER
        - RESOURCE_TYPE_REGISTRY
        - RESOURCE_TYPE_SUBJECT
      type: string
    Resources:
      properties:
        cpu_shares:
          description: |-
            `cpu_shares` is a string specifying the amount of CPU to allocate for the
            pipeline.

            This follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable
            units include:
            - Decimal SI units: "m" (e.g., "500m" for 500 millicores, "2" for 2 cores)
            CPU shares can be specified in millicores (1 core = 1000 millicores).
            If you don't specify a unit, the value is interpreted as the number of cores.
          type: string
        memory_shares:
          description: |-
            `memory_shares` is a string specifying the amount of memory to allocate for
            the pipeline.

            This follows the [Kubernetes quantity](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/) format. Acceptable units
            include:
            - Decimal SI units: "K", "M", "G", "T", "P", "E" (e.g., "128M" for 128
              megabytes)
            - Binary SI units: "Ki", "Mi", "Gi", "Ti", "Pi", "Ei" (e.g., "512Mi" for
            512 mebibytes) If you don't specify a unit, the value is interpreted as
            bytes.
          type: string
      required:
        - memory_shares
        - cpu_shares
      type: object
    Role:
      description: Role defines a role in the system.
      properties:
        name:
          description: The name of the role.
          type: string
      type: object
    RoleMembership:
      description: RoleMembership is the role membership.
      properties:
        principal:
          description: The name of the principal assigned to the role.
          type: string
      type: object
    SASLMechanism:
      description: SASL mechanism to use for authentication.
      enum:
        - 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:
        - SCOPE_REDPANDA_CONNECT
        - 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.
      properties:
        id:
          description: Secret identifier.
          readOnly: true
          type: string
        labels:
          additionalProperties:
            type: string
          description: Secret labels.
          type: object
        scopes:
          items:
            $ref: '#/components/schemas/Scope'
          title: Secret scopes
          type: array
      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
    SetConfiguration:
      properties:
        name:
          description: A topic-level config key (e.g. `segment.bytes`).
          type: string
        value:
          description: A topic-level config value (e.g. 1073741824).
          nullable: true
          type: string
      type: object
    SetPartitionsToTopicsRequest:
      properties:
        partition_count:
          description: The number of partitions to set for the topics.
          format: int32
          type: integer
        topic_names:
          description: The topic names.
          items:
            type: string
          type: array
        validate_only:
          description: 'Validate the request only, do not execute it.'
          type: boolean
      type: object
    SetPartitionsToTopicsResponse:
      properties:
        statuses:
          description: The status of the operation for each topic.
          items:
            $ref: '#/components/schemas/AlterTopicPartitionStatus'
          type: array
      type: object
    SetQuotaRequest:
      properties:
        entity:
          $ref: '#/components/schemas/RequestQuotaEntity'
        value:
          $ref: '#/components/schemas/RequestQuotaValue'
      type: object
    SetQuotaResponse:
      type: object
    SetTopicConfigurationsResponse:
      properties:
        configurations:
          description: Topic's complete set of configurations after this update.
          items:
            $ref: '#/components/schemas/Configuration'
          type: array
      type: object
    SetTopicPartitionsBody:
      properties:
        partition_count:
          description: The number of partitions to set for the topic.
          format: int32
          type: integer
        validate_only:
          description: 'Validate the request only, do not execute it.'
          type: boolean
      type: object
    SetTopicPartitionsResponse:
      type: object
    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 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:
      properties:
        entity_name:
          type: string
        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:
          description: Name of connector.
          type: string
        task:
          description: The connector task ID.
          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:
          description: The connector task ID.
          format: int32
          type: integer
        state:
          description: State of connector task.
          type: string
        trace:
          description: String value of stack trace.
          type: string
        worker_id:
          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:
          description: |-
            Full reference for the unmounted topic in this format: `topic-name/cluster-uuid/revision`.
            Use this as unique identifier for mounting a topic if there are multiple topics available
            with the same name.
          type: string
        topic_name:
          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,
        so that it becomes available via the Kafka API.
      properties:
        alias:
          description: |-
            Alias may be provided to mount the topic under a different name. Leave
            blank to re-use the source topic name. The alias does not persist if you
            unmount the topic again.
          type: string
        source_topic_reference:
          description: |-
            The topic name or full reference of the topic to mount. The full reference
            must be used in case the same topic exists more than once. This may be the case if
            the same topic has been unmounted multiple times. List all mountable topics to
            find the full reference (contains topic name, cluster uuid and revision).
          type: string
      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:
          description: The environment variables you want to apply to your transform's environment
          items:
            $ref: '#/components/schemas/EnvironmentVariable'
          type: array
        input_topic_name:
          description: Input topic to apply the transform to.
          type: string
        name:
          description: Name of transform.
          type: string
        output_topic_names:
          description: Output topics to write the transform results to.
          items:
            type: string
          type: array
        statuses:
          items:
            $ref: '#/components/schemas/PartitionTransformStatus'
          type: array
      type: object
    UnmountTopicsResponse:
      properties:
        mount_task_id:
          format: int32
          title: ID of unmount
          type: integer
      type: object
    UpdateConfiguration:
      properties:
        name:
          description: A topic-level config key (e.g. `segment.bytes`).
          type: string
        operation:
          $ref: '#/components/schemas/ConfigAlterOperation'
        value:
          description: A topic-level config value (e.g. 1073741824).
          nullable: true
          type: string
      type: object
    UpdateKafkaConnectSecretBody:
      description: UpdateKafkaConnectSecretRequest is the request of UpdateKafkaConnectSecret.
      properties:
        labels:
          additionalProperties:
            type: string
          description: Secret labels.
          type: object
        secret_data:
          description: The secret data. Must be Base64-encoded.
          format: byte
          type: string
      required:
        - secret_data
      type: object
    UpdateKafkaConnectSecretResponse:
      description: UpdateKafkaConnectSecretResponse is the response of UpdateKafkaConnectSecret.
      properties:
        secret:
          $ref: '#/components/schemas/Secret'
      type: object
    UpdateMCPServerResponse:
      properties:
        mcp_server:
          $ref: '#/components/schemas/MCPServer'
      type: object
    UpdateMountTaskBody:
      properties:
        action:
          $ref: '#/components/schemas/Action'
      required:
        - action
      type: object
    UpdateMountTaskResponse:
      type: object
    UpdatePipelineResponse:
      properties:
        pipeline:
          $ref: '#/components/schemas/Pipeline'
      type: object
    UpdateRoleMembershipBody:
      description: UpdateRoleMembershipRequest is the request to UpdateRoleMembership.
      properties:
        add:
          description: Members to assign to the role.
          items:
            $ref: '#/components/schemas/RoleMembership'
          type: array
        create:
          description: |-
            Create the role if it doesn't already exist.
            If the role is created in this way, the “add” list will be respected, but the “remove” list will be ignored.
          type: boolean
        remove:
          description: Members to remove from the role.
          items:
            $ref: '#/components/schemas/RoleMembership'
          type: array
      type: object
    UpdateRoleMembershipResponse:
      description: UpdateRoleMembershipResponse is the response for UpdateRoleMembership.
      properties:
        added:
          description: Members assigned to the role.
          items:
            $ref: '#/components/schemas/RoleMembership'
          type: array
        removed:
          description: Members removed from the role.
          items:
            $ref: '#/components/schemas/RoleMembership'
          type: array
        role_name:
          description: The role name.
          type: string
      type: object
    UpdateSecretBody:
      description: UpdateSecretRequest is the request of UpdateSecret.
      properties:
        labels:
          additionalProperties:
            type: string
          description: Secret labels.
          type: object
        scopes:
          items:
            $ref: '#/components/schemas/Scope'
          title: Secret scopes
          type: array
        secret_data:
          description: The secret data. Must be Base64-encoded.
          format: byte
          type: string
      type: object
    UpdateSecretResponse:
      description: UpdateSecretResponse is the response of UpdateSecret.
      properties:
        secret:
          $ref: '#/components/schemas/Secret'
      type: object
    UpdateTopicConfigurationsResponse:
      properties:
        configurations:
          description: Topic's complete set of configurations after applying this partial patch.
          items:
            $ref: '#/components/schemas/Configuration'
          type: array
      type: object
    UpdateUserRequest.User:
      properties:
        mechanism:
          $ref: '#/components/schemas/SASLMechanism'
        name:
          description: Username.
          type: string
        password:
          description: Password.
          type: string
      type: object
    UpdateUserResponse:
      properties:
        user:
          $ref: '#/components/schemas/UpdateUserResponse.User'
      type: object
    UpdateUserResponse.User:
      description: Updated user's name and SASL mechanism.
      properties:
        mechanism:
          $ref: '#/components/schemas/SASLMechanism'
        name:
          type: string
      type: object
    UpsertConnectorResponse:
      properties:
        connector:
          $ref: '#/components/schemas/ConnectorSpec'
      type: object
    ValueType:
      description: |-
        The type of value that the quota represents.

         - VALUE_TYPE_PRODUCER_BYTE_RATE: The rate at which producers can send data.
         - VALUE_TYPE_CONSUMER_BYTE_RATE: The rate at which consumers can fetch data.
         - VALUE_TYPE_CONTROLLER_MUTATION_RATE: The rate at which topic mutation requests can be made.
         - VALUE_TYPE_REQUEST_PERCENTAGE: The percentage of the total throughput that can be used by the entity.

        Not supported in Redpanda
      enum:
        - VALUE_TYPE_PRODUCER_BYTE_RATE
        - VALUE_TYPE_CONSUMER_BYTE_RATE
        - VALUE_TYPE_CONTROLLER_MUTATION_RATE
        - VALUE_TYPE_REQUEST_PERCENTAGE
      type: string
    rpc.Status:
      description: |-
        The `Status` type defines a logical error model that is suitable for
        different programming environments, including REST APIs and RPC APIs. It is
        used by [gRPC](https://github.com/grpc). Each `Status` message contains
        three pieces of data: error code, error message, and error details.

        You can find out more about this error model and how to work with it in the
        [API Design Guide](https://cloud.google.com/apis/design/errors).
      properties:
        code:
          description: 'RPC status code, as described [here](https://github.com/googleapis/googleapis/blob/b4c238feaa1097c53798ed77035bbfeb7fc72e96/google/rpc/code.proto#L32).'
          enum:
            - OK
            - CANCELLED
            - UNKNOWN
            - INVALID_ARGUMENT
            - DEADLINE_EXCEEDED
            - NOT_FOUND
            - ALREADY_EXISTS
            - PERMISSION_DENIED
            - UNAUTHENTICATED
            - RESOURCE_EXHAUSTED
            - FAILED_PRECONDITION
            - ABORTED
            - OUT_OF_RANGE
            - UNIMPLEMENTED
            - INTERNAL
            - UNAVAILABLE
            - DATA_LOSS
          format: int32
          type: string
        details:
          description: A list of messages that carries the error details.
          items:
            description: Details of the error.
            oneOf:
              - allOf:
                  - properties:
                      '@type':
                        description: 'Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.'
                        enum:
                          - type.googleapis.com/google.rpc.BadRequest
                        type: string
                  - $ref: '#/components/schemas/BadRequest'
              - allOf:
                  - properties:
                      '@type':
                        description: 'Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.'
                        enum:
                          - type.googleapis.com/google.rpc.ErrorInfo
                        type: string
                  - $ref: '#/components/schemas/ErrorInfo'
              - allOf:
                  - properties:
                      '@type':
                        description: 'Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.'
                        enum:
                          - type.googleapis.com/google.rpc.QuotaFailure
                        type: string
                  - $ref: '#/components/schemas/QuotaFailure'
              - allOf:
                  - properties:
                      '@type':
                        description: 'Fully qualified protobuf type name of the underlying response, prefixed with `type.googleapis.com/`.'
                        enum:
                          - type.googleapis.com/google.rpc.Help
                        type: string
                  - $ref: '#/components/schemas/Help'
          type: array
        message:
          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
    CreateACLResourceType:
      description: |-
        The type of resource (topic, consumer group, etc.) this
        ACL targets.
      enum:
        - RESOURCE_TYPE_TOPIC
        - RESOURCE_TYPE_GROUP
        - RESOURCE_TYPE_CLUSTER
        - RESOURCE_TYPE_TRANSACTIONAL_ID
        - RESOURCE_TYPE_DELEGATION_TOKEN
        - RESOURCE_TYPE_USER
        - RESOURCE_TYPE_REGISTRY
        - RESOURCE_TYPE_SUBJECT
      type: string
  securitySchemes:
    auth0:
      description: |-
        The Cloud APIs use OAuth 2.0 for authentication.

        **For API Explorer (browser):** Authentication is handled automatically. Click "Get token" on any endpoint to authenticate with your Redpanda Cloud account and include a bearer token for requests made in API Explorer.

        **For programmatic access (CLI, SDKs, scripts):** You must create a service account in the Redpanda Cloud UI and use the OAuth 2.0 client credentials flow to obtain an access token. See the Authentication topic for detailed instructions.

        The same access token can be used for both Control Plane and Data Plane API requests for as long as the token is valid (one hour).
      flows:
        implicit:
          authorizationUrl: 'https://auth.prd.cloud.redpanda.com/oauth/authorize'
          scopes: {}
          x-client-id: dQjapNIAHhF7EQqQToRla3yEII9sUSap
      type: oauth2
info:
  title: Redpanda Cloud Data Plane API
  version: v1
  x-feedbackLink:
    label: Share feedback
    url: 'https://github.com/redpanda-data/cloud-docs/issues/new?template=01_doc_request.yml'
openapi: 3.0.3
paths:
  /v1/acls:
    delete:
      description: Delete all ACLs that match the filter criteria. The `filter.` query string parameters find matching ACLs that meet all specified conditions.
      operationId: ACLService_DeleteACLs
      parameters:
        - description: |-
            The type of resource (topic, consumer group, etc.) this
            ACL targets.
          in: query
          name: filter.resource_type
          required: true
          schema:
            enum:
              - RESOURCE_TYPE_ANY
              - RESOURCE_TYPE_TOPIC
              - RESOURCE_TYPE_GROUP
              - RESOURCE_TYPE_CLUSTER
              - RESOURCE_TYPE_TRANSACTIONAL_ID
              - RESOURCE_TYPE_DELEGATION_TOKEN
              - RESOURCE_TYPE_USER
              - RESOURCE_TYPE_REGISTRY
              - RESOURCE_TYPE_SUBJECT
            type: string
        - description: The name of the resource this ACL targets.
          in: query
          name: filter.resource_name
          schema:
            type: string
        - description: |-
            The pattern to use for matching the specified resource_name
            (any, exact match, literal, or prefixed).
          in: query
          name: filter.resource_pattern_type
          required: true
          schema:
            enum:
              - RESOURCE_PATTERN_TYPE_ANY
              - RESOURCE_PATTERN_TYPE_MATCH
              - RESOURCE_PATTERN_TYPE_LITERAL
              - RESOURCE_PATTERN_TYPE_PREFIXED
            type: string
        - description: |-
            The user for whom this ACL applies. With the Kafka simple
            authorizer, you must include the prefix "User:" with the user name.
          in: query
          name: filter.principal
          schema:
            type: string
        - description: |-
            The host address to use for this ACL. To allow a principal
            access from multiple hosts, you must create an ACL for each host.
          in: query
          name: filter.host
          schema:
            type: string
        - description: The operation that is allowed or denied (e.g. READ).
          in: query
          name: filter.operation
          required: true
          schema:
            enum:
              - OPERATION_ANY
              - OPERATION_ALL
              - OPERATION_READ
              - OPERATION_WRITE
              - OPERATION_CREATE
              - OPERATION_DELETE
              - OPERATION_ALTER
              - OPERATION_DESCRIBE
              - OPERATION_CLUSTER_ACTION
              - OPERATION_DESCRIBE_CONFIGS
              - OPERATION_ALTER_CONFIGS
              - OPERATION_IDEMPOTENT_WRITE
              - OPERATION_CREATE_TOKENS
              - OPERATION_DESCRIBE_TOKENS
            type: string
        - description: Whether the operation should be allowed or denied.
          in: query
          name: filter.permission_type
          required: true
          schema:
            enum:
              - PERMISSION_TYPE_ANY
              - PERMISSION_TYPE_DENY
              - PERMISSION_TYPE_ALLOW
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteACLsResponse'
          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: Delete ACLs
      tags:
        - Redpanda ACLs
    get:
      description: List all ACLs. The `filter.` query string parameters find matching ACLs that meet all specified conditions.
      operationId: ACLService_ListACLs
      parameters:
        - description: |-
            The type of resource (topic, consumer group, etc.) this
            ACL targets.
          in: query
          name: filter.resource_type
          schema:
            enum:
              - RESOURCE_TYPE_ANY
              - RESOURCE_TYPE_TOPIC
              - RESOURCE_TYPE_GROUP
              - RESOURCE_TYPE_CLUSTER
              - RESOURCE_TYPE_TRANSACTIONAL_ID
              - RESOURCE_TYPE_DELEGATION_TOKEN
              - RESOURCE_TYPE_USER
              - RESOURCE_TYPE_REGISTRY
              - RESOURCE_TYPE_SUBJECT
            type: string
        - description: The name of the resource this ACL targets.
          in: query
          name: filter.resource_name
          schema:
            type: string
        - description: |-
            The pattern to use for matching the specified resource_name
            (any, exact match, literal, or prefixed).
          in: query
          name: filter.resource_pattern_type
          schema:
            enum:
              - RESOURCE_PATTERN_TYPE_ANY
              - RESOURCE_PATTERN_TYPE_MATCH
              - RESOURCE_PATTERN_TYPE_LITERAL
              - RESOURCE_PATTERN_TYPE_PREFIXED
            type: string
        - description: |-
            The user for whom this ACL applies. With the Kafka simple
            authorizer, you must include the prefix "User:" with the user name.
          in: query
          name: filter.principal
          schema:
            type: string
        - description: |-
            The host address to use for this ACL. To allow a principal
            access from multiple hosts, you must create an ACL for each host.
          in: query
          name: filter.host
          schema:
            type: string
        - description: The operation that is allowed or denied (e.g. READ).
          in: query
          name: filter.operation
          schema:
            enum:
              - OPERATION_ANY
              - OPERATION_ALL
              - OPERATION_READ
              - OPERATION_WRITE
              - OPERATION_CREATE
              - OPERATION_DELETE
              - OPERATION_ALTER
              - OPERATION_DESCRIBE
              - OPERATION_CLUSTER_ACTION
              - OPERATION_DESCRIBE_CONFIGS
              - OPERATION_ALTER_CONFIGS
              - OPERATION_IDEMPOTENT_WRITE
              - OPERATION_CREATE_TOKENS
              - OPERATION_DESCRIBE_TOKENS
            type: string
        - description: Whether the operation should be allowed or denied.
          in: query
          name: filter.permission_type
          schema:
            enum:
              - PERMISSION_TYPE_ANY
              - PERMISSION_TYPE_DENY
              - PERMISSION_TYPE_ALLOW
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListACLsResponse'
          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 ACLs
      tags:
        - Redpanda ACLs
    post:
      description: Create a new ACL.
      operationId: ACLService_CreateACL
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateACLRequest'
        required: true
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateACLResponse'
          description: Created
        '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 ACL
      tags:
        - Redpanda ACLs
  /v1/cloud-storage/mount-tasks:
    get:
      description: 'This operation retrieves the status of a task responsible for mounting or unmounting topics. It provides details on the task’s type (mount or unmount), its current state, and the topics involved.'
      operationId: CloudStorageService_ListMountTasks
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListMountTasksResponse'
          description: OK
        '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: Retrieve the mount task status
      tags:
        - Cloud Storage
  '/v1/cloud-storage/mount-tasks/{id}':
    delete:
      description: Delete a mount or unmount by ID.
      operationId: CloudStorageService_DeleteMountTask
      parameters:
        - description: Unique identifier of the mount or unmount task to delete.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteMountTaskResponse'
          description: OK
        '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: Delete a mount or unmount
      tags:
        - Cloud Storage
    get:
      description: 'Retrieves the status of a mount or unmount by ID. The response provides details on the operation type (mount or unmount), its current state, and the topics involved. Use the ID returned when you start the mount or unmount, or use the ListMountTasks endpoint to retrieve a list of IDs.'
      operationId: CloudStorageService_GetMountTask
      parameters:
        - description: Unique identifier of the mount or unmount task to retrieve.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMountTaskResponse'
          description: OK
        '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: Get the status of a mount or unmount by ID
      tags:
        - Cloud Storage
    post:
      description: This operation allows performing an action on an ongoing mount task.
      operationId: CloudStorageService_UpdateMountTask
      parameters:
        - description: ID is the unique identifier of the mount or unmount to update.
          in: path
          name: id
          required: true
          schema:
            format: int32
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMountTaskBody'
        required: true
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateMountTaskResponse'
          description: OK
        '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: Update a mount or unmount
      tags:
        - Cloud Storage
  /v1/cloud-storage/topics/mount:
    post:
      description: 'Attach mountable topics from object storage to a cluster, making them available for consumption and production again. Mounting a topic reloads its data and state to the local brokers, allowing active use of the topic.'
      operationId: CloudStorageService_MountTopics
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/TopicMount'
              required:
                - topics
              type: array
        required: true
        x-originalParamName: topics
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MountTopicsResponse'
          description: OK
        '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: Mount topics from object storage
      tags:
        - Cloud Storage
  /v1/cloud-storage/topics/mountable:
    get:
      description: Retrieve all topics that are currently unmounted and available to be mounted to the cluster. These topics reside in object storage and can be mounted for consumption or production within the cluster.
      operationId: CloudStorageService_ListMountableTopics
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListMountableTopicsResponse'
          description: OK
        '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: List mountable topics
      tags:
        - Cloud Storage
  /v1/cloud-storage/topics/unmount:
    post:
      description: 'Unmount topics to object storage, freeing up all local cluster resources. Once you unmount a topic, it can no longer be consumed or produced to. It detaches from the active cluster while its data remains safely stored in the external object storage.'
      operationId: CloudStorageService_UnmountTopics
      requestBody:
        content:
          application/json:
            schema:
              items:
                type: string
              required:
                - topics
              type: array
        description: List of topics to unmount.
        required: true
        x-originalParamName: topics
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnmountTopicsResponse'
          description: OK
        '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: Unmount topics to object storage
      tags:
        - Cloud Storage
  /v1/kafka-connect/clusters:
    get:
      description: List Connect clusters available in Console.
      operationId: KafkaConnectService_ListConnectClusters
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListConnectClustersResponse'
          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 Connect clusters
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}':
    get:
      description: Get information about an available Kafka Connect cluster.
      operationId: KafkaConnectService_GetConnectCluster
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectCluster'
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
          description: Unauthenticated.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
          description: Connect cluster 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 Connect cluster
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors':
    get:
      description: List connectors managed by the Kafka Connect service.
      operationId: KafkaConnectService_ListConnectors
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - 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
        - 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
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListConnectorsResponse'
          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 connectors
      tags:
        - Kafka Connect
    post:
      description: Create a connector with the specified configuration.
      operationId: KafkaConnectService_CreateConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectorSpec'
        required: true
        x-originalParamName: connector
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorSpec'
          description: Created
        '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 connector
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}':
    delete:
      description: Delete a connector. This operation force stops all tasks and also deletes the connector configuration.
      operationId: KafkaConnectService_DeleteConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '204':
          content:
            application/json:
              schema: {}
          description: Deleted
        '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: Delete connector
      tags:
        - Kafka Connect
    get:
      description: Get information about a connector in a specific cluster.
      operationId: KafkaConnectService_GetConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorSpec'
          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 connector
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/config':
    get:
      description: Get the configuration for the connector.
      operationId: KafkaConnectService_GetConnectorConfig
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '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 connector configuration
      tags:
        - Kafka Connect
    put:
      description: 'Update the configuration for an existing connector with the specified name, or create a new connector using the given configuration. Returns information about the connector after the change has been made.'
      operationId: KafkaConnectService_UpsertConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: 'Name of connector. If a connector with this name does not already exist, a new connector is created.'
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties:
                type: string
              required:
                - config
              type: object
        description: Connector configuration property.
        required: true
        x-originalParamName: config
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorSpec'
          description: Updated
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorSpec'
          description: Created
        '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: Upsert connector configuration
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/pause':
    put:
      description: 'Pause the connector and its tasks, which stops messages from processing until the connector is resumed. This call is asynchronous and may take some time to process.'
      operationId: KafkaConnectService_PauseConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '202':
          content:
            application/json:
              schema: {}
          description: Pause request accepted
        '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: Pause connector
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/restart':
    post:
      description: 'Triggers a connector restart. You must specify whether or not tasks are also restarted, and whether only failed connectors are restarted.'
      operationId: KafkaConnectService_RestartConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Options'
        required: true
        x-originalParamName: options
      responses:
        '204':
          content:
            application/json:
              schema: {}
          description: Restart connector request success
        '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: Restart connector
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/resume':
    put:
      description: 'Resume a paused connector and its tasks, and resumes message processing. This call is asynchronous and may take some time to process. If the connector was not paused, this operation does not do anything.'
      operationId: KafkaConnectService_ResumeConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '202':
          content:
            application/json:
              schema: {}
          description: Resume request accepted
        '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: Resume connector
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/status':
    get:
      description: 'Gets the current status of the connector, including the state for each of its tasks, error information, etc.'
      operationId: KafkaConnectService_GetConnectorStatus
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorStatus'
          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 connector status
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/stop':
    put:
      description: 'Stops a connector, but does not delete it. All tasks for the connector are shut down completely. This call is asynchronous and may take some time to process.'
      operationId: KafkaConnectService_StopConnector
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '202':
          content:
            application/json:
              schema: {}
          description: Request accepted
        '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: Stop connector
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics':
    get:
      description: 'Returns a list of connector topic names. If the connector is inactive, this call returns an empty list.'
      operationId: KafkaConnectService_ListConnectorTopics
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListConnectorTopicsResponse'
          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 connector topics
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/connectors/{name}/topics/reset':
    put:
      description: Resets the set of topic names that the connector is using.
      operationId: KafkaConnectService_ResetConnectorTopics
      parameters:
        - description: 'Unique name of target Connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Name of connector using the topics to be reset.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          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: Reset connector topics
      tags:
        - Kafka Connect
  '/v1/kafka-connect/clusters/{cluster_name}/secrets':
    get:
      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`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: Substring match on secret name. Case-sensitive.
          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.labels[string][string]'
          schema:
            type: string
        - description: Secret scopes to search for
          in: query
          name: filter.scopes
          schema:
            items:
              enum:
                - SCOPE_REDPANDA_CONNECT
                - SCOPE_REDPANDA_CLUSTER
                - SCOPE_MCP_SERVER
                - SCOPE_AI_AGENT
                - SCOPE_AI_GATEWAY
              type: string
            type: array
        - 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
        - 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
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSecretsResponse'
          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 Connect cluster secrets
      tags:
        - Secrets
    post:
      description: Create a Kafka Connect cluster secret.
      operationId: SecretService_CreateKafkaConnectSecret
      parameters:
        - description: 'Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateKafkaConnectSecretBody'
        required: true
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetKafkaConnectSecretResponse'
          description: Secret created
        '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 Connect cluster secret
      tags:
        - Secrets
  '/v1/kafka-connect/clusters/{cluster_name}/secrets/{id}':
    delete:
      description: Delete a Kafka Connect cluster secret.
      operationId: SecretService_DeleteKafkaConnectSecret
      parameters:
        - description: 'Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: ID of the secret to delete.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '204':
          content:
            application/json:
              schema: {}
          description: Secret deleted successfully
        '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: Delete Connect cluster secret
      tags:
        - Secrets
    get:
      description: Get a specific Kafka Connect cluster secret.
      operationId: SecretService_GetKafkaConnectSecret
      parameters:
        - description: 'Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: The ID of the secret to retrieve.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetKafkaConnectSecretResponse'
          description: OK
        '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: Get Connect cluster secret
      tags:
        - Secrets
    put:
      description: Update a Kafka Connect cluster secret.
      operationId: SecretService_UpdateKafkaConnectSecret
      parameters:
        - description: 'Unique name of target connect cluster. For Redpanda Cloud, use `redpanda`.'
          in: path
          name: cluster_name
          required: true
          schema:
            type: string
        - description: ID of the secret to update.
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateKafkaConnectSecretBody'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateKafkaConnectSecretResponse'
          description: OK
        '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: Update Connect cluster secret
      tags:
        - Secrets
  /v1/monitoring/kafka/connections:
    get:
      description: List information on recent connections to the cluster.
      operationId: MonitoringService_ListKafkaConnections
      parameters:
        - description: |-
            The maximum number of connections to return. If unspecified or 0, a
            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:
            format: int32
            type: integer
        - description: |-
            Filter expression to apply to the connection list.
            Uses a subset of AIP-160 filter syntax supporting:
            - Field comparisons (`=`, `!=`, `<`, `>`, `<=`, `>=`)
            - Logical AND chaining: condition1 AND condition2
            - Nested field access: parent.child = value
            - Escape sequences: field = "string with \"quotes\""
            - Enum types
            - RFC3339 timestamps and ISO-like duration

            Limitations (not supported):
            - Logical OR chaining
            - Parentheses `(` `)` for grouping
            - Map and repeated types
            - HAS (:) operator
            - Negation (-, NOT)
            - Bare literal matching

            Example filters:
            - `state = KAFKA_CONNECTION_STATE_OPEN`
            - `idle_duration > 30s AND total_request_statistics.request_count > 100`
            - `authentication_info.user_principal = "my-producer"`
            - `recent_request_statistics.produce_bytes > 1000 AND
            client_software_name = "kgo"`
            - `open_time >= 2025-09-01T10:22:54Z`

            Reference: https://google.aip.dev/160
          in: query
          name: filter
          schema:
            type: string
        - description: |-
            Field-based ordering specification following AIP-132 syntax.
            Supports multiple fields with `asc`/`desc` direction indicators.
            Examples:
            - `idle_duration desc` - longest idle connections first
            - `open_time desc, total_request_statistics.request_count desc` - newest
            connections first, then most active
            - `recent_request_statistics.produce_bytes desc` - connections with
            highest current produce throughput first

            Reference: https://google.aip.dev/132#ordering
          in: query
          name: order_by
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListKafkaConnectionsResponse'
          description: Recent connections
        '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 Recent Connections
      tags:
        - Monitoring
  /v1/quotas:
    get:
      description: List client quotas. Use filter parameters to narrow results by entity type and filter criteria.
      operationId: QuotaService_ListQuotas
      parameters:
        - description: |-
            The type of entity to filter by. If  unspecified, all entities will be returned.

             - ENTITY_TYPE_USER: Not supported in Redpanda
             - ENTITY_TYPE_IP: Not supported in Redpanda
          in: query
          name: filter.entity_type
          schema:
            enum:
              - ENTITY_TYPE_CLIENT_ID
              - ENTITY_TYPE_CLIENT_ID_PREFIX
              - ENTITY_TYPE_USER
              - ENTITY_TYPE_IP
            type: string
        - description: Filter by entity name. If unspecified will return all entities for specified entity type.
          in: query
          name: filter.entity_name
          schema:
            type: string
        - description: 'If true, the entity_name will match the default entity (e.g., default client-id).'
          in: query
          name: filter.match_default
          schema:
            type: boolean
        - 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/ListQuotasResponse'
          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 quotas
      tags:
        - Quotas
    post:
      description: Create or update client throughput quotas for a single entity. This operation is an upsert.
      operationId: QuotaService_SetQuota
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetQuotaRequest'
        required: true
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetQuotaResponse'
          description: Quota Set
        '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: Set a quota
      tags:
        - Quotas
  '/v1/quotas:batchDelete':
    post:
      description: Delete client quotas for multiple entities and values in a single request.
      operationId: QuotaService_BatchDeleteQuota
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchDeleteQuotaRequest'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchDeleteQuotaResponse'
          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: Delete multiple quotas
      tags:
        - Quotas
  '/v1/quotas:batchSet':
    post:
      description: Create or update client throughput quotas for multiple entities in a single request.
      operationId: QuotaService_BatchSetQuota
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchSetQuotaRequest'
        required: true
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchSetQuotaResponse'
          description: Quotas Set
        '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: Set multiple quotas
      tags:
        - Quotas
  '/v1/quotas:delete':
    post:
      description: Delete client quotas for single entity and value.
      operationId: QuotaService_DeleteQuota
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteQuotaRequest'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteQuotaResponse'
          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: Delete a quota
      tags:
        - Quotas
  /v1/redpanda-connect/components:
    get:
      description: 'Returns a JSON list of available [components](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about), filtered by component type.'
      operationId: PipelineService_ListComponents
      parameters:
        - in: query
          name: read_mask
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListComponentsResponse'
          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 list of available components
      tags:
        - Redpanda Connect Pipelines
  /v1/redpanda-connect/config-schema:
    get:
      description: 'The configuration schema includes available [components and processors](https://docs.redpanda.com/redpanda-cloud/develop/connect/components/about) in this Redpanda Connect instance.'
      operationId: PipelineService_GetPipelineServiceConfigSchema
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPipelineServiceConfigSchemaResponse'
          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 Redpanda Connect pipeline configurations
      tags:
        - Redpanda Connect Pipelines
  /v1/redpanda-connect/mcp-servers:
    get:
      description: 'Lists MCP servers. Optionally filter by display name, tags, or secret ID.'
      operationId: MCPServerService_ListMCPServers
      parameters:
        - description: Returns MCP servers that partially match this name.
          in: query
          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'
          in: query
          name: 'filter.tags[string]'
          schema:
            type: string
        - description: Filters MCP servers that reference this secret ID in their tool configurations.
          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/ListMCPServersResponse'
          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 MCP servers
      tags:
        - Remote MCP
    post:
      description: Create a new MCP server.
      operationId: MCPServerService_CreateMCPServer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MCPServerCreate'
        required: true
        x-originalParamName: mcp_server
      responses:
        '201':
          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: Create MCP server
      tags:
        - 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:
        '204':
          content:
            application/json:
              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:
              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: Delete an MCP server
      tags:
        - Remote MCP
    get:
      description: Get a specific MCP server.
      operationId: MCPServerService_GetMCPServer
      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: OK
        '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: Get MCP server
      tags:
        - Remote MCP
    put:
      description: Update the configuration of an MCP server.
      operationId: MCPServerService_UpdateMCPServer
      parameters:
        - description: MCP server ID.
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: 'Specifies which fields to update. If not provided, updates all fields.'
          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: Update an MCP server
      tags:
        - Remote MCP
  '/v1/redpanda-connect/mcp-servers/{id}:start':
    post:
      description: Start a stopped 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 MCP server
      tags:
        - Remote MCP
  '/v1/redpanda-connect/mcp-servers/{id}:stop':
    post:
      description: Stop a running 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: 'Returns the configuration schema for MCP server tools, including available components and processors.'
      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: Get MCP server configuration schema
      tags:
        - Remote MCP
  '/v1/redpanda-connect/mcp-servers:lint-config':
    post:
      description: 'Validates a given MCP tool''s configuration and returns linting hints. Each tool''s YAML configuration is validated. If no problems are found, the response 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 a MCP tools configuration
      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':
          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: Delete a Redpanda Connect pipeline
      tags:
        - Redpanda Connect Pipelines
    get:
      description: Get a specific Redpanda Connect pipeline.
      operationId: PipelineService_GetPipeline
      parameters:
        - description: Pipeline ID.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipeline'
          description: OK
        '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: Get Redpanda Connect pipeline
      tags:
        - Redpanda Connect Pipelines
    put:
      description: 'Update the [configuration](https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about) of a Redpanda Connect pipeline.'
      operationId: PipelineService_UpdatePipeline
      parameters:
        - description: Pipeline ID.
          in: path
          name: id
          required: true
          schema:
            type: string
        - 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/PipelineUpdate'
        required: true
        x-originalParamName: pipeline
      responses:
        '200':
          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: Update a Redpanda Connect pipeline
      tags:
        - Redpanda Connect Pipelines
  '/v1/redpanda-connect/pipelines/{id}/start':
    put:
      description: Start a stopped Redpanda Connect pipeline.
      operationId: PipelineService_StartPipeline
      parameters:
        - description: Pipeline ID.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipeline'
          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 a Redpanda Connect pipeline
      tags:
        - Redpanda Connect Pipelines
  '/v1/redpanda-connect/pipelines/{id}/stop':
    put:
      description: Stop a running Redpanda Connect pipeline.
      operationId: PipelineService_StopPipeline
      parameters:
        - description: Pipeline ID.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipeline'
          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: Stops a Redpanda Connect pipeline
      tags:
        - Redpanda Connect Pipelines
  '/v1/redpanda-connect/pipelines:lint-config':
    post:
      description: 'Validates a supplied Redpanda Connect pipeline YAML and returns a list of linting hints. If no problems are found, the list is empty.'
      operationId: PipelineService_LintPipelineConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LintPipelineConfigRequest'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LintPipelineConfigResponse'
          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 a Redpanda Connect pipeline configuration
      tags:
        - Redpanda Connect Pipelines
  /v1/roles:
    get:
      description: 'List roles. Optional: filter based on role name and principal.'
      operationId: SecurityService_ListRoles
      parameters:
        - description: Filter results only roles named with the prefix.
          in: query
          name: filter.name_prefix
          schema:
            type: string
        - description: Filter results to only roles with names which contain the string.
          in: query
          name: filter.name_contains
          schema:
            type: string
        - description: |-
            Return only roles assigned to this principal. The principal must contain
            the principal type. For example: "User:jane" is a valid principal format.
          in: query
          name: filter.principal
          schema:
            type: string
        - description: Page size.
          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/ListRolesResponse'
          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 roles
      tags:
        - Security
    post:
      description: Create a role.
      operationId: SecurityService_CreateRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
        description: The role to create.
        required: true
        x-originalParamName: role
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRoleResponse'
          description: Role created
        '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 role
      tags:
        - Security
  '/v1/roles/{role_name}':
    delete:
      description: Delete a role.
      operationId: SecurityService_DeleteRole
      parameters:
        - description: The role name.
          in: path
          name: role_name
          required: true
          schema:
            type: string
        - description: Whether to delete the ACLs bound to the role.
          in: query
          name: delete_acls
          schema:
            type: boolean
      responses:
        '204':
          content:
            application/json:
              schema: {}
          description: Role deleted successfully
        '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: Delete role
      tags:
        - Security
    get:
      description: Get a role.
      operationId: SecurityService_GetRole
      parameters:
        - description: The role name.
          in: path
          name: role_name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoleResponse'
          description: OK
        '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: Get role
      tags:
        - Security
    put:
      description: Update a role.
      operationId: SecurityService_UpdateRoleMembership
      parameters:
        - description: The role name.
          in: path
          name: role_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRoleMembershipBody'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateRoleMembershipResponse'
          description: OK
        '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: Update role
      tags:
        - Security
  '/v1/roles/{role_name}/members':
    get:
      description: List members assigned to a role.
      operationId: SecurityService_ListRoleMembers
      parameters:
        - description: The role name.
          in: path
          name: role_name
          required: true
          schema:
            type: string
        - description: Filter results to only members with names which contain the string.
          in: query
          name: filter.name_contains
          schema:
            type: string
        - description: Page size.
          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/ListRoleMembersResponse'
          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 role members
      tags:
        - Security
  /v1/secret-scopes:
    get:
      description: List supported secret scopes.
      operationId: SecretService_ListSecretScopes
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSecretScopesResponse'
          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 secret scopes
      tags:
        - Secrets
  /v1/secrets:
    get:
      description: 'List secrets. Optional: filter based on secret name and labels.'
      operationId: SecretService_ListSecrets
      parameters:
        - description: Substring match on secret name. Case-sensitive.
          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.labels[string]'
          schema:
            type: string
        - description: Secret scopes to search for
          in: query
          name: filter.scopes
          schema:
            items:
              enum:
                - SCOPE_REDPANDA_CONNECT
                - SCOPE_REDPANDA_CLUSTER
                - SCOPE_MCP_SERVER
                - SCOPE_AI_AGENT
                - SCOPE_AI_GATEWAY
              type: string
            type: array
        - 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
        - description: Limit the paginated response to a number of items.
          in: query
          name: page_size
          schema:
            format: int32
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSecretsResponse'
          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 secrets
      tags:
        - Secrets
    post:
      description: Create a secret.
      operationId: SecretService_CreateSecret
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSecretRequest'
        description: CreateSecretRequest is the request of CreateSecret.
        required: true
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSecretResponse'
          description: Secret created
        '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 secret
      tags:
        - Secrets
  /v1/secrets/resources:
    get:
      description: Get resources by secret.
      operationId: SecretService_ListResources
      parameters:
        - in: query
          name: filter.secret_id
          schema:
            type: string
        - in: query
          name: filter.scopes
          schema:
            items:
              enum:
                - SCOPE_REDPANDA_CONNECT
                - SCOPE_REDPANDA_CLUSTER
                - SCOPE_MCP_SERVER
                - SCOPE_AI_AGENT
                - SCOPE_AI_GATEWAY
              type: string
            type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResourcesResponse'
          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 resources by secret
      tags:
        - Secrets
  '/v1/secrets/{id}':
    delete:
      description: Delete a secret.
      operationId: SecretService_DeleteSecret
      parameters:
        - description: The id of the secret to delete.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '204':
          content:
            application/json:
              schema: {}
          description: Secret deleted successfully
        '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: Delete secret
      tags:
        - Secrets
    get:
      description: Get a secret.
      operationId: SecretService_GetSecret
      parameters:
        - description: The id of the secret to retrieve.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSecretResponse'
          description: OK
        '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: Get secret
      tags:
        - Secrets
    put:
      description: Update a secret.
      operationId: SecretService_UpdateSecret
      parameters:
        - description: Secret identifier.
          in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSecretBody'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSecretResponse'
          description: OK
        '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: 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.'
      operationId: TopicService_ListTopics
      parameters:
        - description: Substring match on topic name. Case-sensitive.
          in: query
          name: filter.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/ListTopicsResponse'
          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 topics
      tags:
        - Topics
    post:
      description: 'Create a [topic](https://docs.redpanda.com/redpanda-cloud/get-started/create-topic/).'
      operationId: TopicService_CreateTopic
      parameters:
        - description: |-
            If true, makes this request a dry run; everything is validated but
            no topics are actually created.
          in: query
          name: validate_only
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTopicRequest.Topic'
        description: The topic to create.
        required: true
        x-originalParamName: topic
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTopicResponse'
          description: Topic created
        '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 topic
      tags:
        - Topics
  /v1/topics-partitions:
    patch:
      description: 'Add partitions to existing topics. Depending on the partitioning strategy used, this may impact ordering guarantees.'
      operationId: TopicService_AddPartitionsToTopics
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPartitionsToTopicsRequest'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddPartitionsToTopicsResponse'
          description: OK
        '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: Add topic partitions
      tags:
        - Topics
    put:
      description: 'Set partition counts for existing topics. New value must be equal to or larger than the current count of partitions in the topic. All topics will have the same final count of partitions. Depending on the partitioning strategy used, this may impact ordering guarantees.'
      operationId: TopicService_SetPartitionsToTopics
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPartitionsToTopicsRequest'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetPartitionsToTopicsResponse'
          description: OK
        '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: Set topic partitions
      tags:
        - Topics
  '/v1/topics/{topic_name}':
    delete:
      description: Delete the Kafka topic with the requested name.
      operationId: TopicService_DeleteTopic
      parameters:
        - description: Topic name.
          in: path
          name: topic_name
          required: true
          schema:
            type: string
      responses:
        '204':
          content:
            application/json:
              schema: {}
          description: Topic deleted successfully
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
          description: Unauthenticated.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
          description: Requested topic does not exist
        '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: Delete topic
      tags:
        - Topics
  '/v1/topics/{topic_name}/configurations':
    get:
      description: Get key-value configs for a topic.
      operationId: TopicService_GetTopicConfigurations
      parameters:
        - description: Topic name
          in: path
          name: topic_name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTopicConfigurationsResponse'
          description: OK
        '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: Get topic configurations
      tags:
        - Topics
    patch:
      description: Update a subset of the topic configurations.
      operationId: TopicService_UpdateTopicConfigurations
      parameters:
        - description: Topic name
          in: path
          name: topic_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/UpdateConfiguration'
              type: array
        required: true
        x-originalParamName: configurations
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateTopicConfigurationsResponse'
          description: OK
        '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: Update topic configuration
      tags:
        - Topics
    put:
      description: Update the entire set of key-value configurations for a topic. Config entries that are not provided in the request are removed and will fall back to their default values.
      operationId: TopicService_SetTopicConfigurations
      parameters:
        - description: Name of topic.
          in: path
          name: topic_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/SetConfiguration'
              type: array
        required: true
        x-originalParamName: configurations
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetTopicConfigurationsResponse'
          description: OK
        '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: Set topic configurations
      tags:
        - Topics
  '/v1/topics/{topic_name}/partitions':
    patch:
      description: 'Add partitions to an existing topic. Depending on the partitioning strategy used, this may impact ordering guarantees.'
      operationId: TopicService_AddTopicPartitions
      parameters:
        - description: The topic name.
          in: path
          name: topic_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddTopicPartitionsBody'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddTopicPartitionsResponse'
          description: OK
        '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: Add topic partitions
      tags:
        - Topics
    put:
      description: 'Set partitions to an existing topic. New value must be equal to or larger than the current count of partitions in the topic. Depending on the partitioning strategy used, this may impact ordering guarantees.'
      operationId: TopicService_SetTopicPartitions
      parameters:
        - description: The topic name.
          in: path
          name: topic_name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetTopicPartitionsBody'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetTopicPartitionsResponse'
          description: OK
        '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: Set topic partitions
      tags:
        - Topics
  /v1/transforms:
    get:
      description: 'Retrieve a list of Wasm transforms. Optional: filter based on transform name.'
      operationId: TransformService_ListTransforms
      parameters:
        - description: Substring match on transform name. Case-sensitive.
          in: query
          name: filter.name_contains
          schema:
            type: string
        - 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
        - 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
      responses:
        '200':
          content:
            application/json:
              example:
                next_page_token: ''
                transforms:
                  - environment_variables: []
                    input_topic_name: topic1
                    name: transform1
                    output_topic_names:
                      - output-topic11
                      - output-topic12
                    statuses:
                      - broker_id: 1
                        lag: 1
                        partition_id: 1
                        status: PARTITION_STATUS_RUNNING
                  - environment_variables: []
                    input_topic_name: topic2
                    name: transform2
                    output_topic_names:
                      - output-topic21
                      - output-topic22
                    statuses:
                      - broker_id: 2
                        lag: 2
                        partition_id: 2
                        status: PARTITION_STATUS_RUNNING
              schema:
                $ref: '#/components/schemas/ListTransformsResponse'
          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 transforms
      tags:
        - Wasm Transforms
    put:
      description: 'Initiate deployment of a new Wasm transform. This endpoint uses multipart/form-data encoding. Following deployment, a brief period is required before the Wasm transform becomes operational. Monitor the partition statuses to check whether the transform is active. This usually takes around 3s, but no longer than 10s.'
      operationId: TransformService_DeployTransform
      requestBody:
        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"}]}'
              properties:
                metadata:
                  $ref: '#/components/schemas/DeployTransformRequest'
                wasm_binary:
                  description: Binary file containing the compiled WASM transform. The maximum size for this file is 10MiB.
                  format: binary
                  type: string
              type: object
        description: Transform metadata as well as the WASM binary
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransformMetadata'
          description: Created
      summary: Deploy transform
      tags:
        - Wasm Transforms
  '/v1/transforms/{name}':
    delete:
      description: Delete a Wasm transform with the requested name.
      operationId: TransformService_DeleteTransform
      parameters:
        - description: Name of transform.
          example:
            name: transform1
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '204':
          content:
            application/json:
              example: {}
              schema: {}
          description: Transform deleted successfully
        '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: Delete transform
      tags:
        - Wasm Transforms
    get:
      description: Get a specific Wasm transform.
      operationId: TransformService_GetTransform
      parameters:
        - description: Name of transform.
          example:
            name: transform1
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              example:
                transform:
                  environment_variables: []
                  input_topic_name: topic1
                  name: transform1
                  output_topic_names:
                    - output-topic1
                    - output-topic2
                  statuses:
                    - broker_id: 1
                      lag: 1
                      partition_id: 1
                      status: PARTITION_STATUS_RUNNING
              schema:
                $ref: '#/components/schemas/GetTransformResponse'
          description: OK
        '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: Get transform
      tags:
        - Wasm Transforms
  /v1/users:
    get:
      description: 'List users. Optional: filter based on username.'
      operationId: UserService_ListUsers
      parameters:
        - description: Username.
          in: query
          name: filter.name
          schema:
            type: string
        - description: Substring match on username. Case-sensitive.
          in: query
          name: filter.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:
              example:
                next_page_token: ''
                users:
                  - name: payment-service
                  - name: jane
              schema:
                $ref: '#/components/schemas/ListUsersResponse'
          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 users
      tags:
        - Redpanda Users
    post:
      description: Create a new user.
      operationId: UserService_CreateUser
      requestBody:
        content:
          application/json:
            example:
              mechanism: SASL_MECHANISM_SCRAM_SHA_256
              name: payment-service
              password: secure-password
            schema:
              $ref: '#/components/schemas/CreateUserRequest.User'
        required: true
        x-originalParamName: user
      responses:
        '201':
          content:
            application/json:
              example:
                user:
                  mechanism: SASL_MECHANISM_SCRAM_SHA_256
                  name: payment-service
              schema:
                $ref: '#/components/schemas/CreateUserRequest.User'
          description: User created
        '400':
          content:
            application/json:
              example:
                code: INVALID_ARGUMENT
                details:
                  - '@type': type.googleapis.com/google.rpc.ErrorInfo
                    domain: redpanda.com/dataplane
                    metadata: {}
                    reason: REASON_INVALID_INPUT
                  - '@type': type.googleapis.com/google.rpc.BadRequest
                    field_violations:
                      - description: value length must be at least 3 characters
                        field: user.password
                        localized_message: null
                        reason: ''
                      - description: value is required
                        field: user.mechanism
                        localized_message: null
                        reason: ''
                message: provided parameters are invalid
              schema:
                $ref: '#/components/schemas/rpc.Status'
          description: Bad request. Check API documentation and update request.
        '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 user
      tags:
        - Redpanda Users
  '/v1/users/{name}':
    delete:
      description: Delete the specified user
      operationId: UserService_DeleteUser
      parameters:
        - description: Username
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        '204':
          content:
            application/json:
              example: {}
              schema: {}
          description: User deleted successfully
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.Status'
          description: Unauthenticated.
        '404':
          content:
            application/json:
              example:
                code: NOT_FOUND
                details:
                  - '@type': type.googleapis.com/google.rpc.ErrorInfo
                    domain: redpanda.com/dataplane
                    metadata: {}
                    reason: REASON_RESOURCE_NOT_FOUND
                message: user not found
              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: Delete user
      tags:
        - Redpanda Users
  '/v1/users/{user.name}':
    put:
      description: Update a user's credentials.
      operationId: UserService_UpdateUser
      parameters:
        - description: Username.
          in: path
          name: user.name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              user:
                mechanism: SASL_MECHANISM_SCRAM_SHA_256
                password: new-password
            schema:
              properties:
                mechanism:
                  $ref: '#/components/schemas/SASLMechanism'
                password:
                  description: Password.
                  type: string
              type: object
        required: true
        x-originalParamName: user
      responses:
        '200':
          content:
            application/json:
              example:
                user:
                  mechanism: SASL_MECHANISM_SCRAM_SHA_256
                  name: payment-service
              schema:
                $ref: '#/components/schemas/UpdateUserResponse.User'
          description: OK
        '400':
          content:
            application/json:
              example:
                code: INVALID_ARGUMENT
                details:
                  - '@type': type.googleapis.com/google.rpc.ErrorInfo
                    domain: redpanda.com/dataplane
                    metadata: {}
                    reason: REASON_INVALID_INPUT
                  - '@type': type.googleapis.com/google.rpc.BadRequest
                    field_violations:
                      - description: value length must be at least 3 characters
                        field: user.password
                        localized_message: null
                        reason: ''
                      - description: value is required
                        field: user.mechanism
                        localized_message: null
                        reason: ''
                message: provided parameters are invalid
              schema:
                $ref: '#/components/schemas/rpc.Status'
          description: Bad request. Check API documentation and update request.
        '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: Update user
      tags:
        - Redpanda Users
security:
  - auth0: []
servers:
  - description: Data Plane API
    url: 'https://{dataplane_api_subdomain}.cloud.redpanda.com'
    variables:
      dataplane_api_url:
        default: 'https://{dataplane_api_url}'
        description: "Find the Data Plane API base URL of a cluster by calling the Get Cluster endpoint of the Control Plane API. The dataplane_api.url field is returned in the response body.<br><br>\n\t\t\t\t\tExample (Dedicated): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.fmc.prd.cloud.redpanda.com\"<br>\n\t\t\t\t\tExample (BYOC): \"https://api-a4cb21.ck09mi9c4vs17hng9gig.byoc.prd.cloud.redpanda.com\""
      dataplane_api_subdomain:
        default: '{dataplane_api_subdomain}'
        description: |-
          From the `dataplane_api.url` value in the Control Plane API response, extract the subdomain (the part between `https://` and `.cloud.redpanda.com`). Enter this value in the Data Plane API URL field.

          Example: If the URL is `https://api-a4cb21.ck09mi9c4vs17hng9gig.fmc.prd.cloud.redpanda.com`, enter `api-a4cb21.ck09mi9c4vs17hng9gig.fmc.prd`.
tags:
  - description: 'Manage Redpanda access control lists (ACLs). See [Redpanda Cloud Authorization](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-authorization/) for more information.'
    name: Redpanda ACLs
  - description: 'Manage Redpanda topics stored in object storage. See: [Mountable Topics](https://docs.redpanda.com/redpanda-cloud/manage/mountable-topics/)'
    name: Cloud Storage
  - description: Manage Wasm transforms in Redpanda.
    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: '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.'
    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/).'
    name: Redpanda Users
x-topics:
  - title: Quickstart
    content:
      $ref: ../x-topics/quickstart.md
  - title: Cloud API Overview
    content:
      $ref: ../../shared/x-topics/cloud-api-overview.md
  - title: Authentication
    content:
      $ref: ../../shared/x-topics/cloud-about-authentication.md
  - title: Error and Status Codes
    content:
      $ref: ../x-topics/error-and-status-codes.md
  - title: Deprecation Policy
    content:
      $ref: ../../shared/x-topics/cloud-api-deprecation-policy.md
