{"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.\n\nSee also:\n\n- [Manage Redpanda Using the Admin API](https://docs.redpanda.com/25.3/manage/use-admin-api)\n- [Configure Authentication](https://docs.redpanda.com/current/manage/security/authentication/)\n\n---\n","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":{"/v1/node_config":{"get":{"tags":["Clusters"],"summary":"Get brokers' configurations","description":"List the configuration properties of all brokers (nodes) in the cluster.\n\nFor the broker configuration properties of the latest Redpanda version, see [Broker Configuration Properties](https://docs.redpanda.com/docs/reference/broker-properties/).\n","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.\n\n* **Default value**: 600 (10 minutes)\n* **Valid values**: `0` (infinite duration) or greater\n","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.\n\nFor supported cluster properties, see [/cluster_config/schema](#operation/get_cluster_config_schema).\n","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 \nsecurity configurations such as authentication methods, TLS settings, and security alerts for all interfaces (Kafka, RPC, Admin, Schema Registry, \nHTTP Proxy).\n","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.\n"}},"/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.\n"},"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"},"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.\n","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","type":"integer"},"abort_timed_out_transactions_interval_ms":{"description":"How often look for the inactive transactions and abort them","type":"integer"},"admin_api_require_auth":{"description":"Whether admin API clients must provide HTTP Basic authentication headers","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.","type":"boolean"},"alter_topic_cfg_timeout_ms":{"description":"Time to wait for entries replication in controller log when executing alter configuration requst","type":"integer"},"append_chunk_size":{"description":"Size of direct write operations to disk in bytes","type":"integer"},"auto_create_topics_enabled":{"description":"Allow topic auto creation","type":"boolean"},"cloud_storage_access_key":{"description":"AWS access key","type":"string"},"cloud_storage_api_endpoint":{"description":"Optional API endpoint","type":"string"},"cloud_storage_api_endpoint_port":{"description":"TLS port override","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`","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.","type":"string"},"cloud_storage_azure_storage_account":{"description":"The name of the Azure storage account to use with Tiered Storage","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.","type":"string","enum":["aws","google_s3_compat","azure","minio","unknown"]},"cloud_storage_bucket":{"description":"AWS bucket that should be used to store data","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","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.","type":"integer"},"cloud_storage_cache_size":{"description":"Max size of archival cache","type":"integer"},"cloud_storage_chunk_eviction_strategy":{"description":"Selects a strategy for evicting unused cache chunks.","type":"string","enum":["eager","capped","predictive"]},"cloud_storage_cluster_metadata_upload_interval_ms":{"description":"Time interval to wait between cluster metadata uploads.","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.","type":"string"},"cloud_storage_credentials_source":{"description":"The source of credentials to connect to cloud services","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.","type":"boolean"},"cloud_storage_disable_tls":{"description":"Disable TLS for all S3 connections","type":"boolean"},"cloud_storage_enable_compacted_topic_reupload":{"description":"Enable re-uploading data for compacted topics","type":"boolean"},"cloud_storage_enable_remote_read":{"description":"Default remote read config value for new topics","type":"boolean"},"cloud_storage_enable_remote_write":{"description":"Default remote write value for new topics","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","type":"boolean"},"cloud_storage_enabled":{"description":"Enable archival storage","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.","type":"integer"},"cloud_storage_housekeeping_interval_ms":{"description":"Interval for cloud storage housekeeping tasks","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.","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.","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.","type":"integer"},"cloud_storage_initial_backoff_ms":{"description":"Initial backoff time for exponential backoff algorithm (ms)","type":"integer"},"cloud_storage_manifest_cache_size":{"description":"Amount of memory that can be used to handle tiered-storage metadata","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.","type":"integer"},"cloud_storage_manifest_upload_timeout_ms":{"description":"Manifest upload timeout (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.","type":"integer"},"cloud_storage_max_connection_idle_time_ms":{"description":"Max https connection idle time (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)","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.","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.","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","type":"integer"},"cloud_storage_metadata_sync_timeout_ms":{"description":"Timeout for SI metadata synchronization","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","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","type":"integer"},"cloud_storage_recovery_temporary_retention_bytes_default":{"description":"Retention in bytes for topics created during automated recovery","type":"integer"},"cloud_storage_region":{"description":"AWS region that houses the bucket used for storage","type":"string"},"cloud_storage_roles_operation_timeout_ms":{"description":"Timeout for IAM role related operations (ms)","type":"integer"},"cloud_storage_secret_key":{"description":"AWS secret key","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)","type":"integer"},"cloud_storage_segment_size_min":{"description":"Smallest acceptable segment size in the cloud storage. Default: cloud_storage_segment_size_target/2","type":"integer"},"cloud_storage_segment_size_target":{"description":"Desired segment size in the cloud storage. Default: segment.bytes","type":"integer"},"cloud_storage_segment_upload_timeout_ms":{"description":"Log segment upload timeout (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.","type":"integer"},"cloud_storage_trust_file":{"description":"Path to certificate that should be used to validate server certificate during TLS handshake","type":"string"},"cloud_storage_upload_ctrl_d_coeff":{"description":"derivative coefficient for upload PID controller.","type":"number"},"cloud_storage_upload_ctrl_max_shares":{"description":"maximum number of IO and CPU shares that archival upload can use","type":"integer"},"cloud_storage_upload_ctrl_min_shares":{"description":"minimum number of IO and CPU shares that archival upload can use","type":"integer"},"cloud_storage_upload_ctrl_p_coeff":{"description":"proportional coefficient for upload PID controller","type":"number"},"cloud_storage_upload_ctrl_update_interval_ms":{"description":"","type":"integer"},"cloud_storage_upload_loop_initial_backoff_ms":{"description":"Initial backoff interval when there is nothing to upload for a partition (ms)","type":"integer"},"cloud_storage_upload_loop_max_backoff_ms":{"description":"Max backoff interval when there is nothing to upload for a partition (ms)","type":"integer"},"cluster_id":{"description":"Cluster identifier","type":"string"},"compacted_log_segment_size":{"description":"How large in bytes should each compacted log segment be (default 256MiB)","type":"integer"},"compaction_ctrl_backlog_size":{"description":"target backlog size for compaction controller. if not set compaction target compaction backlog would be equal to ","type":"integer"},"compaction_ctrl_d_coeff":{"description":"derivative coefficient for compaction PID controller.","type":"number"},"compaction_ctrl_i_coeff":{"description":"integral coefficient for compaction PID controller.","type":"number"},"compaction_ctrl_max_shares":{"description":"maximum number of IO and CPU shares that compaction process can use","type":"integer"},"compaction_ctrl_min_shares":{"description":"minimum number of IO and CPU shares that compaction process can use","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","type":"number"},"compaction_ctrl_update_interval_ms":{"description":"","type":"integer"},"controller_backend_housekeeping_interval_ms":{"description":"Interval between iterations of controller backend housekeeping loop","type":"integer"},"controller_log_accummulation_rps_capacity_acls_and_users_operations":{"description":"Maximum capacity of rate limit accumulationin controller acls and users operations limit","type":"integer"},"controller_log_accummulation_rps_capacity_configuration_operations":{"description":"Maximum capacity of rate limit accumulationin controller configuration operations limit","type":"integer"},"controller_log_accummulation_rps_capacity_move_operations":{"description":"Maximum capacity of rate limit accumulationin controller move operations limit","type":"integer"},"controller_log_accummulation_rps_capacity_node_management_operations":{"description":"Maximum capacity of rate limit accumulationin controller node management operations limit","type":"integer"},"controller_log_accummulation_rps_capacity_topic_operations":{"description":"Maximum capacity of rate limit accumulationin controller topic operations limit","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","type":"integer"},"create_topic_timeout_ms":{"description":"Timeout (ms) to wait for new topic creation","type":"integer"},"default_num_windows":{"description":"Default number of quota tracking windows","type":"integer"},"default_topic_partitions":{"description":"Default number of partitions per topic","type":"integer"},"default_topic_replications":{"description":"Default replication factor for new topics","type":"integer"},"default_window_sec":{"description":"Default quota tracking window size in milliseconds","type":"integer"},"delete_retention_ms":{"description":"delete segments older than this - default 1 week","type":"integer"},"disable_batch_cache":{"description":"Disable batch cache in log manager","type":"boolean"},"disable_metrics":{"description":"Disable registering metrics exposed on the internal metrics endpoint (/metrics)","type":"boolean"},"disable_public_metrics":{"description":"Disable registering metrics exposed on the public metrics endpoint (/public_metrics)","type":"boolean"},"election_timeout_ms":{"description":"Election timeout expressed in milliseconds","type":"integer"},"enable_controller_log_rate_limiting":{"description":"Enables limiting of controller log write rate","type":"boolean"},"enable_idempotence":{"description":"Enable idempotent producer","type":"boolean"},"enable_leader_balancer":{"description":"Enable automatic leadership rebalancing","type":"boolean"},"enable_metrics_reporter":{"description":"Enable cluster metrics reporter","type":"boolean"},"enable_pid_file":{"description":"Enable pid file. You probably don't want to change this.","type":"boolean"},"enable_rack_awareness":{"description":"Enables rack-aware replica assignment","type":"boolean"},"enable_sasl":{"description":"Enable SASL authentication for Kafka connections, authorization is required. see also `kafka_enable_authorization`","type":"boolean"},"enable_schema_id_validation":{"description":"Enable Server Side Schema ID Validation.","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.","type":"boolean"},"enable_transactions":{"description":"Enable transactions","type":"boolean"},"enable_usage":{"description":"Enables the usage tracking mechanism, storing windowed history of kafka/cloud_storage metrics over time","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)","type":"boolean"},"fetch_max_bytes":{"description":"Maximum number of bytes returned in fetch request","type":"integer"},"fetch_reads_debounce_timeout":{"description":"Time to wait for next read in fetch request when requested min bytes wasn't reached","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","type":"integer"},"find_coordinator_timeout_ms":{"description":"Time to wait for a response from tx_registry","type":"integer"},"full_raft_configuration_recovery_pattern":{"description":"Recover raft configuration on start for NTPs matching pattern","type":"array","items":{"type":"string"}},"group_initial_rebalance_delay":{"description":"Extra delay (ms) added to rebalance phase to wait for new members","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. ","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.","type":"integer"},"group_new_member_join_timeout":{"description":"Timeout for new member joins","type":"integer"},"group_offset_retention_check_ms":{"description":"How often the system should check for expired group offsets.","type":"integer"},"group_offset_retention_sec":{"description":"Consumer group offset retention seconds. Offset retention can be disabled by setting this value to null.","type":"integer"},"group_topic_partitions":{"description":"Number of partitions in the internal group membership topic","type":"integer"},"health_manager_tick_interval":{"description":"How often the health manager runs","type":"integer"},"health_monitor_max_metadata_age":{"description":"Max age of metadata cached in the health monitor of non controller node","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.","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.","type":"integer"},"internal_topic_replication_factor":{"description":"Target replication factor for internal topics","type":"integer"},"join_retry_timeout_ms":{"description":"Time between cluster join retries in milliseconds","type":"integer"},"kafka_admin_topic_api_rate":{"description":"Target quota rate (partition mutations per default_window_sec)","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","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","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","type":"array","items":{"$ref":"#/components/schemas/client_group_quota"}},"kafka_connection_rate_limit":{"description":"Maximum connections per second for one core","type":"integer"},"kafka_connection_rate_limit_overrides":{"description":"Overrides for specific ips for maximum connections per second for one core","type":"array","items":{"type":"string"}},"kafka_connections_max":{"description":"Maximum number of Kafka client connections per broker","type":"integer"},"kafka_connections_max_overrides":{"description":"Per-IP overrides of kafka connection count limit, list of \u003cip\u003e:\u003ccount\u003e strings","type":"array","items":{"type":"string"}},"kafka_connections_max_per_ip":{"description":"Maximum number of Kafka client connections from each IP address, per broker","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`","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.","type":"boolean"},"kafka_enable_partition_reassignment":{"description":"Enable the Kafka partition reassignment API","type":"boolean"},"kafka_group_recovery_timeout_ms":{"description":"Kafka group recovery timeout expressed in milliseconds","type":"integer"},"kafka_max_bytes_per_fetch":{"description":"Limit fetch responses to this many bytes, even if total of partition bytes limits is higher","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.","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","type":"number"},"kafka_mtls_principal_mapping_rules":{"description":"Principal Mapping Rules for mTLS Authentication on the Kafka API","type":"array","items":{"type":"string"}},"kafka_nodelete_topics":{"description":"Prevents the topics in the list from being deleted via the kafka api","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","type":"array","items":{"type":"string"}},"kafka_qdc_depth_alpha":{"description":"Smoothing factor for kafka queue depth control depth tracking.","type":"number"},"kafka_qdc_depth_update_ms":{"description":"Update frequency for kafka queue depth control.","type":"integer"},"kafka_qdc_enable":{"description":"Enable kafka queue depth control.","type":"boolean"},"kafka_qdc_idle_depth":{"description":"Queue depth when idleness is detected in kafka queue depth control.","type":"integer"},"kafka_qdc_latency_alpha":{"description":"Smoothing parameter for kafka queue depth control latency tracking.","type":"number"},"kafka_qdc_max_depth":{"description":"Maximum queue depth used in kafka queue depth control.","type":"integer"},"kafka_qdc_max_latency_ms":{"description":"Max latency threshold for kafka queue depth control depth tracking.","type":"integer"},"kafka_qdc_min_depth":{"description":"Minimum queue depth used in kafka queue depth control.","type":"integer"},"kafka_qdc_window_count":{"description":"Number of windows used in kafka queue depth control latency tracking.","type":"integer"},"kafka_qdc_window_size_ms":{"description":"Window size for kafka queue depth control latency tracking.","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.","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.","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.","type":"integer"},"kafka_quota_balancer_window_ms":{"description":"Time window used to average current throughput measurement for quota balancer, in milliseconds","type":"integer"},"kafka_request_max_bytes":{"description":"Maximum size of a single request processed via Kafka API","type":"integer"},"kafka_rpc_server_stream_recv_buf":{"description":"Userspace receive buffer max size in bytes","type":"integer"},"kafka_rpc_server_tcp_recv_buf":{"description":"Kafka server TCP receive buffer size in bytes.","type":"integer"},"kafka_rpc_server_tcp_send_buf":{"description":"Kafka server TCP transmit buffer size in bytes.","type":"integer"},"kafka_schema_id_validation_cache_capacity":{"description":"Per-shard capacity of the cache for validating schema IDs.","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.","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","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.","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.","type":"integer"},"kvstore_flush_interval":{"description":"Key-value store flush interval (ms)","type":"integer"},"kvstore_max_segment_size":{"description":"Key-value maximum segment size (bytes)","type":"integer"},"leader_balancer_idle_timeout":{"description":"Leadership rebalancing idle timeout","type":"integer"},"leader_balancer_mode":{"description":"Leader balancer mode","type":"string","enum":["greedy_balanced_shards","random_hill_climbing"]},"leader_balancer_mute_timeout":{"description":"Leadership rebalancing mute timeout","type":"integer"},"leader_balancer_transfer_limit_per_shard":{"description":"Per shard limit for in progress leadership transfers","type":"integer"},"legacy_group_offset_retention_enabled":{"description":"Group offset retention is enabled by default in versions of Redpanda \u003e= 23.1. To enable offset retention after upgrading from an older version set this option to true.","type":"boolean"},"legacy_permit_unsafe_log_operation":{"description":"Permits the use of strings that may induct log injection/modification","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","type":"integer"},"log_cleanup_policy":{"description":"Default topic cleanup policy","type":"string"},"log_compaction_interval_ms":{"description":"How often do we trigger background compaction","type":"integer"},"log_compression_type":{"description":"Default topic compression type","type":"string","enum":["none","gzip","snappy","lz4","zstd","producer"]},"log_message_timestamp_type":{"description":"Default topic messages timestamp type","type":"string","enum":["CreateTime","LogAppendTime"]},"log_segment_ms":{"description":"Default log segment lifetime in ms for topics which do not set segment.ms","type":"integer"},"log_segment_ms_max":{"description":"Upper bound on topic segment.ms: higher values will be clamped to this value","type":"integer"},"log_segment_ms_min":{"description":"Lower bound on topic segment.ms: lower values will be clamped to this value","type":"integer"},"log_segment_size":{"description":"Default log segment size in bytes for topics which do not set segment.bytes","type":"integer"},"log_segment_size_jitter_percent":{"description":"Random variation to the segment size limit used for each partition","type":"integer"},"log_segment_size_max":{"description":"Upper bound on topic segment.bytes: higher values will be clamped to this limit","type":"integer"},"log_segment_size_min":{"description":"Lower bound on topic segment.bytes: lower values will be clamped to this limit","type":"integer"},"max_compacted_log_segment_size":{"description":"Max compacted segment size after consolidation","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","type":"integer"},"max_kafka_throttle_delay_ms":{"description":"Fail-safe maximum throttle delay on kafka requests","type":"integer"},"members_backend_retry_ms":{"description":"Time between members backend reconciliation loop retries ","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.","type":"boolean"},"metadata_dissemination_interval_ms":{"description":"Interaval for metadata dissemination batching","type":"integer"},"metadata_dissemination_retries":{"description":"Number of attempts of looking up a topic's meta data like shard before failing a request","type":"integer"},"metadata_dissemination_retry_delay_ms":{"description":"Delay before retry a topic lookup in a shard or other meta tables","type":"integer"},"metadata_status_wait_timeout_ms":{"description":"Maximum time to wait in metadata request for cluster health to be refreshed","type":"integer"},"metrics_reporter_report_interval":{"description":"cluster metrics reporter report interval","type":"integer"},"metrics_reporter_tick_interval":{"description":"Cluster metrics reporter tick interval","type":"integer"},"metrics_reporter_url":{"description":"cluster metrics reporter url","type":"string"},"node_isolation_heartbeat_timeout":{"description":"How long after the last heartbeat request a node will wait before considering itself to be isolated","type":"integer"},"node_management_operation_timeout_ms":{"description":"Timeout for executing node management operations","type":"integer"},"node_status_interval":{"description":"Time interval between two node status messages. Node status messages establish liveness status outside of the Raft protocol.","type":"integer"},"partition_autobalancing_concurrent_moves":{"description":"Number of partitions that can be reassigned at once","type":"integer"},"partition_autobalancing_max_disk_usage_percent":{"description":"Disk usage threshold that triggers moving partitions from the node","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","type":"integer"},"partition_autobalancing_mode":{"description":"Partition autobalancing mode","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","type":"integer"},"partition_autobalancing_node_availability_timeout_sec":{"description":"Node unavailability timeout that triggers moving partitions from the node","type":"integer"},"partition_autobalancing_tick_interval_ms":{"description":"Partition autobalancer tick interval","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 \u003c 80.","type":"number"},"quota_manager_gc_sec":{"description":"Quota manager GC frequency in milliseconds","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.","type":"integer"},"raft_heartbeat_interval_ms":{"description":"Milliseconds for raft leader heartbeats","type":"integer"},"raft_heartbeat_timeout_ms":{"description":"raft heartbeat RPC timeout","type":"integer"},"raft_io_timeout_ms":{"description":"Raft I/O timeout","type":"integer"},"raft_learner_recovery_rate":{"description":"Raft learner recovery rate limit in bytes per sec","type":"integer"},"raft_max_concurrent_append_requests_per_follower":{"description":"Maximum number of concurrent append entries requests sent by leader to one follower","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","type":"integer"},"raft_recovery_default_read_size":{"description":"default size of read issued during raft follower recovery","type":"integer"},"raft_recovery_throttle_disable_dynamic_mode":{"description":"Disables dynamic rate allocation in recovery throttle (advanced).","type":"boolean"},"raft_replicate_batch_window_size":{"description":"Max size of requests cached for replication","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)","type":"integer"},"raft_timeout_now_timeout_ms":{"description":"Timeout for a timeout now request","type":"integer"},"raft_transfer_leader_recovery_timeout_ms":{"description":"Timeout waiting for follower recovery when transferring leadership","type":"integer"},"readers_cache_eviction_timeout_ms":{"description":"Duration after which inactive readers will be evicted from cache","type":"integer"},"reclaim_batch_cache_min_free":{"description":"Free memory limit that will be kept by batch cache background reclaimer","type":"integer"},"reclaim_growth_window":{"description":"Length of time in which reclaim sizes grow","type":"integer"},"reclaim_max_size":{"description":"Maximum batch cache reclaim size","type":"integer"},"reclaim_min_size":{"description":"Minimum batch cache reclaim size","type":"integer"},"reclaim_stable_window":{"description":"Length of time above which growth is reset","type":"integer"},"recovery_append_timeout_ms":{"description":"Timeout for append entries requests issued while updating stale follower","type":"integer"},"release_cache_on_segment_roll":{"description":"Free cache when segments roll","type":"boolean"},"replicate_append_timeout_ms":{"description":"Timeout for append entries requests issued while replicating entries","type":"integer"},"retention_bytes":{"description":"Default max bytes per partition on disk before triggering a compaction","type":"integer"},"retention_local_target_bytes_default":{"description":"Local retention size target for partitions of topics with cloud storage write enabled","type":"integer"},"retention_local_target_ms_default":{"description":"Local retention time target for partitions of topics with cloud storage write enabled","type":"integer"},"rm_sync_timeout_ms":{"description":"Time to wait state catch up before rejecting a request","type":"integer"},"rpc_server_listen_backlog":{"description":"TCP connection queue length for Kafka server and internal RPC server","type":"integer"},"rpc_server_tcp_recv_buf":{"description":"Internal RPC TCP receive buffer size in bytes.","type":"integer"},"rpc_server_tcp_send_buf":{"description":"Internal RPC TCP transmit buffer size in bytes.","type":"integer"},"rps_limit_acls_and_users_operations":{"description":"Rate limit for controller acls and users operations","type":"integer"},"rps_limit_configuration_operations":{"description":"Rate limit for controller configuration operations","type":"integer"},"rps_limit_move_operations":{"description":"Rate limit for controller move operations","type":"integer"},"rps_limit_node_management_operations":{"description":"Rate limit for controller node management operations","type":"integer"},"rps_limit_topic_operations":{"description":"Rate limit for controller topic operations","type":"integer"},"sasl_kerberos_config":{"description":"The location of the Kerberos krb5.conf file for Redpanda","type":"string"},"sasl_kerberos_keytab":{"description":"The location of the Kerberos keytab file for Redpanda","type":"string"},"sasl_kerberos_principal":{"description":"The primary of the Kerberos Service Principal Name (SPN) for Redpanda","type":"string"},"sasl_kerberos_principal_mapping":{"description":"Rules for mapping Kerberos Principal Names to Redpanda User Principals","type":"array","items":{"type":"string"}},"sasl_mechanisms":{"description":"A list of supported SASL mechanisms. `SCRAM` and `GSSAPI` are allowed.","type":"array","items":{"type":"string"}},"segment_appender_flush_timeout_ms":{"description":"Maximum delay until buffered data is written","type":"integer"},"segment_fallocation_step":{"description":"Size for segments fallocation","type":"integer"},"seq_table_min_size":{"description":"Minimum size of the seq table non affected by compaction","type":"integer"},"storage_compaction_index_memory":{"description":"Maximum number of bytes that may be used on each shard by compactionindex writers","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","type":"integer"},"storage_max_concurrent_replay":{"description":"Maximum number of partitions' logs that will be replayed concurrently at startup, or flushed concurrently on shutdown.","type":"integer"},"storage_min_free_bytes":{"description":"Threshold of minimum bytes free space before rejecting producers.","type":"integer"},"storage_read_buffer_size":{"description":"Size of each read buffer (one per in-flight read, per log segment)","type":"integer"},"storage_read_readahead_count":{"description":"How many additional reads to issue ahead of current read location","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.","type":"integer"},"storage_space_alert_free_threshold_bytes":{"description":"Threshold of minimim bytes free space before setting storage space alert","type":"integer"},"storage_space_alert_free_threshold_percent":{"description":"Threshold of minimim percent free space before setting storage space alert","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.","type":"boolean"},"storage_target_replay_bytes":{"description":"Target bytes to replay from disk on startup after clean shutdown: controls frequency of snapshots and checkpoints","type":"integer"},"superusers":{"description":"List of superuser usernames","type":"array","items":{"type":"string"}},"target_fetch_quota_byte_rate":{"description":"Target fetch size quota byte rate (bytes per second) - disabled default","type":"integer"},"target_quota_byte_rate":{"description":"Target request size quota byte rate (bytes per second) - 2GB default","type":"integer"},"tm_sync_timeout_ms":{"description":"Time to wait state catch up before rejecting a request","type":"integer"},"topic_fds_per_partition":{"description":"Required file handles per partition when creating topics","type":"integer"},"topic_memory_per_partition":{"description":"Required memory per partition when creating topics","type":"integer"},"topic_partitions_per_shard":{"description":"Maximum number of partitions which may be allocated to one shard (CPU core)","type":"integer"},"topic_partitions_reserve_shard0":{"description":"Reserved partition slots on shard (CPU core) 0 on each node.  If this is \u003e= topic_partitions_per_core, no data partitions will be scheduled on shard 0","type":"integer"},"transaction_coordinator_cleanup_policy":{"description":"Cleanup policy for a transaction coordinator topic","type":"string"},"transaction_coordinator_delete_retention_ms":{"description":"delete segments older than this - default 1 week","type":"integer"},"transaction_coordinator_log_segment_size":{"description":"How large in bytes should each log segment be (default 1G)","type":"integer"},"transaction_coordinator_partitions":{"description":"Amount of partitions for transactions coordinator","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.","type":"integer"},"tx_log_stats_interval_s":{"description":"How often to log per partition tx stats, works only with debug logging enabled.","type":"integer"},"tx_timeout_delay_ms":{"description":"Delay before scheduling next check for timed out transactions","type":"integer"},"usage_disk_persistance_interval_sec":{"description":"The interval in which all usage stats are written to disk","type":"integer"},"usage_num_windows":{"description":"The number of windows to persist in memory and disk","type":"integer"},"usage_window_width_interval_sec":{"description":"The width of a usage window, tracking cloud and kafka ingress/egress traffic each interval","type":"integer"},"use_fetch_scheduler_group":{"description":"Use a separate scheduler group for fetch processing","type":"boolean"},"wait_for_leader_timeout_ms":{"description":"Timeout (ms) to wait for leadership in metadata cache","type":"integer"},"zstd_decompress_workspace_bytes":{"description":"Size of the zstd decompression workspace","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 `\u003ctopic-name\u003e/\u003ccluster-uuid\u003e/\u003cinitial-revision\u003e`. 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 `/\u003ccluster-uuid\u003e/\u003cinitial-revision\u003e. 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":"\nAuthenticate and authorize access to Redpanda.\n"},{"name":"Clusters","description":"\nConfigure a Redpanda cluster's properties.\n"},{"name":"Brokers","description":"Manage brokers (nodes) in a Redpanda cluster.\n\n* Start and start broker maintenance\n* Decommission and recommision brokers\n"},{"name":"Partitions","description":"Manage partitions of a Redpanda cluster.\n"},{"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.\n\nFor details about debugging in the latest version of Redpanda version, see [Cluster Diagnostics](https://docs.redpanda.com/docs/manage/cluster-maintenance/cluster-diagnostics/).\n"},{"name":"Security","description":"Security management and reporting endpoints.\n\nMonitor security configurations and generate security reports.\n"},{"name":"Services","description":"Manage Redpanda services."},{"name":"Unstable APIs","description":"Developmental APIs that are subject to change."}]}