openapi: 3.0.1
info:
  title: Redpanda Admin API
  version: 1.0.0
  description: |
    Use the Admin API to manage and administer Redpanda clusters. To view ConnectRPC endpoints available in Redpanda v25.3 and later, select "v2" from the version selector on this page.

    See also:

    - [Manage Redpanda Using the Admin API](https://docs.redpanda.com/25.3/manage/use-admin-api)
    - [Configure Authentication](https://docs.redpanda.com/current/manage/security/authentication/)

    ---
  x-feedbackLink:
    label: Share feedback
    url: 'https://github.com/redpanda-data/docs/issues/new?template=01_doc_request.yml'
servers:
  - url: 'http://localhost:9644'
paths:
  #                   $ref: '#/components/schemas/cluster_config_properties'
  #                 items:
  #                 type: array
  #               schema:
  #           application/json:
  #         content:
  #         description: Cluster configuration response
  #       200:
  #     responses:
  #     operationId: get_config
  #       For supported properties, see [/cluster_config/schema](#operation/get_cluster_config_schema).
  #       Get the cluster configuration properties of a cluster.
  #     description: |
  #     summary: Get cluster configurations
  #     - Cluster
  #     tags:
  #   get:
  # /config:
  /v1/node_config:
    get:
      tags:
        - Clusters
      summary: Get brokers' configurations
      description: |
        List the configuration properties of all brokers (nodes) in the cluster.

        For the broker configuration properties of the latest Redpanda version, see [Broker Configuration Properties](https://docs.redpanda.com/docs/reference/broker-properties/).
      operationId: get_node_config
      responses:
        '200':
          description: Brokers' configurations response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/node_config_properties'
  /v1/loggers:
    get:
      tags:
        - Logging
      summary: Get loggers
      description: List of all registered loggers. Each logger has its own configurable `log_level` that dictates how verbose logs are within their corresponding subsystems.
      operationId: get_loggers
      responses:
        '200':
          description: Loggers response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/logger'
  '/v1/config/log_level/{name}':
    put:
      tags:
        - Logging
      summary: Set log level
      description: Set the log level for a logger.
      operationId: set_log_level
      parameters:
        - name: name
          in: path
          description: Name of logger.
          required: true
          schema:
            type: string
        - name: level
          in: query
          description: Log level to set.
          required: true
          schema:
            type: string
            enum:
              - error
              - warn
              - info
              - debug
              - trace
        - name: expires
          in: query
          description: |
            Duration, in seconds, that the logger is set to the specified log level, after which the level reverts to its previous value.

            * **Default value**: 600 (10 minutes)
            * **Valid values**: `0` (infinite duration) or greater
          schema:
            type: number
      responses:
        '200':
          description: Log level set successfully
          content: {}
  /v1/cluster_config:
    get:
      tags:
        - Clusters
      summary: Get cluster configuration
      description: |
        List the configuration properties of a cluster.

        For supported cluster properties, see [/cluster_config/schema](#operation/get_cluster_config_schema).
      operationId: get_cluster_config
      parameters:
        - name: include_defaults
          in: query
          description: 'If false, only properties which have been changed from the default are included.'
          schema:
            type: string
      responses:
        '200':
          description: Cluster configuration response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/cluster_config_properties'
    put:
      tags:
        - Clusters
      summary: Update cluster configuration
      description: Modify cluster configuration properties of a cluster.
      operationId: patch_cluster_config
      parameters:
        - name: force
          in: query
          description: 'If nonzero, skip validation of properties, and permit setting unknown properties'
          schema:
            type: string
        - name: dry_run
          in: query
          description: 'If nonzero, do not apply any changes (but still do validation and return 400 on errors)'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/patch_cluster_config_request'
      responses:
        '200':
          description: Success
          content: {}
  /v1/cluster_config/schema:
    get:
      tags:
        - Clusters
      summary: Get cluster configuration schema
      description: Get the schema describing all cluster configuration properties.
      operationId: get_cluster_config_schema
      responses:
        '200':
          description: Cluster configuration schema response
          content:
            application/json:
              schema:
                type: object
  /v1/cluster_config/status:
    get:
      tags:
        - Clusters
      summary: Get cluster configuration status
      description: Get the configuration status of all brokers in a cluster.
      operationId: get_cluster_config_status
      responses:
        '200':
          description: Cluster configuration status response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/cluster_config_status'
  '/v1/raft/{group_id}/transfer_leadership':
    post:
      tags:
        - Partitions
      summary: Transfer Raft group leadership
      description: 'Transfer leadership of the Raft group (`{group_id}`) to the node with `target` ID.'
      operationId: raft_transfer_leadership
      parameters:
        - name: group_id
          in: path
          required: true
          schema:
            type: integer
        - name: target
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: Raft leadership transfer success
          content: {}
  /v1/security/roles:
    get:
      parameters:
        - description: Return only roles whose names match this substring
          in: query
          name: filter
          required: false
          schema:
            type: string
        - description: Return only roles which are assigned to this user
          in: query
          name: principal
          required: false
          schema:
            type: string
        - description: Applies to `principal` parameter. Ignored if `principal` is not set
          in: query
          name: principal_type
          required: false
          schema:
            enum:
              - User
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/roles_list'
          description: OK
      tags:
        - Roles
      operationId: list_roles
      summary: List roles
    post:
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/role_definition'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rbac_error_body'
          description: Bad Request
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rbac_error_body'
          description: Conflict
      tags:
        - Roles
      operationId: create_role
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/role_definition'
        required: true
      summary: Create a role
  '/v1/security/roles/{role}':
    delete:
      parameters:
        - in: path
          name: role
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Role successfully deleted
          content: {}
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rbac_error_body'
          description: Not Found
      tags:
        - Roles
      operationId: delete_role
      summary: Remove a role by name
    get:
      parameters:
        - in: path
          name: role
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/role'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rbac_error_body'
          description: Not Found
      tags:
        - Roles
      operationId: get_role
      summary: Get the specified role
  '/v1/security/roles/{role}/members':
    get:
      parameters:
        - in: path
          name: role
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/role_members_list'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rbac_error_body'
          description: Not Found
      tags:
        - Roles
      operationId: list_role_members
      summary: List members assigned a given role
    post:
      parameters:
        - in: path
          name: role
          required: true
          schema:
            type: string
        - description: 'Creates a role with name {role} if not found'
          in: query
          name: create
          required: false
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/role_member_update_response'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rbac_error_body'
          description: Bad Request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rbac_error_body'
          description: Not found
      tags:
        - Roles
      operationId: update_role_members
      requestBody:
        content:
          application/json:
            schema:
              properties:
                add:
                  items:
                    $ref: '#/components/schemas/role_member'
                  type: array
                remove:
                  items:
                    $ref: '#/components/schemas/role_member'
                  type: array
              type: object
      summary: Update role membership
  /v1/security/users:
    get:
      tags:
        - Users
      summary: List users
      description: List users.
      operationId: list_users
      parameters:
        - name: include_ephemeral
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: List users response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
    post:
      tags:
        - Users
      summary: Create user
      description: Create a user.
      operationId: create_user
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/security_create_user'
      responses:
        '200':
          description: User successfully created
          content: {}
  '/v1/security/users/{user}':
    put:
      tags:
        - Users
      summary: Update user
      description: Update a user.
      operationId: update_user
      parameters:
        - name: user
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/scram_credential'
      responses:
        '200':
          description: User successfully updated
          content: {}
    delete:
      tags:
        - Users
      summary: Delete user
      description: Delete a user.
      operationId: delete_user
      parameters:
        - name: user
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User successfully deleted
          content: {}
  /v1/security/users/roles:
    get:
      parameters:
        - description: Return only roles whose names match this substring
          in: query
          name: filter
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/roles_list'
          description: OK
        '401':
          description: Unauthorized
      tags:
        - Users
      operationId: list_user_roles
      summary: List role assignments for a user
  /v1/security/oidc/whoami:
    get:
      tags:
        - Authentication
      summary: Verify identity of current user and resolve to a principal
      description: Obtain the principal and details of the JWT passed in the bearer token.
      operationId: oidc_whoami
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidc_whoami_response'
        '401':
          description: Unauthorized
          content: {}
  /v1/security/oidc/keys/cache_invalidate:
    post:
      tags:
        - Authentication
      summary: Reload the keys from the identity provider
      description: Flush the JWK cache and force reload keys.
      operationId: oidc_keys_cache_invalidate
      responses:
        '200':
          description: Keys reload successful
          content: {}
        '500':
          description: Keys reload failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidc_keys_cache_invalidate_error_response'
  /v1/security/oidc/revoke:
    post:
      tags:
        - Authentication
      summary: Reload the keys from the identity provider and disconnect clients
      description: Explicitly revoke client tokens by flushing caches and disconnecting clients to ensure revoked tokens are not used.
      operationId: oidc_revoke
      responses:
        '200':
          description: Key reload successful
          content: {}
        '500':
          description: Key reload failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oidc_keys_cache_invalidate_error_response'
  /v1/security/report:
    get:
      tags:
        - Security
      summary: Get security report
      description: |
        Get a comprehensive security report for the cluster, including information about 
        security configurations such as authentication methods, TLS settings, and security alerts for all interfaces (Kafka, RPC, Admin, Schema Registry, 
        HTTP Proxy).
      operationId: get_security_report
      responses:
        '200':
          description: Security report
          content:
            application/json:
              schema:
                type: object
                properties:
                  interfaces:
                    type: object
                    properties:
                      kafka:
                        type: array
                        items:
                          $ref: '#/components/schemas/kafka_interface_security_report'
                      rpc:
                        $ref: '#/components/schemas/rpc_interface_security_report'
                      admin:
                        type: array
                        items:
                          $ref: '#/components/schemas/admin_interface_security_report'
                      schema_registry:
                        type: array
                        items:
                          $ref: '#/components/schemas/schema_registry_interface_security_report'
                      schema_registry_client:
                        $ref: '#/components/schemas/client_security_report'
                      pandaproxy:
                        type: array
                        items:
                          $ref: '#/components/schemas/pandaproxy_interface_security_report'
                      audit_log_client:
                        $ref: '#/components/schemas/client_security_report'
                  alerts:
                    type: array
                    items:
                      $ref: '#/components/schemas/security_report_alert'
  /v1/status/ready:
    get:
      tags:
        - Clusters
      summary: Get cluster ready status
      description: Check the health of the Redpanda cluster.
      operationId: ready
      responses:
        '200':
          description: Cluster ready status response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cluster_ready_status'
  /v1/features:
    get:
      tags:
        - Licenses and Features
      summary: List available features
      description: List the available Redpanda features. Available features are based on the loaded Redpanda license and activated features configuration.
      operationId: get_features
      responses:
        '200':
          description: Features response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/features_response'
  /v1/features/enterprise:
    get:
      summary: Get license and feature status
      operationId: get_enterprise_license_status
      tags:
        - Licenses and Features
      responses:
        '200':
          description: The status of the Enterprise Edition license and details about Enterprise features that are in-use in the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/enterprise_response'
      description: |
        This endpoint reports the current status of the [Enterprise Edition license](https://docs.redpanda.com/docs/get-started/licenses/) and lists all Enterprise features currently in use. Use this endpoint to monitor license compliance and detect if any Enterprise features are active without a valid license.
  /v1/features/license:
    get:
      tags:
        - Licenses and Features
      summary: Get license details
      description: Get details about the currently loaded Enterprise Edition license.
      operationId: get_license
      responses:
        '200':
          description: License response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/license_response'
    put:
      tags:
        - Licenses and Features
      summary: Upload license
      description: Upload a new license for Redpanda.
      operationId: put_license
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/license_contents'
      responses:
        '200':
          description: Upload license success
          content: {}
  '/v1/features/{feature_name}':
    put:
      tags:
        - Licenses and Features
      summary: Activate feature
      description: Activate or deactivate a feature.
      operationId: put_feature
      parameters:
        - name: feature_name
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Activate feature success
          content: {}
  /v1/brokers:
    get:
      tags:
        - Brokers
      summary: Get all brokers
      description: Get information about all brokers in the cluster.
      operationId: get_brokers
      responses:
        '200':
          description: Brokers response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/broker'
  '/v1/brokers/{id}':
    get:
      tags:
        - Brokers
      summary: Get a broker
      description: Get information about one broker in the cluster.
      operationId: get_broker
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Broker response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/broker'
  '/v1/brokers/{id}/cancel_partition_moves':
    post:
      tags:
        - Brokers
      summary: Cancel partition movement
      description: Cancel movement of all partition replicas to or from the specified broker.
      operationId: cancel_partition_moves
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Cancel partition moves success
          content: {}
  '/v1/brokers/{id}/decommission':
    get:
      tags:
        - Brokers
      summary: Get broker decommission status
      description: Get the status on the decommissioning of the broker with the specified `id`.
      operationId: get_decommission
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Broker decommission status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/decommission_status'
    put:
      tags:
        - Brokers
      summary: Decommission broker
      description: Decommission the specified broker.
      operationId: decommission
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Decommission broker success
          content: {}
  '/v1/brokers/{id}/maintenance':
    put:
      tags:
        - Brokers
      summary: Enter broker maintenance mode
      description: Request the specified broker to enter maintenance mode.
      operationId: start_broker_maintenance
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Enter broker maintenance mode success
          content: {}
    delete:
      tags:
        - Brokers
      summary: Exit broker maintenance mode
      description: Request the specified broker to exit maintenance mode.
      operationId: stop_broker_maintenance
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Exit broker maintenance mode success
          content: {}
  '/v1/brokers/{id}/recommission':
    put:
      tags:
        - Brokers
      summary: Recommission broker
      description: Recommission the specified broker.
      operationId: recommission
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Recommission broker success
          content: {}
  /v1/broker/pre_restart_probe:
    get:
      tags:
        - Brokers
      summary: Check broker pre-restart
      description: Check if it is safe to restart this broker.
      operationId: pre_restart_probe
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
          description: 'Limit the number of partitions listed for each risk type (default: 128).'
      responses:
        '200':
          description: 'Pre-restart check result. Returns risks associated with restarting the broker, and partitions affected, if any.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pre_restart_check_result'
  /v1/broker/post_restart_probe:
    get:
      tags:
        - Brokers
      summary: Check broker post-restart
      description: Check if the broker has recovered after a restart.
      operationId: post_restart_probe
      responses:
        '200':
          description: Post-restart check result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/post_restart_check_result'
  /v1/cluster_view:
    get:
      tags:
        - Clusters
      summary: Get cluster view
      description: Get a summary view of a cluster and its brokers.
      operationId: get_cluster_view
      responses:
        '200':
          description: Cluster view response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cluster_view'
  /v1/maintenance:
    get:
      tags:
        - Brokers
      summary: Get maintenance status
      description: Get status of maintenance.
      operationId: get_local_maintenance
      responses:
        '200':
          description: Maintenance status response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/maintenance_status'
    put:
      tags:
        - Brokers
      summary: Start maintenance
      description: Start local maintenance.
      operationId: start_local_maintenance
      responses:
        '200':
          description: Start maintenance success
          content: {}
    delete:
      tags:
        - Brokers
      summary: Stop maintenance
      description: Stop local maintenance.
      operationId: stop_local_maintenance
      responses:
        '200':
          description: Stop maintenance success
          content: {}
  /v1/topics/mountable:
    get:
      operationId: list_mountable_topics
      tags:
        - Mount and unmount topics
      summary: List mountable topics
      description: List mountable topics available in object storage.
      responses:
        '200':
          description: List of mountable topics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/list_mountable_topics_response'
  /v1/topics/mount:
    post:
      operationId: mount_topics
      tags:
        - Mount and unmount topics
      summary: Mount a topic to a cluster
      description: Mount a topic in object storage to a cluster according to the specified configuration.
      requestBody:
        description: Mount topic configuration
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mount_configuration'
        required: true
      responses:
        '200':
          description: Underlying migration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/migration_info'
  /v1/topics/unmount:
    post:
      operationId: unmount_topics
      tags:
        - Mount and unmount topics
      summary: Unmount topics from a cluster
      description: Unmount provided list of topics from a cluster to object storage.
      requestBody:
        description: List of topics to unmount
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/namespaced_topic'
        required: true
      responses:
        '200':
          description: Underlying migration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/migration_info'
  /v1/migrations:
    get:
      summary: List all available migrations
      operationId: list_migrations
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                    - $ref: '#/components/schemas/outbound_migration_state'
                    - $ref: '#/components/schemas/inbound_migration_state'
      tags:
        - Mount and unmount topics
    put:
      summary: Create migration
      operationId: add_migration
      tags:
        - Mount and unmount topics
      requestBody:
        description: Migration configuration
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/inbound_migration'
                - $ref: '#/components/schemas/outbound_migration'
              discriminator:
                propertyName: migration_type
                mapping:
                  inbound: '#/components/schemas/inbound_migration'
                  outbound: '#/components/schemas/outbound_migration'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/inbound_migration'
                  - $ref: '#/components/schemas/outbound_migration'
  '/v1/migrations/{id}':
    get:
      summary: Get migration state
      operationId: get_migration
      tags:
        - Mount and unmount topics
      parameters:
        - name: id
          description: Mount or unmount operation ("migration") ID
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/inbound_migration'
                  - $ref: '#/components/schemas/outbound_migration'
    post:
      summary: Execute migration action
      operationId: execute_migration_action
      tags:
        - Mount and unmount topics
      parameters:
        - name: id
          description: Mount or unmount operation ("migration") ID
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: action
          in: query
          required: true
          description: Action to execute for migration
          schema:
            type: string
            enum:
              - prepare
              - execute
              - finish
              - cancel
      responses:
        '200':
          description: OK
          content: {}
    delete:
      summary: Delete migration
      description: Delete specified migration.
      operationId: delete_migration
      tags:
        - Mount and unmount topics
      parameters:
        - name: id
          description: Mount or unmount operation ("migration") ID.
          in: path
          required: true
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OK
          content: {}
  /v1/partitions:
    get:
      tags:
        - Partitions
      summary: List partitions
      description: 'Get a list of partition replicas hosted by the current broker. Returns only those partitions whose replicas are present on the queried broker, not all partitions in the cluster.'
      operationId: get_partitions
      responses:
        '200':
          description: List partitions response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/partition_summary'
  /v1/partitions/local_summary:
    get:
      tags:
        - Partitions
      summary: Get local partitions
      description: Get a summary of the partition(s) replicated on the requesting broker.
      operationId: get_partitions_local_summary
      responses:
        '200':
          description: Local partitions response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partitions_local_summary'
  /v1/partitions/majority_lost:
    get:
      tags:
        - Partitions
      summary: Get partitions with lost majority
      description: List of partitions with lost majority given an input set of dead node (broker) IDs.
      operationId: majority_lost
      responses:
        '200':
          description: List of partitions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ntp_with_majority_loss'
      parameters:
        - name: dead_nodes
          in: query
          required: true
          allowReserved: true
          description: 'Use a comma-separated list of IDs, for example `1,3,5`.'
          schema:
            type: string
  /v1/partitions/force_recover_from_nodes:
    post:
      tags:
        - Partitions
      summary: Force recover partitions
      description: '[Force recover partitions](https://docs.redpanda.com/current/manage/cluster-maintenance/nodewise-partition-recovery/) from input list of nodes (brokers).'
      operationId: force_recover_from_nodes
      requestBody:
        description: List of nodes (brokers)
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/dead_node'
        required: true
      responses:
        '200':
          content: {}
          description: OK
  /v1/partitions/rebalance:
    post:
      tags:
        - Partitions
      summary: Rebalance partitions
      description: Trigger an on-demand rebalancing of partitions in the cluster.
      operationId: trigger_partitions_rebalance
      responses:
        '200':
          description: Success
          content: {}
  /v1/partitions/rebalance_cores:
    post:
      tags:
        - Partitions
      summary: Rebalance partitions among broker cores
      description: Trigger an on-demand rebalancing of core assignment of partitions in this broker.
      operationId: trigger_partitions_shard_rebalance
      responses:
        '200':
          description: Success
          content: {}
  /v1/partitions/reconfigurations:
    get:
      tags:
        - Partitions
      summary: List ongoing partition reconfigurations
      description: List ongoing partition reconfigurations.
      operationId: get_partition_reconfigurations
      responses:
        '200':
          description: Partition reconfigurations response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/reconfiguration'
  '/v1/partitions/{namespace}/{topic}':
    get:
      tags:
        - Partitions
      summary: Get topic partition information
      description: Get topic partition information.
      operationId: get_topic_partitions
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Topic partitions information response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/partition'
  '/v1/partitions/{namespace}/{topic}/{partition}':
    get:
      tags:
        - Partitions
      summary: Get detailed partition information
      description: Get detailed information for a partition.
      operationId: get_partition
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Partition information response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/partition'
  '/v1/partitions/{namespace}/{topic}/{partition}/cancel_reconfiguration':
    post:
      tags:
        - Partitions
      summary: Cancel partition reconfiguration
      description: Cancel an in-progress reconfiguration of a partition.
      operationId: cancel_partition_reconfiguration
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Cancel reconfiguration success
          content: {}
  '/v1/partitions/{namespace}/{topic}/{partition}/mark_transaction_expired':
    post:
      tags:
        - Transactions
      summary: Mark transaction expired
      description: Mark transaction expired for the specified partition.
      operationId: mark_transaction_expired
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
        - name: id
          in: query
          required: true
          schema:
            type: integer
        - name: epoch
          in: query
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Transaction expired success
          content: {}
  '/v1/partitions/{namespace}/{topic}/{partition}/replicas':
    post:
      tags:
        - Partitions
      summary: Update partition replicas
      description: Set the replica(s) of a partition.
      operationId: set_partition_replicas
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Update partition replicas success
          content: {}
  '/v1/partitions/{namespace}/{topic}/{partition}/replicas/{node}':
    post:
      tags:
        - Partitions
      summary: Update partition replica core
      description: Assign a partition replica to a broker core (shard).
      operationId: set_partition_replica_core
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
        - name: node
          description: Broker ID
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/core'
        required: true
      responses:
        '200':
          description: Replica core updated successfully
          content: {}
  '/v1/partitions/{namespace}/{topic}/{partition}/transactions':
    get:
      tags:
        - Partitions
      summary: Get partition transactions
      description: Get all transactions for a partition.
      operationId: get_transactions
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Partition transactions response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactions'
  '/v1/partitions/{namespace}/{topic}/{partition}/transfer_leadership':
    post:
      tags:
        - Partitions
      summary: Transfer leadership
      description: Transfer Raft group leadership of a topic to a specified partition.
      operationId: kafka_transfer_leadership
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
        - name: target
          in: query
          schema:
            type: integer
      responses:
        '200':
          description: Transfer leadership success
          content: {}
  '/v1/partitions/{namespace}/{topic}/{partition}/unclean_abort_reconfiguration':
    post:
      tags:
        - Unstable APIs
      summary: Abort partition reconfiguration
      description: Forcibly abort an in-progress reconfiguration of a partition.
      operationId: unclean_abort_partition_reconfiguration
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Abort reconfiguration success
          content: {}
  '/v1/transaction/{transactional_id}/find_coordinator':
    get:
      tags:
        - Transactions
      summary: Get transaction coordinator
      description: Get transaction coordinator by transactional ID.
      operationId: find_coordinator
      parameters:
        - name: transactional_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Find coordinator response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/find_coordinator_reply'
  '/v1/transaction/{transactional_id}/delete_partition':
    post:
      tags:
        - Transactions
      summary: Delete partition from transaction
      description: Delete a partition from a transaction.
      operationId: delete_partition
      parameters:
        - name: transactional_id
          in: path
          required: true
          schema:
            type: string
        - name: namespace
          in: query
          required: true
          schema:
            type: string
        - name: topic
          in: query
          required: true
          schema:
            type: string
        - name: partition_id
          in: query
          required: true
          schema:
            type: integer
        - name: etag
          in: query
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Delete partition success
          content: {}
  /v1/transactions:
    get:
      tags:
        - Transactions
      summary: List all transactions
      description: Get a list of all transactions.
      operationId: get_all_transactions
      responses:
        '200':
          description: Transactions response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/transaction_summary'
  /v1/cluster/cancel_reconfigurations:
    post:
      tags:
        - Partitions
      summary: Cancel all partition reconfigurations
      description: Cancel all partition reconfigurations.
      operationId: cancel_all_partitions_reconfigurations
      responses:
        '200':
          description: Cancel reconfigurations successful
          content: {}
  /v1/cluster/health_overview:
    get:
      tags:
        - Clusters
      summary: Get cluster health overview
      description: Get cluster health overview.
      operationId: get_cluster_health_overview
      responses:
        '200':
          description: Cluster health overview response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cluster_health_overview'
  /v1/cluster/partitions:
    get:
      summary: Get cluster-level metadata for all partitions in cluster
      description: Get cluster-level metadata for all partitions in cluster.
      operationId: get_cluster_partitions
      parameters:
        - name: disabled
          in: query
          required: false
          schema:
            type: boolean
        - name: with_internal
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: Partition metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/cluster_partition'
      tags:
        - Partitions
  '/v1/cluster/partitions/{namespace}/{topic}':
    post:
      summary: Disable/enable all partitions of a topic
      description: 'Disable or enable all partitions of a topic. To disable, use `{''disabled'': true}` in request body. To enable, use `{''disabled'': false}`.'
      operationId: post_cluster_partitions_topic
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/disable_enable_partitions'
        required: true
      responses:
        '200':
          description: Partitions disabled or enabled successfully
          content: {}
      tags:
        - Partitions
    get:
      summary: Get cluster-level metadata for all partitions in topic
      description: Get cluster-level metadata for all partitions in topic.
      operationId: get_cluster_partitions_topic
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: disabled
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: Topic partitions metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/cluster_partition'
      tags:
        - Partitions
  '/v1/cluster/partitions/{namespace}/{topic}/{partition}':
    post:
      summary: Disable/enable a single partition
      description: 'Disable or enable a single partition. To disable, use `{''disabled'': true}` in request body. To enable, use `{''disabled'': false}`.'
      operationId: post_cluster_partitions_topic_partition
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/disable_enable_partitions'
        required: true
      responses:
        '200':
          description: Individual partition disabled or enabled successfully
          content: {}
      tags:
        - Partitions
  /v1/cluster/partition_balancer/status:
    get:
      tags:
        - Partitions
      summary: Get partition balancer status
      description: Get the status of the partition auto-balancer.
      operationId: get_partition_balancer_status
      responses:
        '200':
          description: Partition balancer status response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partition_balancer_status'
  /v1/cluster/uuid:
    get:
      tags:
        - Clusters
      summary: Get cluster UUID
      description: 'Get the UUID of the cluster this broker belongs to. (Note, this UUID is different than the configurable cluster identifier used in metrics.)'
      operationId: get_cluster_uuid
      responses:
        '200':
          description: Cluster UUID response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/uuid'
  /v1/debug/bundle:
    post:
      tags:
        - Debugging
      summary: Start a debug bundle collection
      description: Start a debug bundle collection.
      operationId: post_debug_bundle
      requestBody:
        description: Request to start a debug bundle collection.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                job_id:
                  type: string
                  description: UUID for the debug bundle job.
                  example: 123e4567-e89b-12d3-a456-426614174000
                config:
                  type: object
                  description: Optional configuration for debug bundle collection.
                  properties:
                    authentication:
                      type: object
                      description: Authentication object
                      properties:
                        mechanism:
                          type: string
                          description: SCRAM mechanism
                        username:
                          type: string
                          description: username used by RPK to authenticate against Kafka and Admin API
                        password:
                          type: string
                          description: password used by RPK to authenticate against Kafka and Admin API
                    controller_logs_size_limit_bytes:
                      type: integer
                      description: Size limit for controller logs in bytes
                    cpu_profiler_wait_seconds:
                      type: integer
                      description: Time to wait for CPU profiling in seconds
                    logs_since:
                      type: string
                      description: 'Include logs dated from the specified date onward (journalctl date format YYYY-MM-DD, ''yesterday'', or ''today'')'
                    logs_size_limit_bytes:
                      type: integer
                      description: Size limit for logs in bytes
                    logs_until:
                      type: string
                      description: 'Include logs older than the specified date (journalctl date format YYYY-MM-DD, ''yesterday'', or ''today'')'
                    metrics_interval_seconds:
                      type: integer
                      description: Interval for metrics collection in seconds
                    metrics_samples:
                      type: integer
                      description: Number of metric samples to collect
                    partition:
                      type: string
                      description: Partition identifier for which logs are collected
                    tls_enabled:
                      type: boolean
                      description: Enables TLS for the connection
                    tls_insecure_skip_verify:
                      type: boolean
                      description: Skip verification of the server's certificate chain and hostname
                    namespace:
                      type: string
                      description: Kubernetes namespace for filtering Kubernetes resources
                    label_selector:
                      type: array
                      description: Label selection to filter Kubernetes resources in the debug bundle response
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                            description: The resource label key
                          value:
                            type: string
                            description: The resource label value
      responses:
        '200':
          description: Successfully started the debug bundle collection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    description: UUID of the job started.
                    example: 123e4567-e89b-12d3-a456-426614174000
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '409':
          description: Debug bundle process already running.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '422':
          description: 'Invalid input, could not start the debug bundle collection.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
    get:
      tags:
        - Debugging
      summary: Get status of debug bundle collection
      description: Get the status of a debug bundle collection process.
      operationId: get_debug_bundle_status
      responses:
        '200':
          description: Successfully retrieved the status of the debug bundle collection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    description: UUID of the current debug bundle job.
                    example: 123e4567-e89b-12d3-a456-426614174000
                  status:
                    type: string
                    description: Status of the debug bundle process.
                    enum:
                      - running
                      - success
                      - error
                    example: running
                  created:
                    type: string
                    format: int64
                    description: Timestamp of when the debug bundle process started.
                  filename:
                    type: string
                    description: The name of the output file if the process succeeded.
                  stdout:
                    type: array
                    items:
                      type: string
                    description: Output from the stdout stream of the process.
                  stderr:
                    type: array
                    items:
                      type: string
                    description: Output from the stderr stream of the process.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
  '/v1/debug/bundle/{jobid}':
    delete:
      tags:
        - Debugging
      summary: Cancel a debug bundle process
      description: Cancel the debug bundle process with a given job ID.
      operationId: delete_debug_bundle
      parameters:
        - name: jobid
          in: path
          required: true
          description: UUID of the debug bundle job to cancel.
          schema:
            type: string
            example: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '204':
          description: Debug bundle process cancelled successfully.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '422':
          description: Format error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
  '/v1/debug/bundle/file/{filename}':
    get:
      tags:
        - Debugging
      summary: Download a debug bundle file
      description: Download a debug bundle file.
      operationId: get_debug_bundle_file
      parameters:
        - name: filename
          in: path
          required: true
          description: The name of the file to download.
          schema:
            type: string
            example: debug-bundle-123e4567-e89b-12d3-a456-426614174000.zip
      responses:
        '200':
          description: Debug bundle file successfully downloaded.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '404':
          description: Debug bundle file not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
    delete:
      tags:
        - Debugging
      summary: Delete a debug bundle file
      description: Delete the debug bundle file with a given filename.
      operationId: delete_debug_bundle_file
      parameters:
        - name: filename
          in: path
          required: true
          description: The name of the file to delete.
          schema:
            type: string
            example: debug-bundle-123e4567-e89b-12d3-a456-426614174000.zip
      responses:
        '204':
          description: OK
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '404':
          description: Debug bundle file not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_body'
  /v1/debug/self_test/start:
    post:
      tags:
        - Debugging
      summary: Start cluster self-test
      description: Start running the Redpanda cluster self-test.
      operationId: self_test_start
      responses:
        '200':
          description: Start self-test success
          content: {}
  /v1/debug/self_test/status:
    get:
      tags:
        - Debugging
      summary: Get cluster self-test status
      description: Get the status of the Redpanda cluster self-test.
      operationId: self_test_status
      responses:
        '200':
          description: Self-test status response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/self_test_node_report'
  /v1/debug/self_test/stop:
    post:
      tags:
        - Debugging
      summary: Stop cluster self-test
      description: Stop running the Redpanda cluster self-test.
      operationId: self_test_stop
      responses:
        '200':
          description: Stop self-test success
          content: {}
  /v1/debug/cpu_profile:
    get:
      operationId: get_cpu_profile
      tags:
        - Debugging
      summary: Get samples from CPU profiler
      responses:
        '200':
          description: CPU profile
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/cpu_profile_shard_sample'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/shard_error'
                  - $ref: '#/components/schemas/wait_ms_error'
    parameters:
      - name: shard
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: wait_ms
        in: query
        required: false
        schema:
          type: integer
          format: int64
  '/v1/debug/partitions/{namespace}/{topic}/{partition}/force_replicas':
    post:
      tags:
        - Partitions
      summary: Force update replicas
      operationId: force_update_partition_replicas
      description: Force update partition replicas
      responses:
        '200':
          description: Replica update successful
          content: {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              description: Replica assignments
              items:
                $ref: '#/components/schemas/assignment'
    parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: topic
        in: path
        required: true
        schema:
          type: string
      - name: partition
        in: path
        required: true
        schema:
          type: integer
          format: int64
  /v1/debug/restart_service:
    put:
      tags:
        - Debugging
      summary: Restart service
      description: Restart a Redpanda service.
      operationId: restart_service
      parameters:
        - name: service
          in: query
          required: true
          schema:
            type: string
            enum:
              - http-proxy
              - schema-registry
      responses:
        '200':
          description: Restart successful
        '400':
          description: Service name is required
        '404':
          description: Service not found
        '500':
          description: Internal Server Error
  /v1/cloud_storage/topic_recovery:
    post:
      tags:
        - Tiered Storage
      summary: Start topic scan and recovery
      description: Initiate a topic scan on bucket and start topic recovery.
      operationId: initiate_topic_scan_and_recovery
      requestBody:
        content:
          application/json:
            schema:
              type: object
        required: false
      responses:
        '200':
          description: Topic scan initiated successfully
          content: {}
    get:
      tags:
        - Tiered Storage
      summary: Query automated topic recovery status
      description: Query status of automated topic recovery.
      operationId: query_automated_recovery
      responses:
        '200':
          description: Topic recovery status response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/topic_recovery_status'
  '/v1/cloud_storage/status/{topic}/{partition}':
    get:
      tags:
        - Tiered Storage
      summary: Get cloud storage status for a partition
      description: Get cloud storage status for a partition.
      operationId: get_partition_cloud_storage_status
      parameters:
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Partition cloud storage status response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/partition_cloud_storage_status'
  '/v1/cloud_storage/manifest/{topic}/{partition}':
    get:
      tags:
        - Tiered Storage
      summary: Get in-memory partition manifest
      description: Get the in-memory partition manifest in JSON format.
      operationId: get_manifest
      parameters:
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: In-memory partition manifest in JSON response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/manifest_json'
  /v1/cloud_storage/lifecycle:
    get:
      tags:
        - Tiered Storage
      summary: Get topic lifecycle markers
      description: Get lifecycle markers for topics pending deletion.
      operationId: get_cloud_storage_lifecycle
      responses:
        '200':
          description: Success
  '/v1/cloud_storage/lifecycle/{topic}/{revision}':
    delete:
      tags:
        - Tiered Storage
      summary: Drop topic lifecycle marker
      description: Forcibly drop a lifecycle marker for a topic. This may leave data behind in the Tiered Storage bucket.
      operationId: delete_cloud_storage_lifecycle
      parameters:
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: revision
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content: {}
  '/v1/cloud_storage/sync_local_state/{topic}/{partition}':
    post:
      tags:
        - Tiered Storage
      summary: Sync local state
      description: Synchronize the content of the bucket with local partition metadata.
      operationId: sync_local_state
      parameters:
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Partition metadata is up to date
          content: {}
  /v1/cloud_storage/automated_recovery:
    post:
      tags:
        - Tiered Storage
      summary: Initialize cluster recovery
      description: Initializes a cluster recovery.
      operationId: initialize_cluster_recovery
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/automated_recovery_request_body'
        required: false
      responses:
        '200':
          description: Cluster recovery was initialized successfully
          content: {}
    get:
      tags:
        - Tiered Storage
      summary: Get cluster recovery status
      description: Get status of cluster recovery.
      operationId: get_cluster_recovery
      responses:
        '200':
          description: Cluster recovery status response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cluster_recovery_status'
  /v1/cloud_storage/cache/trim:
    post:
      tags:
        - Tiered Storage
      summary: Trim Tiered Storage cache
      description: 'Invoke trimming on the local cache of Tiered Storage objects. If no parameters are included, this endpoint by default trims the cache to the maximum cache size given by the cluster config. Use the `bytes` and `objects` parameters to specify the number of bytes and objects to retain in the cache.'
      operationId: cloud_storage_cache_trim
      parameters:
        - name: objects
          in: query
          required: false
          schema:
            type: integer
          description: Target number of objects to retain in the cache.
        - name: bytes
          in: query
          required: false
          schema:
            type: integer
          description: Target number of bytes to retain in the cache.
      responses:
        '200':
          description: Success
          content: {}
  '/v1/cloud_storage/anomalies/{namespace}/{topic}/{partition}':
    get:
      tags:
        - Tiered Storage
      summary: Get cloud storage anomalies for a partition
      description: Retrieve cloud storage anomalies for a given partition.
      operationId: get_cloud_storage_anomalies
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cloud_storage_partition_anomalies'
  '/v1/cloud_storage/unsafe_reset_metadata_from_cloud/{namespace}/{topic}/{partition}':
    post:
      tags:
        - Tiered Storage
      summary: Reset metadata from cloud
      description: 'Resets the manifest to the one in cloud storage, updating all replicas with the given manifest. The request is refused if applying the change would cause data loss and the force query parameter is unspecified or false.'
      operationId: unsafe_reset_metadata_from_cloud
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
        - name: force
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: Partition metadata is reset
          content: {}
  '/v1/cloud_storage/reset_scrubbing_metadata/{namespace}/{topic}/{partition}':
    post:
      tags:
        - Tiered Storage
      summary: Reset scrubbing metadata
      description: Reset scrubbing-related metadata and anomalies for given partition.
      operationId: reset_scrubbing_metadata
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: topic
          in: path
          required: true
          schema:
            type: string
        - name: partition
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content: {}
components:
  schemas:
    broker_endpoint:
      type: object
      properties:
        name:
          type: string
        address:
          type: string
        port:
          type: integer
    pre_restart_check_result:
      type: object
      description: Pre-restart check result.
      properties:
        risks:
          $ref: '#/components/schemas/restart_risks'
    restart_risks:
      description: 'Partitions affected by the current broker restart, grouped by risk type. Each partition list is truncated according to the optional limit specified in the request.'
      properties:
        rf1_offline:
          type: array
          items:
            type: string
            description: 'Namespace, topic, partition ID'
          description: Partitions with a replication factor of 1 that have a replica on the current broker.
        full_acks_produce_unavailable:
          type: array
          items:
            type: string
            description: 'Namespace, topic, partition ID'
          description: Partitions that may reject produce requests (with `acks=-1`) if the current broker is restarted.
        unavailable:
          type: array
          items:
            type: string
            description: 'Namespace, topic, partition ID'
          description: Partitions that may reject consume and produce requests if the current broker is restarted.
        acks1_data_loss:
          type: array
          items:
            type: string
            description: 'Namespace, topic, partition ID'
          description: Partitions that may lose data produced (with `acks=1`) if the current broker is restarted.
    post_restart_check_result:
      type: object
      description: Post-restart check result.
      properties:
        load_reclaimed_pc:
          type: integer
          description: 'The load that the broker has reclaimed after restarting, as a percentage of in-sync replicas.'
          minimum: 0
          maximum: 100
    broker_locator:
      type: object
      properties:
        host:
          type: string
        port:
          type: integer
        family:
          type: string
    enterprise_feature:
      type: object
      description: Information about an Enterprise feature and whether it is enabled in the cluster.
      properties:
        name:
          type: string
          description: The name of the Enterprise feature such as `tiered_storage`.
        enabled:
          type: boolean
          description: Whether the feature is currently enabled (`true`) or not (`false`).
    enterprise_response:
      type: object
      description: License status and Enterprise features in use.
      properties:
        license_status:
          type: string
          description: The current status of the Enterprise Edition license.
          enum:
            - valid
            - expired
            - not_present
        violation:
          type: boolean
          description: |
            Whether there is a violation. This will be `true` if the license status is not 'valid' and one or more Enterprise features are enabled.
        features:
          type: array
          description: A list of Enterprise features in use.
          items:
            $ref: '#/components/schemas/enterprise_feature'
    error_body:
      type: object
      properties:
        code:
          type: integer
          description: The error code.
        message:
          type: string
          description: Error message describing what went wrong.
    node_config_properties:
      type: object
      properties:
        advertised_kafka_api:
          type: array
          items:
            $ref: '#/components/schemas/broker_endpoint'
        data_directory:
          description: Path to the directory for storing Redpanda's streaming data files.
          type: string
          default: /var/lib/redpanda/data
        # storage_failure_injection_config_path:
        #   description: Path to the configuration file used for low level storage failure.
        #   type: string
        # storage_failure_injection_enabled:
        #   type: boolean
        crash_loop_limit:
          description: |
            A limit on the number of consecutive times a broker can crash within one hour before its crash-tracking logic is reset. This limit prevents a broker from getting stuck in an infinite cycle of crashes. If `null`, the property is disabled and no limit is applied.
          default: null
          type: integer
        admin:
          $ref: '#/components/schemas/broker_endpoint'
        advertised_rpc_api:
          $ref: '#/components/schemas/broker_endpoint'
        kafka_api:
          $ref: '#/components/schemas/broker_endpoint'
        developer_mode:
          type: boolean
        admin_api_doc_dir:
          type: string
        rpc_server_tls:
          type: object
          properties:
            enabled:
              type: boolean
            require_client_auth:
              type: boolean
        empty_seed_starts_cluster:
          type: boolean
        memory_allocation_warning_threshold:
          type: integer
        seed_servers:
          type: array
          items:
            $ref: '#/components/schemas/broker_endpoint'
        upgrade_override_checks:
          type: boolean
        rack:
          type: string
        rpc_server:
          $ref: '#/components/schemas/broker_endpoint'
        admin_api_tls:
          type: object
          properties:
            enabled:
              type: boolean
            cert_file:
              type: string
        node_id:
          type: integer
        cloud_storage_cache_directory:
          type: string
        kafka_api_tls:
          type: object
          properties:
            name:
              type: string
            key_file:
              type: string
            enabled:
              type: boolean
    manifest_json:
      type: object
      properties: {}
    throughput_control_group:
      type: object
      properties:
        name:
          type: string
        client_id_matcher:
          type: string
        throughput_limit_node_in_bps:
          type: integer
          format: int64
        throughput_limit_node_out_bps:
          type: integer
          format: int64
    client_group_quota:
      type: object
      properties:
        group_name:
          type: string
        clients_prefix:
          type: string
        quota:
          type: integer
          format: int64
    logger:
      type: object
      properties:
        name:
          type: string
    cluster_ready_status:
      type: object
      properties:
        status:
          type: string
          enum:
            - ready
            - booting
    scram_credential:
      type: object
      properties:
        algorithm:
          type: string
          enum:
            - SCRAM-SHA-256
            - SCRAM-SHA-512
        password:
          type: string
    security_create_user:
      type: object
      properties:
        username:
          type: string
    cluster_config_properties:
      type: object
      description: Cluster configuration properties
      properties:
        abort_index_segment_size:
          description: Capacity (in number of txns) of an abort index segment
          ##nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        abort_timed_out_transactions_interval_ms:
          description: How often look for the inactive transactions and abort them
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        admin_api_require_auth:
          description: Whether admin API clients must provide HTTP Basic authentication headers
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        aggregate_metrics:
          description: Enable aggregations of metrics returned by the prometheus '/metrics' endpoint. Metric aggregation is performed by summing the values of samples by labels. Aggregations are performed where it makes sense by the shard and/or partition labels.
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        alter_topic_cfg_timeout_ms:
          description: Time to wait for entries replication in controller log when executing alter configuration requst
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        append_chunk_size:
          description: Size of direct write operations to disk in bytes
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #example: '32768'
          type: integer
        auto_create_topics_enabled:
          description: Allow topic auto creation
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        cloud_storage_access_key:
          description: AWS access key
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: string
        cloud_storage_api_endpoint:
          description: Optional API endpoint
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: string
        cloud_storage_api_endpoint_port:
          description: TLS port override
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: integer
        cloud_storage_azure_container:
          description: The name of the Azure container to use with Tiered Storage. Note that the container must belong to `cloud_storage_azure_storage_account`
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: string
        cloud_storage_azure_shared_key:
          description: The shared key to be used for Azure Shared Key authentication with the configured Azure storage account (see `cloud_storage_azure_storage_account`). Note that Redpanda expects this string to be Base64 encoded.
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: true
          type: string
        cloud_storage_azure_storage_account:
          description: The name of the Azure storage account to use with Tiered Storage
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: string
        cloud_storage_backend:
          description: 'Optional cloud storage backend variant used to select API capabilities. If not supplied, will be inferred from other configuration parameters.'
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: aws
          type: string
          enum:
            - aws
            - google_s3_compat
            - azure
            - minio
            - unknown
        cloud_storage_bucket:
          description: AWS bucket that should be used to store data
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: string
        cloud_storage_cache_check_interval:
          description: 'Minimum time between trims of tiered storage cache.  If a fetch operation requires trimming the cache, and the most recent trim was within this period, then trimming will be delayed until this period has elapsed'
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_cache_chunk_size:
          description: Size of chunks of segments downloaded into cloud storage cache. Reduces space usage by only downloading the necessary chunk from a segment.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_cache_size:
          description: Max size of archival cache
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        cloud_storage_chunk_eviction_strategy:
          description: Selects a strategy for evicting unused cache chunks.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: eager
          type: string
          enum:
            - eager
            - capped
            - predictive
        cloud_storage_cluster_metadata_upload_interval_ms:
          description: Time interval to wait between cluster metadata uploads.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_credentials_host:
          description: The hostname to connect to for retrieving role based credentials. Derived from cloud_storage_credentials_source if not set. Only required when using IAM role based access.
          #nullable: true
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: string
        cloud_storage_credentials_source:
          description: The source of credentials to connect to cloud services
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: config_file
          type: string
          enum:
            - config_file
            - aws_instance_metadata
            - sts
            - gcp_instance_metadata
        cloud_storage_disable_chunk_reads:
          description: Disable chunk reads and switch back to legacy mode where full segments are downloaded.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'true'
          type: boolean
        cloud_storage_disable_tls:
          description: Disable TLS for all S3 connections
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        cloud_storage_enable_compacted_topic_reupload:
          description: Enable re-uploading data for compacted topics
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'false'
          type: boolean
        cloud_storage_enable_remote_read:
          description: Default remote read config value for new topics
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'true'
          type: boolean
        cloud_storage_enable_remote_write:
          description: Default remote write value for new topics
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'true'
          type: boolean
        cloud_storage_enable_segment_merging:
          description: Enables adjacent segment merging. The segments are reuploaded if there is an opportunity for that and if it will improve the tiered-storage performance
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'false'
          type: boolean
        cloud_storage_enabled:
          description: Enable archival storage
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        cloud_storage_graceful_transfer_timeout_ms:
          description: 'Time limit on waiting for uploads to complete before a leadership transfer.  If this is null, leadership transfers will proceed without waiting.'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        #aliases:
        #    - cloud_storage_graceful_transfer_timeout
        cloud_storage_housekeeping_interval_ms:
          description: Interval for cloud storage housekeeping tasks
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_hydrated_chunks_per_segment_ratio:
          description: 'The maximum number of chunks per segment that can be hydrated at a time. Above this number, unused chunks will be trimmed.'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: number
        cloud_storage_idle_threshold_rps:
          description: The cloud storage request rate threshold for idle state detection. If the average request rate for the configured period is lower than this threshold the cloud storage is considered being idle.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: number
        cloud_storage_idle_timeout_ms:
          description: Timeout used to detect idle state of the cloud storage API. If the average cloud storage request rate is below this threshold for a configured amount of time the cloud storage is considered idle and the housekeeping jobs are started.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_initial_backoff_ms:
          description: Initial backoff time for exponential backoff algorithm (ms)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_manifest_cache_size:
          description: Amount of memory that can be used to handle tiered-storage metadata
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '33587200'
          type: integer
        cloud_storage_manifest_max_upload_interval_sec:
          description: 'Wait at least this long between partition manifest uploads. Actual time between uploads may be greater than this interval. If this is null, metadata will be updated after each segment upload.'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: s
          type: integer
        cloud_storage_manifest_upload_timeout_ms:
          description: Manifest upload timeout (ms)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_materialized_manifest_ttl_ms:
          description: The time interval that determins how long the materialized manifest can stay in cache under contention. This parameter is used for performance tuning. When the spillover manifest is materialized and stored in cache and the cache needs to evict it it will use 'cloud_storage_materialized_manifest_ttl_ms' value as a timeout. The cursor that uses the spillover manifest uses this value as a TTL interval after which it stops referencing the manifest making it available for eviction. This only affects spillover manifests under contention.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_max_connection_idle_time_ms:
          description: Max https connection idle time (ms)
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_max_connections:
          description: Max number of simultaneous connections to S3 per shard (includes connections used for both uploads and downloads)
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: integer
        cloud_storage_max_materialized_segments_per_shard:
          description: 'Maximum concurrent readers of remote data per CPU core.  If unset, value of `topic_partitions_per_shard` multiplied by 2 is used.'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_max_readers_per_shard:
          description: 'Maximum concurrent readers of remote data per CPU core.  If unset, value of `topic_partitions_per_shard` is used, i.e. one reader per partition if the shard is at its maximum partition capacity.'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_max_segments_pending_deletion_per_partition:
          description: 'The per-partition limit for the number of segments pending deletion from the cloud. Segments can be deleted due to retention or compaction. If this limit is breached and deletion fails, then segments will be orphaned in the cloud and will have to be removed manually'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_metadata_sync_timeout_ms:
          description: Timeout for SI metadata synchronization
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_min_chunks_per_segment_threshold:
          description: 'The minimum number of chunks per segment for trimming to be enabled. If the number of chunks in a segment is below this threshold, the segment is small enough that all chunks in it can be hydrated at any given time'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_readreplica_manifest_sync_timeout_ms:
          description: Timeout to check if new data is available for partition in S3 for read replica
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_recovery_temporary_retention_bytes_default:
          description: Retention in bytes for topics created during automated recovery
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_region:
          description: AWS region that houses the bucket used for storage
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: string
        cloud_storage_roles_operation_timeout_ms:
          description: Timeout for IAM role related operations (ms)
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_secret_key:
          description: AWS secret key
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: true
          type: string
        cloud_storage_segment_max_upload_interval_sec:
          description: Time that segment can be kept locally without uploading it to the remote storage (sec)
          #nullable: true
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: s
          type: integer
        cloud_storage_segment_size_min:
          description: 'Smallest acceptable segment size in the cloud storage. Default: cloud_storage_segment_size_target/2'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_segment_size_target:
          description: 'Desired segment size in the cloud storage. Default: segment.bytes'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_segment_upload_timeout_ms:
          description: Log segment upload timeout (ms)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_spillover_manifest_size:
          description: The size of the manifest which can be offloaded to the cloud. If the size of the local manifest stored in redpanda exceeds cloud_storage_spillover_manifest_size x2 the spillover mechanism will split the manifest into two parts and one of them will be uploaded to S3.
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '2099200'
          type: integer
        cloud_storage_trust_file:
          description: Path to certificate that should be used to validate server certificate during TLS handshake
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: string
        cloud_storage_upload_ctrl_d_coeff:
          description: derivative coefficient for upload PID controller.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: number
        cloud_storage_upload_ctrl_max_shares:
          description: maximum number of IO and CPU shares that archival upload can use
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_upload_ctrl_min_shares:
          description: minimum number of IO and CPU shares that archival upload can use
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        cloud_storage_upload_ctrl_p_coeff:
          description: proportional coefficient for upload PID controller
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: number
        cloud_storage_upload_ctrl_update_interval_ms:
          description: ''
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_upload_loop_initial_backoff_ms:
          description: Initial backoff interval when there is nothing to upload for a partition (ms)
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cloud_storage_upload_loop_max_backoff_ms:
          description: Max backoff interval when there is nothing to upload for a partition (ms)
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        cluster_id:
          description: Cluster identifier
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: string
        compacted_log_segment_size:
          description: How large in bytes should each compacted log segment be (default 256MiB)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '268435456'
          type: integer
        compaction_ctrl_backlog_size:
          description: 'target backlog size for compaction controller. if not set compaction target compaction backlog would be equal to '
          #nullable: true
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        compaction_ctrl_d_coeff:
          description: derivative coefficient for compaction PID controller.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: number
        compaction_ctrl_i_coeff:
          description: integral coefficient for compaction PID controller.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: number
        compaction_ctrl_max_shares:
          description: maximum number of IO and CPU shares that compaction process can use
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        compaction_ctrl_min_shares:
          description: minimum number of IO and CPU shares that compaction process can use
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        compaction_ctrl_p_coeff:
          description: proportional coefficient for compaction PID controller. This has to be negative since compaction backlog should decrease when number of compaction shares increases
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: number
        compaction_ctrl_update_interval_ms:
          description: ''
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        controller_backend_housekeeping_interval_ms:
          description: Interval between iterations of controller backend housekeeping loop
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        controller_log_accummulation_rps_capacity_acls_and_users_operations:
          description: Maximum capacity of rate limit accumulationin controller acls and users operations limit
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        controller_log_accummulation_rps_capacity_configuration_operations:
          description: Maximum capacity of rate limit accumulationin controller configuration operations limit
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        controller_log_accummulation_rps_capacity_move_operations:
          description: Maximum capacity of rate limit accumulationin controller move operations limit
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        controller_log_accummulation_rps_capacity_node_management_operations:
          description: Maximum capacity of rate limit accumulationin controller node management operations limit
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        controller_log_accummulation_rps_capacity_topic_operations:
          description: Maximum capacity of rate limit accumulationin controller topic operations limit
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        controller_snapshot_max_age_sec:
          description: 'Max time that will pass before we make an attempt to create a controller snapshot, after a new controller command appears'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: s
          type: integer
        create_topic_timeout_ms:
          description: Timeout (ms) to wait for new topic creation
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        default_num_windows:
          description: Default number of quota tracking windows
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '10'
          type: integer
        default_topic_partitions:
          description: Default number of partitions per topic
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        default_topic_replications:
          description: Default replication factor for new topics
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: '1'
          type: integer
        default_window_sec:
          description: Default quota tracking window size in milliseconds
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          #example: '1000'
          type: integer
        delete_retention_ms:
          description: delete segments older than this - default 1 week
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        disable_batch_cache:
          description: Disable batch cache in log manager
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #example: 'true'
          type: boolean
        disable_metrics:
          description: Disable registering metrics exposed on the internal metrics endpoint (/metrics)
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        disable_public_metrics:
          description: Disable registering metrics exposed on the public metrics endpoint (/public_metrics)
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        election_timeout_ms:
          description: Election timeout expressed in milliseconds
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        enable_controller_log_rate_limiting:
          description: Enables limiting of controller log write rate
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        enable_idempotence:
          description: Enable idempotent producer
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        enable_leader_balancer:
          description: Enable automatic leadership rebalancing
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        enable_metrics_reporter:
          description: Enable cluster metrics reporter
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        enable_pid_file:
          description: Enable pid file. You probably don't want to change this.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #example: 'false'
          type: boolean
        enable_rack_awareness:
          description: Enables rack-aware replica assignment
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        enable_sasl:
          description: 'Enable SASL authentication for Kafka connections, authorization is required. see also `kafka_enable_authorization`'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        enable_schema_id_validation:
          description: Enable Server Side Schema ID Validation.
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: string
          enum:
            - none
            - redpanda
            - compat
        enable_storage_space_manager:
          description: Enable the storage space manager that coordinates and control space usage between log data and the cloud storage cache.
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        enable_transactions:
          description: Enable transactions
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        enable_usage:
          description: 'Enables the usage tracking mechanism, storing windowed history of kafka/cloud_storage metrics over time'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        features_auto_enable:
          description: Whether new feature flags may auto-activate after upgrades (true) or must wait for manual activation via the admin API (false)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'false'
          type: boolean
        fetch_max_bytes:
          description: Maximum number of bytes returned in fetch request
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        fetch_reads_debounce_timeout:
          description: Time to wait for next read in fetch request when requested min bytes wasn't reached
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        fetch_session_eviction_timeout_ms:
          description: Minimum time before which unused session will get evicted from sessions. Maximum time after which inactive session will be deleted is two time given configuration valuecache
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        find_coordinator_timeout_ms:
          description: Time to wait for a response from tx_registry
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        full_raft_configuration_recovery_pattern:
          description: Recover raft configuration on start for NTPs matching pattern
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: array
          items:
            type: string
        group_initial_rebalance_delay:
          description: Extra delay (ms) added to rebalance phase to wait for new members
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        group_max_session_timeout_ms:
          description: 'The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures. '
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        group_min_session_timeout_ms:
          description: 'The minimum allowed session timeout for registered consumers. Shorter timeouts result in quicker failure detection at the cost of more frequent consumer heartbeating, which can overwhelm broker resources.'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        group_new_member_join_timeout:
          description: Timeout for new member joins
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        group_offset_retention_check_ms:
          description: How often the system should check for expired group offsets.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        group_offset_retention_sec:
          description: Consumer group offset retention seconds. Offset retention can be disabled by setting this value to null.
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: s
          type: integer
        group_topic_partitions:
          description: Number of partitions in the internal group membership topic
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        health_manager_tick_interval:
          description: How often the health manager runs
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        health_monitor_max_metadata_age:
          description: Max age of metadata cached in the health monitor of non controller node
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        id_allocator_batch_size:
          description: Id allocator allocates messages in batches (each batch is a one log record) and then serves requests from memory without touching the log until the batch is exhausted.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        id_allocator_log_capacity:
          description: Capacity of the id_allocator log in number of messages. Once it reached id_allocator_stm should compact the log.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        internal_topic_replication_factor:
          description: Target replication factor for internal topics
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: integer
        join_retry_timeout_ms:
          description: Time between cluster join retries in milliseconds
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        kafka_admin_topic_api_rate:
          description: Target quota rate (partition mutations per default_window_sec)
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        kafka_batch_max_bytes:
          description: Maximum size of a batch processed by server. If batch is compressed the limit applies to compressed batch size
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_client_group_byte_rate_quota:
          description: Per-group target produce quota byte rate (bytes per second). Client is considered part of the group if client_id contains clients_prefix
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: [{'group_name': 'first_group','clients_prefix': 'group_1','quota': 10240}]
          type: array
          items:
            $ref: '#/components/schemas/client_group_quota'
        kafka_client_group_fetch_byte_rate_quota:
          description: Per-group target fetch quota byte rate (bytes per second). Client is considered part of the group if client_id contains clients_prefix
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: [{'group_name': 'first_group','clients_prefix': 'group_1','quota': 10240}]
          type: array
          items:
            $ref: '#/components/schemas/client_group_quota'
        kafka_connection_rate_limit:
          description: Maximum connections per second for one core
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        kafka_connection_rate_limit_overrides:
          description: Overrides for specific ips for maximum connections per second for one core
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: ['127.0.0.1:90', '50.20.1.1:40']
          type: array
          items:
            type: string
        kafka_connections_max:
          description: Maximum number of Kafka client connections per broker
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        kafka_connections_max_overrides:
          description: 'Per-IP overrides of kafka connection count limit, list of <ip>:<count> strings'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: ['127.0.0.1:90', '50.20.1.1:40']
          type: array
          items:
            type: string
        kafka_connections_max_per_ip:
          description: 'Maximum number of Kafka client connections from each IP address, per broker'
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        kafka_enable_authorization:
          description: 'Enable authorization for Kafka connections. Values:- `nil`: Ignored. Authorization is enabled with `enable_sasl: true`; `true`: authorization is required; `false`: authorization is disabled. See also: `enable_sasl` and `kafka_api[].authentication_method`'
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: boolean
        kafka_enable_describe_log_dirs_remote_storage:
          description: 'Whether to include tiered storage as a special remote:// directory in DescribeLogDirs Kafka API requests.'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        kafka_enable_partition_reassignment:
          description: Enable the Kafka partition reassignment API
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        kafka_group_recovery_timeout_ms:
          description: Kafka group recovery timeout expressed in milliseconds
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        kafka_max_bytes_per_fetch:
          description: 'Limit fetch responses to this many bytes, even if total of partition bytes limits is higher'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_memory_batch_size_estimate_for_fetch:
          description: 'The size of the batch used to estimate memory consumption for Fetch requests, in bytes. Smaller sizes allow more concurrent fetch requests per shard, larger sizes prevent running out of memory because of too many concurrent fetch requests.'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        kafka_memory_share_for_fetch:
          description: 'The share of kafka subsystem memory that can be used for fetch read buffers, as a fraction of kafka subsystem memory amount'
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: '0.5'
          type: number
        kafka_mtls_principal_mapping_rules:
          description: Principal Mapping Rules for mTLS Authentication on the Kafka API
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: array
          items:
            type: string
        kafka_nodelete_topics:
          description: Prevents the topics in the list from being deleted via the kafka api
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: array
          items:
            type: string
        kafka_noproduce_topics:
          description: Prevents the topics in the list from having message produced to them via the kafka api
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: array
          items:
            type: string
        kafka_qdc_depth_alpha:
          description: Smoothing factor for kafka queue depth control depth tracking.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: number
        kafka_qdc_depth_update_ms:
          description: Update frequency for kafka queue depth control.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        kafka_qdc_enable:
          description: Enable kafka queue depth control.
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        kafka_qdc_idle_depth:
          description: Queue depth when idleness is detected in kafka queue depth control.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_qdc_latency_alpha:
          description: Smoothing parameter for kafka queue depth control latency tracking.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: number
        kafka_qdc_max_depth:
          description: Maximum queue depth used in kafka queue depth control.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_qdc_max_latency_ms:
          description: Max latency threshold for kafka queue depth control depth tracking.
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        kafka_qdc_min_depth:
          description: Minimum queue depth used in kafka queue depth control.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_qdc_window_count:
          description: Number of windows used in kafka queue depth control latency tracking.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_qdc_window_size_ms:
          description: Window size for kafka queue depth control latency tracking.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        kafka_quota_balancer_min_shard_throughput_bps:
          description: 'The lowest value of the throughput quota a shard can get in the process of quota balancing, in bytes/s. 0 means there is no minimum.'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: '256'
          type: integer
        kafka_quota_balancer_min_shard_throughput_ratio:
          description: 'The lowest value of the throughput quota a shard can get in the process of quota balancing, expressed as a ratio of default shard quota. 0 means there is no minimum, 1 means no quota can be taken away by the balancer.'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: number
        kafka_quota_balancer_node_period_ms:
          description: 'Intra-node throughput quota balancer invocation period, in milliseconds. Value of 0 disables the balancer and makes all the throughput quotas immutable.'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          #example: '750'
          type: integer
        kafka_quota_balancer_window_ms:
          description: 'Time window used to average current throughput measurement for quota balancer, in milliseconds'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          #example: '1073741824'
          type: integer
        kafka_request_max_bytes:
          description: Maximum size of a single request processed via Kafka API
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_rpc_server_stream_recv_buf:
          description: Userspace receive buffer max size in bytes
          #nullable: true
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #example: '65536'
          type: integer
        kafka_rpc_server_tcp_recv_buf:
          description: Kafka server TCP receive buffer size in bytes.
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: '65536'
          type: integer
        kafka_rpc_server_tcp_send_buf:
          description: Kafka server TCP transmit buffer size in bytes.
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: '65536'
          type: integer
        kafka_schema_id_validation_cache_capacity:
          description: Per-shard capacity of the cache for validating schema IDs.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        kafka_throughput_control:
          description: 'List of throughput control groups that define exclusions from node-wide throughput limits. Each group consists of: (name (optional) - any unique group name, client_id - regex to match client_id). A connection is assigned the first matching group, then the connection is excluded from throughput control.'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: [{'name': 'first_group','client_id': 'client1'}, {'client_id': 'consumer-\\d+'}, {'name': 'catch all'}]
          type: array
          items:
            $ref: '#/components/schemas/throughput_control_group'
        kafka_throughput_controlled_api_keys:
          description: List of Kafka API keys that are subject to cluster-wide and node-wide throughput limit control
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: array
          items:
            type: string
        kafka_throughput_limit_node_in_bps:
          description: 'Node wide throughput ingress limit - maximum kafka traffic throughput allowed on the ingress side of each node, in bytes/s. Default is no limit.'
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        kafka_throughput_limit_node_out_bps:
          description: 'Node wide throughput egress limit - maximum kafka traffic throughput allowed on the egress side of each node, in bytes/s. Default is no limit.'
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        kvstore_flush_interval:
          description: Key-value store flush interval (ms)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        kvstore_max_segment_size:
          description: Key-value maximum segment size (bytes)
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        leader_balancer_idle_timeout:
          description: Leadership rebalancing idle timeout
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        leader_balancer_mode:
          description: Leader balancer mode
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: random_hill_climbing
          type: string
          enum:
            - greedy_balanced_shards
            - random_hill_climbing
        leader_balancer_mute_timeout:
          description: Leadership rebalancing mute timeout
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        leader_balancer_transfer_limit_per_shard:
          description: Per shard limit for in progress leadership transfers
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '1024'
          type: integer
        legacy_group_offset_retention_enabled:
          description: Group offset retention is enabled by default in versions of Redpanda >= 23.1. To enable offset retention after upgrading from an older version set this option to true.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'true'
          type: boolean
        legacy_permit_unsafe_log_operation:
          description: Permits the use of strings that may induct log injection/modification
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'false'
          type: boolean
        legacy_unsafe_log_warning_interval_sec:
          description: 'Interval, in seconds, of how often a message informing the operator that unsafe strings are permitted'
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: s
          type: integer
        log_cleanup_policy:
          description: Default topic cleanup policy
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'compact,delete'
          type: string
        log_compaction_interval_ms:
          description: How often do we trigger background compaction
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        log_compression_type:
          description: Default topic compression type
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: snappy
          type: string
          enum:
            - none
            - gzip
            - snappy
            - lz4
            - zstd
            - producer
        log_message_timestamp_type:
          description: Default topic messages timestamp type
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: LogAppendTime
          type: string
          enum:
            - CreateTime
            - LogAppendTime
        log_segment_ms:
          description: Default log segment lifetime in ms for topics which do not set segment.ms
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          #example: '3600000'
          type: integer
        log_segment_ms_max:
          description: 'Upper bound on topic segment.ms: higher values will be clamped to this value'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          #example: '31536000000'
          type: integer
        log_segment_ms_min:
          description: 'Lower bound on topic segment.ms: lower values will be clamped to this value'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          #example: '60000'
          type: integer
        log_segment_size:
          description: Default log segment size in bytes for topics which do not set segment.bytes
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '2147483648'
          type: integer
        log_segment_size_jitter_percent:
          description: Random variation to the segment size limit used for each partition
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #example: '2'
          type: integer
        log_segment_size_max:
          description: 'Upper bound on topic segment.bytes: higher values will be clamped to this limit'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '268435456'
          type: integer
        log_segment_size_min:
          description: 'Lower bound on topic segment.bytes: lower values will be clamped to this limit'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '16777216'
          type: integer
        max_compacted_log_segment_size:
          description: Max compacted segment size after consolidation
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '10737418240'
          type: integer
        max_concurrent_producer_ids:
          description: Max cache size for pids which rm_stm stores inside internal state. In overflow rm_stm will delete old pids and clear their status
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '18446744073709551615'
          type: integer
        max_kafka_throttle_delay_ms:
          description: Fail-safe maximum throttle delay on kafka requests
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        members_backend_retry_ms:
          description: 'Time between members backend reconciliation loop retries '
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        memory_abort_on_alloc_failure:
          description: 'If true, the redpanda process will terminate immediately when an allocation cannot be satisfied due to memory exhasution. If false, an exception is thrown instead.'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'false'
          type: boolean
        metadata_dissemination_interval_ms:
          description: Interaval for metadata dissemination batching
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          #example: '5000'
          type: integer
        metadata_dissemination_retries:
          description: Number of attempts of looking up a topic's meta data like shard before failing a request
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        metadata_dissemination_retry_delay_ms:
          description: Delay before retry a topic lookup in a shard or other meta tables
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        metadata_status_wait_timeout_ms:
          description: Maximum time to wait in metadata request for cluster health to be refreshed
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        metrics_reporter_report_interval:
          description: cluster metrics reporter report interval
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        metrics_reporter_tick_interval:
          description: Cluster metrics reporter tick interval
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        metrics_reporter_url:
          description: cluster metrics reporter url
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: string
        node_isolation_heartbeat_timeout:
          description: How long after the last heartbeat request a node will wait before considering itself to be isolated
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '5050'
          type: integer
        node_management_operation_timeout_ms:
          description: Timeout for executing node management operations
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        node_status_interval:
          description: Time interval between two node status messages. Node status messages establish liveness status outside of the Raft protocol.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        partition_autobalancing_concurrent_moves:
          description: Number of partitions that can be reassigned at once
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        partition_autobalancing_max_disk_usage_percent:
          description: Disk usage threshold that triggers moving partitions from the node
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: '52'
          type: integer
        partition_autobalancing_min_size_threshold:
          description: Minimum size of partition that is going to be prioritized when rebalancing cluster due to disk size threshold being breached. By default this value is calculated automaticaly
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        partition_autobalancing_mode:
          description: Partition autobalancing mode
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: node_add
          type: string
          enum:
            - 'off'
            - node_add
            - continuous
        partition_autobalancing_movement_batch_size_bytes:
          description: Total size of partitions that autobalancer is going to move in one batch
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        partition_autobalancing_node_availability_timeout_sec:
          description: Node unavailability timeout that triggers moving partitions from the node
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: s
          type: integer
        partition_autobalancing_tick_interval_ms:
          description: Partition autobalancer tick interval
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        partition_autobalancing_tick_moves_drop_threshold:
          description: 'If the number of scheduled tick moves drops by this ratio, a new tick is scheduled immediately. Valid values are (0, 1]. For #example, with a value of 0.2 and 100 scheduled moves in a tick, a new tick is scheduled when the inprogress moves are < 80.'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: number
        quota_manager_gc_sec:
          description: Quota manager GC frequency in milliseconds
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        raft_heartbeat_disconnect_failures:
          description: After how many failed heartbeats to forcibly close an unresponsive TCP connection.  Set to 0 to disable force disconnection.
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        raft_heartbeat_interval_ms:
          description: Milliseconds for raft leader heartbeats
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          #example: '150'
          type: integer
        raft_heartbeat_timeout_ms:
          description: raft heartbeat RPC timeout
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          #example: '3000'
          type: integer
        raft_io_timeout_ms:
          description: Raft I/O timeout
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        raft_learner_recovery_rate:
          description: Raft learner recovery rate limit in bytes per sec
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        raft_max_concurrent_append_requests_per_follower:
          description: Maximum number of concurrent append entries requests sent by leader to one follower
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        raft_max_recovery_memory:
          description: Max memory that can be used for reads in raft recovery process by default 15% of total memory
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '41943040'
          type: integer
        raft_recovery_default_read_size:
          description: default size of read issued during raft follower recovery
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '2621504'
          type: integer
        raft_recovery_throttle_disable_dynamic_mode:
          description: Disables dynamic rate allocation in recovery throttle (advanced).
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'true'
          type: boolean
        raft_replicate_batch_window_size:
          description: Max size of requests cached for replication
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        raft_smp_max_non_local_requests:
          description: 'Maximum number of x-core requests pending in Raft seastar::smp group. (for more details look at `seastar::smp_service_group` documentation)'
          #nullable: true
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        raft_timeout_now_timeout_ms:
          description: Timeout for a timeout now request
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        raft_transfer_leader_recovery_timeout_ms:
          description: Timeout waiting for follower recovery when transferring leadership
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        readers_cache_eviction_timeout_ms:
          description: Duration after which inactive readers will be evicted from cache
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        reclaim_batch_cache_min_free:
          description: Free memory limit that will be kept by batch cache background reclaimer
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        reclaim_growth_window:
          description: Length of time in which reclaim sizes grow
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        reclaim_max_size:
          description: Maximum batch cache reclaim size
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        reclaim_min_size:
          description: Minimum batch cache reclaim size
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
        reclaim_stable_window:
          description: Length of time above which growth is reset
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        recovery_append_timeout_ms:
          description: Timeout for append entries requests issued while updating stale follower
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        release_cache_on_segment_roll:
          description: Free cache when segments roll
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'true'
          type: boolean
        replicate_append_timeout_ms:
          description: Timeout for append entries requests issued while replicating entries
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        retention_bytes:
          description: Default max bytes per partition on disk before triggering a compaction
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        retention_local_target_bytes_default:
          description: Local retention size target for partitions of topics with cloud storage write enabled
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        retention_local_target_ms_default:
          description: Local retention time target for partitions of topics with cloud storage write enabled
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        rm_sync_timeout_ms:
          description: Time to wait state catch up before rejecting a request
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        rpc_server_listen_backlog:
          description: TCP connection queue length for Kafka server and internal RPC server
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: integer
        rpc_server_tcp_recv_buf:
          description: Internal RPC TCP receive buffer size in bytes.
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: '65536'
          type: integer
        rpc_server_tcp_send_buf:
          description: Internal RPC TCP transmit buffer size in bytes.
          #nullable: true
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #example: '65536'
          type: integer
        rps_limit_acls_and_users_operations:
          description: Rate limit for controller acls and users operations
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        rps_limit_configuration_operations:
          description: Rate limit for controller configuration operations
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        rps_limit_move_operations:
          description: Rate limit for controller move operations
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        rps_limit_node_management_operations:
          description: Rate limit for controller node management operations
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        rps_limit_topic_operations:
          description: Rate limit for controller topic operations
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        sasl_kerberos_config:
          description: The location of the Kerberos krb5.conf file for Redpanda
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: string
        sasl_kerberos_keytab:
          description: The location of the Kerberos keytab file for Redpanda
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: string
        sasl_kerberos_principal:
          description: The primary of the Kerberos Service Principal Name (SPN) for Redpanda
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: string
        sasl_kerberos_principal_mapping:
          description: Rules for mapping Kerberos Principal Names to Redpanda User Principals
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: array
          items:
            type: string
        sasl_mechanisms:
          description: A list of supported SASL mechanisms. `SCRAM` and `GSSAPI` are allowed.
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: array
          items:
            type: string
        segment_appender_flush_timeout_ms:
          description: Maximum delay until buffered data is written
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        segment_fallocation_step:
          description: Size for segments fallocation
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '32768'
          type: integer
        seq_table_min_size:
          description: Minimum size of the seq table non affected by compaction
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          type: integer
        storage_compaction_index_memory:
          description: Maximum number of bytes that may be used on each shard by compactionindex writers
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '1073741824'
          type: integer
        storage_ignore_timestamps_in_future_sec:
          description: 'If set, timestamps more than this many seconds in the future relative tothe server''s clock will be ignored for data retention purposes, and retention will act based on another timestamp in the same segment, or the mtime of the segment file if no valid timestamp is available'
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: s
          #example: '3600'
          type: integer
        storage_max_concurrent_replay:
          description: 'Maximum number of partitions'' logs that will be replayed concurrently at startup, or flushed concurrently on shutdown.'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '2048'
          type: integer
        storage_min_free_bytes:
          description: Threshold of minimum bytes free space before rejecting producers.
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '5368709120'
          type: integer
        storage_read_buffer_size:
          description: 'Size of each read buffer (one per in-flight read, per log segment)'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '31768'
          type: integer
        storage_read_readahead_count:
          description: How many additional reads to issue ahead of current read location
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '1'
          type: integer
        storage_reserve_min_segments:
          description: 'The number of segments per partition that the system will attempt to reserve disk capcity for. For #example, if the maximum segment size is configured to be 100 MB, and the value of this option is 2, then in a system with 10 partitions Redpanda will attempt to reserve at least 2 GB of disk space.'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '4'
          type: integer
        storage_space_alert_free_threshold_bytes:
          description: Threshold of minimim bytes free space before setting storage space alert
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '0'
          type: integer
        storage_space_alert_free_threshold_percent:
          description: Threshold of minimim percent free space before setting storage space alert
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '25'
          type: integer
        storage_strict_data_init:
          description: Requires that an empty file named `.redpanda_data_dir` be present in the data directory. Redpanda will refuse to start if it is not found.
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'true'
          type: boolean
        storage_target_replay_bytes:
          description: 'Target bytes to replay from disk on startup after clean shutdown: controls frequency of snapshots and checkpoints'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '2147483648'
          type: integer
        superusers:
          description: List of superuser usernames
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: array
          items:
            type: string
        target_fetch_quota_byte_rate:
          description: Target fetch size quota byte rate (bytes per second) - disabled default
          #nullable: true
          #needs_restart: false
          #visibility: user
          #is_secret: false
          type: integer
        target_quota_byte_rate:
          description: Target request size quota byte rate (bytes per second) - 2GB default
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: '1073741824'
          type: integer
        tm_sync_timeout_ms:
          description: Time to wait state catch up before rejecting a request
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        topic_fds_per_partition:
          description: Required file handles per partition when creating topics
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '500'
          type: integer
        topic_memory_per_partition:
          description: Required memory per partition when creating topics
          #nullable: true
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '52428800'
          type: integer
        topic_partitions_per_shard:
          description: Maximum number of partitions which may be allocated to one shard (CPU core)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '65544'
          type: integer
        topic_partitions_reserve_shard0:
          description: 'Reserved partition slots on shard (CPU core) 0 on each node.  If this is >= topic_partitions_per_core, no data partitions will be scheduled on shard 0'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '65536'
          type: integer
        transaction_coordinator_cleanup_policy:
          description: Cleanup policy for a transaction coordinator topic
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #example: 'compact,delete'
          type: string
        transaction_coordinator_delete_retention_ms:
          description: delete segments older than this - default 1 week
          #nullable: false
          #needs_restart: false
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        transaction_coordinator_log_segment_size:
          description: How large in bytes should each log segment be (default 1G)
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        transaction_coordinator_partitions:
          description: Amount of partitions for transactions coordinator
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          type: integer
        transactional_id_expiration_ms:
          description: Producer ids are expired once this time has elapsed after the last write with the given producer id.
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        tx_log_stats_interval_s:
          description: 'How often to log per partition tx stats, works only with debug logging enabled.'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: s
          type: integer
        tx_timeout_delay_ms:
          description: Delay before scheduling next check for timed out transactions
          #nullable: false
          #needs_restart: true
          #visibility: user
          #is_secret: false
          #units: ms
          type: integer
        usage_disk_persistance_interval_sec:
          description: The interval in which all usage stats are written to disk
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: s
          #example: '300'
          type: integer
        usage_num_windows:
          description: The number of windows to persist in memory and disk
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: '24'
          type: integer
        usage_window_width_interval_sec:
          description: 'The width of a usage window, tracking cloud and kafka ingress/egress traffic each interval'
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: s
          #example: '3600'
          type: integer
        use_fetch_scheduler_group:
          description: Use a separate scheduler group for fetch processing
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #example: 'false'
          type: boolean
        wait_for_leader_timeout_ms:
          description: Timeout (ms) to wait for leadership in metadata cache
          #nullable: false
          #needs_restart: false
          #visibility: tunable
          #is_secret: false
          #units: ms
          type: integer
        zstd_decompress_workspace_bytes:
          description: Size of the zstd decompression workspace
          #nullable: false
          #needs_restart: true
          #visibility: tunable
          #is_secret: false
          type: integer
    patch_cluster_config_request:
      type: object
      properties:
        upsert:
          type: object
          description: Cluster configuration property key-value pairs to add or update.
          additionalProperties:
            type: string
        remove:
          type: array
          description: Cluster configuration property keys to reset to their default.
          items:
            type: string
      required:
        - upsert
        - remove
    ntp:
      type: object
      description: 'Namespace, Topic, Partition ID tuple'
      properties:
        ns:
          type: string
          description: Namespace
        topic:
          type: string
          description: Topic
        partition:
          type: integer
          description: Partition ID
    ntp_with_majority_loss:
      type: object
      description: NTP instance with a lost majority due to dead nodes (brokers)
      properties:
        ntp:
          $ref: '#/components/schemas/ntp'
          description: NTP
        topic_revision:
          type: integer
          format: int64
          description: Revision of topic that this NTP is part of
        replicas:
          type: array
          items:
            $ref: '#/components/schemas/assignment'
          description: Replica assignments
        dead_nodes:
          type: array
          items:
            $ref: '#/components/schemas/dead_node'
          description: List of dead nodes (brokers) that contribute to majority loss of partitions
    dead_node:
      type: integer
      format: int32
      description: Dead node (broker)
    find_coordinator_reply:
      type: object
      properties:
        coordinator:
          type: integer
          description: Node ID
        ntp:
          $ref: '#/components/schemas/ntp'
          description: NTP
        ec:
          type: integer
          description: Error code
    partition_cloud_storage_status:
      type: object
      properties:
        cloud_storage_mode:
          type: string
          description: 'The partition''s cloud storage mode (`disabled`, `write_only`, `read_only`, `full`, or `read_replica`).'
        ms_since_last_manifest_upload:
          type: integer
          description: Delta in milliseconds since the last upload of the partition's manifest
        ms_since_last_segment_upload:
          type: integer
          description: Delta in milliseconds since the last segment upload for the partition
        ms_since_last_manifest_sync:
          type: integer
          description: Delta in milliseconds since the last manifest sync. Only present for read replicas.
        metadata_update_pending:
          type: boolean
          description: 'If `true`, the remote metadata may not yet include all segments that have been uploaded'
        total_log_size_bytes:
          type: integer
          description: Total size of the log for the partition (overlap between local and cloud log is excluded)
        cloud_log_size_bytes:
          type: integer
          description: Total size of the addressable cloud log for the partition
        stm_region_size_bytes:
          type: integer
          description: Total size of the addressable segments in the STM region of the log
        archive_size_bytes:
          type: integer
          description: Total size of the archive region of the log
        local_log_size_bytes:
          type: integer
          description: Total size of the addressable local log for the partition
        stm_region_segment_count:
          type: integer
          description: Number of segments in the STM region of the cloud log
        cloud_log_segment_count:
          type: integer
          description: Number of segments in the STM region of the cloud log
        local_log_segment_count:
          type: integer
          description: Number of segments in the local log
        cloud_log_start_offset:
          type: integer
          nullable: true
          description: The first Kafka offset accessible from the cloud (inclusive)
        stm_region_start_offset:
          type: integer
          nullable: true
          description: The first Kafka offset accessible from the cloud in the STM region (inclusive)
        cloud_log_last_offset:
          type: integer
          nullable: true
          description: The last Kafka offset accessible from the cloud (inclusive)
        local_log_start_offset:
          type: integer
          nullable: true
          description: The first Kafka offset accessible locally (inclusive)
        local_log_last_offset:
          type: integer
          nullable: true
          description: The last Kafka offset accessible locally (inclusive)
    lifecycle_marker:
      type: object
      properties:
        ns:
          type: string
        topic:
          type: string
        revision_id:
          type: integer
        status:
          type: string
    get_lifecycle_response:
      type: object
      description: Response body of GET to the `cloud_storage/lifecycle` endpoint
      properties:
        markers:
          type: array
          items:
            $ref: '#/components/schemas/lifecycle_marker'
    segment_meta:
      type: object
      description: Metadata for an uploaded segment
      properties:
        base_offset:
          type: integer
          format: int64
        committed_offset:
          type: integer
          format: int64
        delta_offset:
          type: integer
          format: int64
          nullable: true
        delta_offset_end:
          type: integer
          format: int64
          nullable: true
        base_timestamp:
          type: integer
          format: int64
        max_timestamp:
          type: integer
          format: int64
        size_bytes:
          type: integer
          format: int64
        is_compacted:
          type: boolean
        archiver_term:
          type: integer
          format: int64
        segment_term:
          type: integer
          format: int64
        ntp_revision:
          type: integer
          format: int64
    metadata_anomaly:
      type: object
      description: Description of a metadata anomaly
      properties:
        type:
          type: string
        explanation:
          type: string
        at_segment:
          $ref: '#/components/schemas/segment_meta'
        previous_segment:
          type: object
          nullable: true
          allOf:
            - $ref: '#/components/schemas/segment_meta'
    cloud_storage_partition_anomalies:
      type: object
      description: Anomalies detected by the cloud storage scrubber
      properties:
        ns:
          type: string
        topic:
          type: string
        partition:
          type: integer
          format: int64
        revision_id:
          type: integer
          format: int64
        missing_partition_manifest:
          type: boolean
          nullable: true
        missing_spillover_manifests:
          type: array
          nullable: true
          items:
            type: string
        missing_segments:
          type: array
          nullable: true
          items:
            type: string
        segment_metadata_anomalies:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/metadata_anomaly'
        last_complete_scrub_at:
          type: integer
          format: int64
          nullable: true
        num_discarded_missing_spillover_manifests:
          type: integer
          format: int64
          nullable: true
        num_discarded_missing_segments:
          type: integer
          format: int64
          nullable: true
        num_discarded_metadata_anomalies:
          type: integer
          format: int64
          nullable: true
    cluster_config_property_metadata:
      type: object
      properties:
        description:
          type: string
          description: Human readable description of property's purpose
        enum_values:
          type: array
          description: Possible values of the property (in string-ized form)
          items:
            type: string
        example:
          type: string
          description: Example of correct syntax for this property
        is_secret:
          type: boolean
          description: Whether this property is a secret (i.e. should not be logged)
        items:
          $ref: '#/components/schemas/cluster_config_property_metadata_items'
        aliases:
          type: array
          description: 'List of legacy names for the property. Property may be set using these names, but will always appear in GET requests via its primary name.'
          items:
            type: string
        needs_restart:
          type: boolean
          description: Whether changes to this property will require a restart of Redpanda brokers
        nullable:
          type: boolean
          description: Whether this setting may be set to null
        type:
          type: string
          description: Expected syntax of the property value
        units:
          type: string
          description: 'If applicable, the units of the property (e.g. ms, bytes)'
        visibility:
          type: string
          description: One of user|tunable|deprecated
      description: A single configuration property's metadata
    cluster_config_property_metadata_items:
      type: object
      properties:
        type:
          type: string
          description: 'A scalar type name, like ''string'''
      description: The type within 'items' for array properties
    cluster_config_status:
      type: object
      properties:
        config_version:
          type: integer
          description: 'Configuration version number, for cross referencing with PUT results'
          format: int64
        invalid:
          type: array
          description: List of properties with invalid values
          items:
            type: string
        node_id:
          type: integer
          description: node id
          format: int64
        restart:
          type: boolean
          description: Restart required to apply pending configuration
        unknown:
          type: array
          description: List of properties unknown to this broker
          items:
            type: string
      description: Per-broker configuration status
    cluster_config_write_result:
      type: object
      properties:
        config_version:
          type: integer
          description: 'Configuration version number, for cross-referencing with broker config status'
          format: int64
      description: Result of writing changes to cluster configuration
    feature_state:
      type: object
      properties:
        name:
          type: string
        state:
          type: string
          enum:
            - active
            - preparing
            - available
            - unavailable
            - disabled
        was_active:
          type: boolean
          description: 'Whether the feature has ever been active, i.e. data depending on this feature may have been written to disk'
      description: 'State of one feature (active, available etc)'
    features_response:
      type: object
      properties:
        cluster_version:
          type: integer
          description: Logical version of cluster. Should equal `latest_node_version` if cluster is not currently being upgraded.
          format: int64
        features:
          type: array
          description: list of feature_state for each feature
          items:
            $ref: '#/components/schemas/feature_state'
        original_cluster_version:
          type: integer
          description: Logical version at time of cluster creation. Should equal `latest_node_version` if cluster is not currently being upgraded.
          format: int64
        node_earliest_version:
          type: integer
          format: int64
          description: Earliest logical version supported by the broker answering this request
        node_latest_version:
          type: integer
          format: int64
          description: Latest logical version supported by the broker answering this request
      description: Describe available features in this redpanda cluster
    license_contents:
      type: object
      properties:
        expires:
          type: integer
          description: Expiration date of the license in Unix epoch seconds
          format: int64
        format_version:
          type: integer
          description: license schema version evolution number
          format: int32
        org:
          type: string
          description: client the license was generated for
        sha256:
          type: string
          description: Checksum (sha256) of the raw license data
        type:
          type: string
          description: 'type of license, currently only free_trial or enterprise'
      description: 'Parameters belonging to a valid, signed redpanda license'
    license_response:
      type: object
      properties:
        license:
          $ref: '#/components/schemas/license_contents'
        loaded:
          type: boolean
          description: true if a non-expired license is loaded
      description: Describe properties of currently loaded license file
    broker:
      type: object
      properties:
        disk_space:
          type: array
          description: Array of disk space information per directory path. If disk space information is not available the array may be empty
          items:
            $ref: '#/components/schemas/disk_space_info'
        is_alive:
          type: boolean
          description: Whether the cluster considers the broker alive
        maintenance_status:
          $ref: '#/components/schemas/maintenance_status'
        membership_status:
          type: string
          description: Broker membership status
        node_id:
          type: integer
          description: node id
          format: int64
        num_cores:
          type: integer
          description: cores
          format: int64
        rack:
          type: string
          description: rack id
        internal_rpc_address:
          type: string
          description: 'Internal RPC address (usually, but not necessarily, a hostname)'
        internal_rpc_port:
          type: integer
          description: Internal RPC port
        version:
          type: string
          description: Redpanda version
      description: Broker information
    broker_shard:
      type: object
      properties:
        core:
          type: integer
          description: ID of a core on a given broker
          format: int32
        node_id:
          type: integer
          description: ID of a broker
          format: int32
      description: Replica placement
    core:
      type: object
      properties:
        core:
          type: number
          description: Broker core
      description: Broker core
    cluster_view:
      type: object
      properties:
        brokers:
          type: array
          items:
            $ref: '#/components/schemas/broker'
        version:
          type: integer
          description: cluster view version
          format: int64
      description: Cluster view
    decommission_status:
      type: object
      properties:
        finished:
          type: boolean
          description: Whether decommissioning is finished
        partitions:
          type: array
          description: Array of partition reconfiguration statues
          items:
            $ref: '#/components/schemas/partition_reconfiguration_status'
        replicas_left:
          type: integer
          description: Number of replicas left on a broker
          format: int64
      description: Decommissioning status of the broker
    disk_space_info:
      type: object
      properties:
        free:
          type: integer
          description: free space bytes
          format: int64
        path:
          type: string
          description: data directory path
        total:
          type: integer
          description: total space bytes
          format: int64
    maintenance_status:
      type: object
      properties:
        draining:
          type: boolean
          description: in maintenance state
        eligible:
          type: integer
          description: eligible partition count
          format: int64
        errors:
          type: boolean
          description: drain errors
        failed:
          type: integer
          description: failed transfer partition count
          format: int64
        finished:
          type: boolean
          description: drain finished
        partitions:
          type: integer
          description: partition count
          format: int64
        transferring:
          type: integer
          description: transferring partition count
          format: int64
      description: Drain status
    partition_reconfiguration_status:
      type: object
      properties:
        bytes_left_to_move:
          type: integer
          description: bytes left to move to new replica
          format: int64
        bytes_moved:
          type: integer
          description: bytes moved to target broker
          format: int64
        moving_to:
          $ref: '#/components/schemas/broker_shard'
        ns:
          type: string
          description: namespace
        partition:
          type: integer
          description: partition
          format: int32
        partition_size:
          type: integer
          description: current size of partition
          format: int64
        topic:
          type: string
          description: topic
      description: Partition reconfiguration status
    assignment:
      type: object
      properties:
        core:
          type: integer
          description: core
          format: int64
        node_id:
          type: integer
          description: node id
          format: int64
      description: Replica assignment
    cluster_partition:
      type: object
      properties:
        ns:
          type: string
          description: namespace
        partition_id:
          type: integer
          description: partition
          format: int64
        replicas:
          type: array
          description: Replica assignments
          items:
            $ref: '#/components/schemas/assignment'
        disabled:
          type: boolean
          description: Status
        topic:
          type: string
          description: topic
      description: Partition details
    partition:
      type: object
      properties:
        leader_id:
          type: integer
          description: Node ID of the leader broker
          format: int64
        ns:
          type: string
          description: namespace
        partition_id:
          type: integer
          description: partition
          format: int64
        raft_group_id:
          type: integer
          description: partition raft group id
          format: int64
        replicas:
          type: array
          description: Replica assignments
          items:
            $ref: '#/components/schemas/assignment'
        status:
          type: string
          description: status
        topic:
          type: string
          description: topic
      description: Partition details
    partition_result:
      type: object
      properties:
        ns:
          type: string
          description: Namespace
        partition:
          type: integer
          description: Partition id
          format: int64
        result:
          type: string
          description: Status of operation
        topic:
          type: string
          description: Topic
      description: Partition result
    partition_summary:
      type: object
      properties:
        core:
          type: integer
          description: core
          format: int64
        leader:
          type: integer
          description: Latest known leader (or -1 if unknown)
          format: int64
        materialized:
          type: boolean
          description: materialized
        ns:
          type: string
          description: namespace
        partition_id:
          type: integer
          description: partition
          format: int64
        topic:
          type: string
          description: topic
      description: Partition summary
    partitions_local_summary:
      type: object
      properties:
        count:
          type: integer
          description: Number of partitions with a replica on this broker
          format: int64
        leaderless:
          type: integer
          description: Number of partitions with a replica on this broker that report no known raft leader
          format: int64
        under_replicated:
          type: integer
          description: 'Number of partitions with leadership on this broker, reporting one or more under-replicated followers'
          format: int64
      description: Summarize status of partitions with a replica on this broker
    producer_identity:
      type: object
      properties:
        epoch:
          type: integer
          description: Producer epoch
          format: int64
        id:
          type: integer
          description: Producer id
          format: int64
      description: Producer identity
    reconfiguration:
      type: object
      properties:
        ns:
          type: string
          description: Namespace
        partition:
          type: integer
          description: Partition id
          format: int64
        previous_replicas:
          type: array
          description: Previous replica set
          items:
            $ref: '#/components/schemas/assignment'
        status:
          type: string
          description: Reconfiguration status
        topic:
          type: string
          description: Topic
        current_replicas:
          type: array
          items:
            $ref: '#/components/schemas/assignment'
          description: Current replica set
        bytes_left_to_move:
          type: integer
          description: Remaining bytes to move to new replicas
        bytes_moved:
          type: integer
          description: Bytes already moved to new replicas
        partition_size:
          type: integer
          description: Current size of partition
        reconciliation_statuses:
          type: array
          items:
            $ref: '#/components/schemas/partition_reconciliation_status'
          description: List of reconciliation statuses per broker
      description: Partition reconfiguration details
    partition_reconciliation_status:
      type: object
      description: Partition reconciliation status on a broker
      properties:
        node_id:
          type: integer
          description: Node ID of the broker reporting the status
        operations:
          type: array
          items:
            $ref: '#/components/schemas/partition_reconciliation_operation'
          description: List of operations being executed on the broker
    partition_reconciliation_operation:
      type: object
      description: Partition reconciliation being executed by a broker on a specific shard
      properties:
        type:
          type: string
          description: Type of an operation currently being executed
        core:
          type: integer
          description: Core (shard) that the status comes from
        retry_number:
          type: integer
          description: Number of currently executing retry operations
        revision:
          type: integer
          description: Revision number of currently executing operation
        status:
          type: string
          description: Result of last operation
    transaction:
      type: object
      properties:
        lso_bound:
          type: integer
          description: First offset
          format: int64
        producer_id:
          $ref: '#/components/schemas/producer_identity'
        staleness_ms:
          type: integer
          description: How long transaction does not make progress
          format: int64
        status:
          type: string
          description: Transaction status
        timeout_ms:
          type: integer
          description: Transaction timeout
          format: int64
      description: Transaction details
    transactions:
      type: object
      properties:
        active_transactions:
          type: array
          description: Active transactions
          items:
            $ref: '#/components/schemas/transaction'
        expired_transactions:
          type: array
          description: Expired transactions
          items:
            $ref: '#/components/schemas/transaction'
      description: Transactions for current partition
    failure_injector_status:
      type: object
      properties:
        enabled:
          type: boolean
        probes:
          type: array
          items:
            $ref: '#/components/schemas/failure_probes'
      description: Status of failure injector with list of available probes
    failure_probes:
      type: object
      properties:
        module:
          type: string
          description: failure probes module name
        points:
          type: array
          description: list of failure points
          items:
            type: string
      description: Group of failure probes related with single resource
    group:
      type: object
      properties:
        etag:
          type: integer
          description: Raft term
          format: int64
        group_id:
          type: string
          description: Group id
      description: Group info
    partition_transaction:
      type: object
      properties:
        etag:
          type: integer
          description: Raft term
          format: int64
        ns:
          type: string
          description: namespace
        partition_id:
          type: integer
          description: partition
          format: int64
        topic:
          type: string
          description: topic
      description: Partition info
    transaction_summary:
      type: object
      properties:
        etag:
          type: integer
          description: Term of a transaction coordinated started a transaction
          format: int64
        groups:
          type: array
          description: Consumer groups for transaction
          items:
            $ref: '#/components/schemas/group'
        partitions:
          type: array
          description: Partitions for transaction
          items:
            $ref: '#/components/schemas/partition_transaction'
        pid:
          $ref: '#/components/schemas/producer_identity'
        staleness_ms:
          type: integer
          description: How long transaction does not make progress
          format: int64
        status:
          type: string
          description: Current status for transaction
        timeout_ms:
          type: integer
          description: Transaction timeout
          format: int64
        transactional_id:
          type: string
          description: Id of an application executing a transaction
        tx_seq:
          type: integer
          description: tx_seq identifies a transactions within a session
          format: int64
      description: Transaction summary
    cluster_health_overview:
      type: object
      properties:
        all_nodes:
          type: array
          description: Node IDs of all brokers registered in the cluster
          items:
            type: integer
            format: int32
        controller_id:
          type: integer
          description: Broker that is currently a leader or `-1` if leader is not elected
          format: int32
        is_healthy:
          type: boolean
          description: Basic cluster health indicator
        leaderless_partitions:
          type: array
          description: List of partitions for which no leader is elected
          items:
            type: string
        under_replicated_partitions:
          type: array
          items:
            type: string
          description: List of partitions where one or more replicas hasn't replicated all data
        bytes_in_cloud_storage:
          type: integer
          description: 'Total amount of bytes in object storage, or `-1` if unable to obtain data'
        nodes_down:
          type: array
          description: Node IDs of all brokers that are recognized as down
          items:
            type: integer
            format: int32
      description: Returns simple overview of cluster status
    partition_balancer_status:
      type: object
      properties:
        current_reassignments_count:
          type: integer
          description: Current number of partition reassignments in progress
          format: int32
        seconds_since_last_tick:
          type: integer
          description: Number of seconds since the partition balancer last ran
          format: int32
        status:
          type: string
          description: off/ready/in_progress/stalled
        violations:
          $ref: '#/components/schemas/partition_balancer_violations'
        partitions_pending_force_recovery_count:
          type: integer
          format: int32
          description: Number of partitions pending force recovery
        partitions_pending_force_recovery_sample:
          type: array
          description: Sample list of partitions pending force recovery
          items:
            type: string
      description: Returns status of the partition autobalancer
    partition_balancer_violations:
      type: object
      properties:
        over_disk_limit_nodes:
          type: array
          items:
            type: integer
            format: int32
        unavailable_nodes:
          type: array
          items:
            type: integer
            format: int32
    uuid:
      type: object
      properties:
        cluster_uuid:
          type: string
    disable_enable_partitions:
      type: object
      properties:
        disabled:
          type: boolean
    controller_status:
      type: object
      properties:
        commited_index:
          type: integer
          description: Committed index for controller consensus
          format: int64
        last_applied_offset:
          type: integer
          description: Last applied offset for controller stm
          format: int64
      description: Controller status
    leader_info:
      type: object
      properties:
        last_stable_leader_term:
          type: integer
          description: Last stable leader term
          format: int64
        leader:
          type: integer
          description: Current leader
          format: int64
        ns:
          type: string
          description: Namespace
        partition_id:
          type: integer
          description: Partition
          format: int64
        partition_revision:
          type: integer
          description: Partition revision
          format: int64
        previous_leader:
          type: integer
          description: Previous leader
          format: int64
        topic:
          type: string
          description: topic
        update_term:
          type: integer
          description: Update term
          format: int64
      description: Leader info
    peer_status:
      type: object
      properties:
        since_last_status:
          type: integer
          description: Milliseconds since last update from peer
          format: int64
      description: Peer status
    self_test_node_report:
      type: object
      properties:
        node_id:
          type: integer
          description: node_id of the broker reporting
          format: int64
        results:
          type: array
          description: Recordings of test runs from a single broker
          items:
            $ref: '#/components/schemas/self_test_result'
        status:
          type: string
          description: One of either idle / running / unreachable
      description: Current state of self test on a given broker
    self_test_result:
      type: object
      properties:
        info:
          type: string
          description: 'Additional test labels, metadata and/or information'
        bps:
          type: integer
          description: Bytes operated on per second
          format: int64
        duration:
          type: integer
          description: Length of time the test took to complete
          format: int64
        error:
          type: string
          description: Stringified exception if any occurred during test execution
        max_latency:
          type: integer
          description: Maximum recorded latency measurement
          format: int64
        name:
          type: string
          description: Name of the test run
        p50:
          type: integer
          description: 50th percentile latencies
          format: int64
        p90:
          type: integer
          description: 90th percentile latencies
          format: int64
        p99:
          type: integer
          description: 99th percentile latencies
          format: int64
        p999:
          type: integer
          description: 999th percentile latencies
          format: int64
        rps:
          type: integer
          description: Number of requests per second
          format: int64
        test_id:
          type: string
          description: Global test uuid identifier
        test_type:
          type: string
          description: 'Type of self test, one of either disk/network'
        timeouts:
          type: integer
          description: Number of io timeouts observed during run
          format: int64
        warning:
          type: string
          description: Warning that arose during test execution
      description: Result set from a single self_test run
    cpu_profile_shard_sample:
      type: object
      properties:
        shard_id:
          type: integer
          format: int64
          description: Shard from which the sample originated
        dropped_samples:
          type: integer
          format: int64
          description: Number of samples that had to be dropped due to space limitations
        samples:
          type: array
          description: CPU profile samples
          items:
            $ref: '#/components/schemas/cpu_profile_sample'
      description: CPU profile shard sample
    cpu_profile_sample:
      type: object
      properties:
        user_backtrace:
          type: string
          description: User backtrace
        occurrences:
          type: integer
          format: int64
          description: Number of times this backtrace has occurred
      description: CPU profile sample
    init_recovery_result:
      type: object
      properties:
        status:
          type: string
          description: current status of recovery process
      description: Result of initiation of recovery process in background
    recovery_request_params:
      type: object
      properties:
        retention_bytes:
          type: integer
          format: int32
        retention_ms:
          type: integer
          format: int32
        topic_names_pattern:
          type: string
    topic_download_counts:
      type: object
      properties:
        failed_downloads:
          type: integer
          format: int32
        pending_downloads:
          type: integer
          format: int32
        successful_downloads:
          type: integer
          format: int32
        topic_namespace:
          type: string
    topic_recovery_status:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/recovery_request_params'
        state:
          type: string
        topic_download_counts:
          type: array
          items:
            $ref: '#/components/schemas/topic_download_counts'
    cluster_recovery_status:
      type: object
      properties:
        state:
          type: string
        error:
          type: string
    automated_recovery_request_body:
      description: Request body for initializing a cluster recovery
      type: object
      properties:
        cluster_uuid_override:
          description: 'Optional cluster UUID to recover. If not provided, auto-discover selects the manifest with highest sequence number.'
          type: string
          format: uuid
      additionalProperties: false
    cancel_all_partitions_reconfigurations:
      type: object
      description: TBD
    shard_error:
      type: object
      properties:
        message:
          type: string
          example: 'Invalid shard ID, check shard limit'
        code:
          type: integer
          example: 400
    wait_ms_error:
      type: object
      properties:
        message:
          type: string
          example: wait_ms must be between 1ms and 15min
        code:
          type: integer
          example: 400
    oidc_whoami_response:
      type: object
      properties:
        id:
          type: string
          description: Mapped principal for authorization
        expire:
          type: integer
          format: int64
          description: Unix timestamp of the expiry of the token
    oidc_keys_cache_invalidate_error_response:
      type: object
      properties:
        error_message:
          type: string
    rbac_error_body:
      properties:
        code:
          type: integer
        message:
          type: string
      type: object
    role:
      properties:
        members:
          items:
            $ref: '#/components/schemas/role_member'
          type: array
        name:
          type: string
      type: object
    role_definition:
      properties:
        role:
          type: string
      type: object
    role_description:
      properties:
        name:
          type: string
      type: object
    role_member:
      properties:
        name:
          type: string
        principal_type:
          enum:
            - User
          type: string
      type: object
    role_member_update_response:
      properties:
        added:
          items:
            $ref: '#/components/schemas/role_member'
          type: array
        created:
          type: boolean
        removed:
          items:
            $ref: '#/components/schemas/role_member'
          type: array
        role:
          type: string
      type: object
    role_members_list:
      properties:
        members:
          items:
            $ref: '#/components/schemas/role_member'
          type: array
      type: object
    roles_list:
      properties:
        roles:
          items:
            $ref: '#/components/schemas/role_description'
          type: array
      type: object
    namespaced_topic:
      properties:
        topic:
          type: string
          description: Topic name
        ns:
          type: string
          description: 'Topic namespace. If not present, it is assumed that the topic is in the `kafka` namespace.'
      type: object
      required:
        - topic
    mountable_topic:
      type: object
      properties:
        topic_location:
          type: string
          description: Unique topic location in object storage with the format `<topic-name>/<cluster-uuid>/<initial-revision>`. Redpanda assigns the number `initial-revision` to a topic upon creation.
        topic:
          type: string
          description: Topic name
        ns:
          type: string
          description: 'Topic namespace. If not present, it is assumed that topic is in the `kafka` namespace'
    list_mountable_topics_response:
      type: object
      properties:
        topics:
          type: array
          items:
            $ref: '#/components/schemas/mountable_topic'
    outbound_migration:
      properties:
        migration_type:
          type: string
          enum:
            - outbound
        topics:
          type: array
          items:
            $ref: '#/components/schemas/namespaced_topic'
          description: List of migrated topics
        consumer_groups:
          type: array
          description: List of migrated consumer groups
          items:
            type: string
        copy_to:
          $ref: '#/components/schemas/bucket_configuration'
        auto_advance:
          description: 'If set, you do not need to take manual action for the migration to progress.'
          type: boolean
    inbound_migration:
      properties:
        migration_type:
          type: string
          enum:
            - inbound
        topics:
          type: array
          items:
            $ref: '#/components/schemas/inbound_topic'
        consumer_groups:
          type: array
          description: List of migrated consumer groups
          items:
            type: string
        auto_advance:
          type: boolean
          description: 'If set, you do not need to take manual action for the migration to progress.'
      required:
        - migration_type
    inbound_topic:
      type: object
      properties:
        source_topic_reference:
          description: 'Name of topic in object storage. To uniquely identify the topic, append the name with `/<cluster-uuid>/<initial-revision>. Redpanda assigns the number `initial-revision` to a topic upon creation.'
          $ref: '#/components/schemas/namespaced_topic'
        alias:
          description: Name of topic in destination cluster
          $ref: '#/components/schemas/namespaced_topic'
    bucket_configuration:
      type: object
      required:
        - bucket
      properties:
        access_key:
          type: string
        secret_key:
          type: string
        region:
          type: string
        bucket:
          type: string
        credential_source:
          enum:
            - config
            - instance_metadata
            - sts
          type: string
        topic_manifest_prefix:
          description: Path where topic manifests are copied to
          type: string
    outbound_migration_state:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of migration
        state:
          type: string
        migration:
          $ref: '#/components/schemas/outbound_migration'
    inbound_migration_state:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: Unique identifier of migration
        state:
          type: string
        migration:
          $ref: '#/components/schemas/inbound_migration'
    mount_configuration:
      type: object
      required:
        - topics
      properties:
        topics:
          type: array
          items:
            $ref: '#/components/schemas/inbound_topic'
          description: List of topics to mount
    migration_info:
      type: object
      properties:
        id:
          type: integer
          format: int32
    security_report_alert:
      type: object
      properties:
        affected_interface:
          type: string
          enum:
            - kafka
            - rpc
            - admin
            - schema_registry
            - schema_registry_client
            - pandaproxy
            - audit_log_client
        listener_name:
          description: 'The listener name of the affected interface, if provided'
          type: string
        issue:
          type: string
          enum:
            - NO_TLS
            - NO_AUTHN
            - NO_AUTHZ
            - SASL_PLAIN
            - PP_CONFIGURED_CLIENT
            - INSECURE_MIN_TLS_VERSION
            - TLS_RENEGOTIATION
        description:
          description: Human-readable description of the alert
          type: string
      required:
        - issue
        - description
    kafka_interface_security_report:
      description: Security report for Kafka API interface
      type: object
      properties:
        name:
          type: string
        host:
          type: string
        port:
          type: integer
        advertised_host:
          type: string
        advertised_port:
          type: integer
        tls_enabled:
          type: boolean
        mutual_tls_enabled:
          type: boolean
        authentication_method:
          type: string
          enum:
            - SASL
            - mTLS
            - None
        authorization_enabled:
          type: boolean
        supported_sasl_mechanisms:
          type: array
          items:
            type: string
    rpc_interface_security_report:
      description: Security report for RPC interface
      type: object
      properties:
        host:
          type: string
        port:
          type: integer
        advertised_host:
          type: string
        advertised_port:
          type: integer
        tls_enabled:
          type: boolean
        mutual_tls_enabled:
          type: boolean
    admin_interface_security_report:
      description: Security report for Admin API interface
      type: object
      properties:
        name:
          type: string
        host:
          type: string
        port:
          type: integer
        tls_enabled:
          type: boolean
        mutual_tls_enabled:
          type: boolean
        authentication_methods:
          type: array
          items:
            type: string
            enum:
              - BASIC
              - OIDC
        authorization_enabled:
          type: boolean
    schema_registry_interface_security_report:
      description: Security report for Schema Registry interface
      type: object
      properties:
        name:
          type: string
        host:
          type: string
        port:
          type: integer
        tls_enabled:
          type: boolean
        mutual_tls_enabled:
          type: boolean
        authentication_methods:
          type: array
          items:
            type: string
            enum:
              - BASIC
              - OIDC
        authorization_enabled:
          type: boolean
    pandaproxy_interface_security_report:
      description: Security report for HTTP Proxy (Pandaproxy) interface
      type: object
      properties:
        name:
          type: string
        host:
          type: string
        port:
          type: integer
        advertised_host:
          type: string
        advertised_port:
          type: integer
        tls_enabled:
          type: boolean
        mutual_tls_enabled:
          type: boolean
        authentication_methods:
          type: array
          items:
            type: string
            enum:
              - BASIC
              - OIDC
        authorization_enabled:
          type: boolean
        configured_authentication_method:
          type: string
          enum:
            - None
            - SCRAM_Configured
            - SCRAM_Proxied
    host_port:
      type: object
      properties:
        host:
          type: string
        port:
          type: integer
    client_security_report:
      description: Security report for Kafka client interface
      type: object
      properties:
        kafka_listener_name:
          type: string
        brokers:
          type: array
          items:
            $ref: '#/components/schemas/host_port'
        tls_enabled:
          type: boolean
        mutual_tls_enabled:
          type: boolean
        configured_authentication_method:
          type: string
          enum:
            - None
            - SCRAM_Configured
            - SCRAM_Ephemeral
tags:
  - name: Authentication
    description: |

      Authenticate and authorize access to Redpanda.
  - name: Clusters
    description: |

      Configure a Redpanda cluster's properties.
  - name: Brokers
    description: |
      Manage brokers (nodes) in a Redpanda cluster.

      * Start and start broker maintenance
      * Decommission and recommision brokers
  - name: Partitions
    description: |
      Manage partitions of a Redpanda cluster.
  - name: Tiered Storage
    description: 'Manage [Tiered Storage](https://docs.redpanda.com/current/manage/tiered-storage/).'
  - name: Mount and unmount topics
    description: '[Mount and unmount topics](https://docs.redpanda.com/current/manage/mountable-topics/) in Redpanda clusters. Requires that you have [Tiered Storage](https://docs.redpanda.com/current/manage/tiered-storage/) enabled.'
  - name: Transactions
  - name: Users
    description: Manage SCRAM (Salted Challenge Response Authentication Mechanism) users.
  - name: Roles
    description: Role object and role membership management.
  - name: Licenses and Features
    description: Manage Redpanda licenses and available licensed features.
  - name: Logging
    description: 'Get available loggers, and set log levels.'
  - name: Debugging
    description: |
      Debug a Redpanda cluster.

      For details about debugging in the latest version of Redpanda version, see [Cluster Diagnostics](https://docs.redpanda.com/docs/manage/cluster-maintenance/cluster-diagnostics/).
  - name: Security
    description: |
      Security management and reporting endpoints.

      Monitor security configurations and generate security reports.
  - name: Services
    description: Manage Redpanda services.
  - name: Unstable APIs
    description: Developmental APIs that are subject to change.
