This is an automated email from the ASF dual-hosted git repository.

github-actions[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 40b2c31fa04 Docs sync done from apache/pulsar (#027f4e9)
40b2c31fa04 is described below

commit 40b2c31fa0412fffaae988d316b1ef0eeb055d5e
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Jun 13 01:47:59 2026 +0000

    Docs sync done from apache/pulsar (#027f4e9)
---
 .../next/config/reference-configuration-broker.md  | 199 +++++++++++
 .../config/reference-configuration-standalone.md   | 199 +++++++++++
 static/swagger/master/swagger.json                 | 389 +++++++++++++++++++++
 static/swagger/master/v2/swagger.json              | 389 +++++++++++++++++++++
 4 files changed, 1176 insertions(+)

diff --git a/static/reference/next/config/reference-configuration-broker.md 
b/static/reference/next/config/reference-configuration-broker.md
index 49a6a77f6aa..dace5cdc0b1 100644
--- a/static/reference/next/config/reference-configuration-broker.md
+++ b/static/reference/next/config/reference-configuration-broker.md
@@ -2380,6 +2380,28 @@ Interval (in seconds) for ResourceGroupService periodic 
tasks while resource gro
 
 **Category**: Policies
 
+### scalableTopicAutoScaleEnabled
+Cluster-wide default for scalable-topic auto split/merge. When true, the 
controller leader automatically splits hot segments and merges cold ones, 
within the caps below. Can be overridden per-namespace and per-topic.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicAutoScaleIntervalSeconds
+Cadence (seconds) of the controller's periodic traffic-driven auto split/merge 
evaluation. Consumer-count changes are handled event-driven and are not 
affected by this interval. Read when a controller wins leadership; not dynamic.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
 ### scalableTopicConsumerSessionGracePeriodSeconds
 Grace period (seconds) the controller leader waits for a disconnected 
scalable-topic consumer to reconnect with the same consumer name before 
evicting its session and reassigning its segments to remaining consumers.
 
@@ -2391,6 +2413,183 @@ Grace period (seconds) the controller leader waits for 
a disconnected scalable-t
 
 **Category**: Policies
 
+### scalableTopicLoadReportIntervalSeconds
+Interval (seconds) at which the segment-owning broker samples its segment 
topics to report load for auto split/merge. Read at broker start; not dynamic.
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### scalableTopicLoadReportRateChangeThreshold
+Minimum relative change in any segment rate (e.g. 0.25 = 25%) since the last 
write that triggers a new load record. Keeps metadata write volume bounded; a 
steady-state segment writes once and goes quiet.
+Note: the band is anchored at the last written value, not at the split/merge 
thresholds. A rate that settles within the band of the last record is never 
re-reported, so a segment can sustain up to this factor beyond a split/merge 
threshold without triggering — the cost of bounded write volume. Lower the 
threshold for tighter tracking at the price of more metadata writes.
+
+**Type**: `double`
+
+**Default**: `0.25`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMaxDagDepth
+Max number of merges allowed in a segment's lineage. Once a segment reaches 
this depth it stops being a merge candidate (load-driven splits are still 
allowed), bounding split/merge flip-flopping.
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMaxSegments
+Hard ceiling on the number of active segments a scalable topic can be 
auto-scaled to. Splits stop firing once this is reached.
+
+**Type**: `int`
+
+**Default**: `64`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeBytesRateInThreshold
+Inbound bytes/second below which a segment counts as cold for merging.
+
+**Type**: `long`
+
+**Default**: `5000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeBytesRateOutThreshold
+Outbound bytes/second below which a segment counts as cold for merging.
+
+**Type**: `long`
+
+**Default**: `25000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeCooldownSeconds
+Minimum time (seconds) between automatic merges on a topic.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeMsgRateInThreshold
+Inbound messages/second below which a segment counts as cold for merging.
+
+**Type**: `double`
+
+**Default**: `1000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeMsgRateOutThreshold
+Outbound messages/second below which a segment counts as cold for merging.
+
+**Type**: `double`
+
+**Default**: `5000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeWindowSeconds
+How long (seconds) a segment must continuously stay below every merge 
threshold before it becomes merge-eligible.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMinSegments
+Hard floor on the number of active segments. Merges stop firing once this is 
reached.
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitBytesRateInThreshold
+Inbound bytes/second above which a segment is split.
+
+**Type**: `long`
+
+**Default**: `50000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitBytesRateOutThreshold
+Outbound bytes/second above which a segment is split.
+
+**Type**: `long`
+
+**Default**: `250000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitCooldownSeconds
+Minimum time (seconds) between automatic splits on a topic. Deliberately short 
— it only coalesces a burst of near-simultaneous triggers (e.g. a consumer 
group connecting at once).
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitMsgRateInThreshold
+Inbound messages/second above which a segment is split.
+
+**Type**: `double`
+
+**Default**: `10000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitMsgRateOutThreshold
+Outbound (dispatched) messages/second above which a segment is split.
+
+**Type**: `double`
+
+**Default**: `50000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
 ### scalableTopicsEnabled
 Enables the scalable-topics V5 API on this broker. When disabled, the broker 
advertises supports_scalable_topics=false in CommandConnected feature flags and 
rejects scalable-topic commands from clients.
 
diff --git a/static/reference/next/config/reference-configuration-standalone.md 
b/static/reference/next/config/reference-configuration-standalone.md
index 49a6a77f6aa..dace5cdc0b1 100644
--- a/static/reference/next/config/reference-configuration-standalone.md
+++ b/static/reference/next/config/reference-configuration-standalone.md
@@ -2380,6 +2380,28 @@ Interval (in seconds) for ResourceGroupService periodic 
tasks while resource gro
 
 **Category**: Policies
 
+### scalableTopicAutoScaleEnabled
+Cluster-wide default for scalable-topic auto split/merge. When true, the 
controller leader automatically splits hot segments and merges cold ones, 
within the caps below. Can be overridden per-namespace and per-topic.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicAutoScaleIntervalSeconds
+Cadence (seconds) of the controller's periodic traffic-driven auto split/merge 
evaluation. Consumer-count changes are handled event-driven and are not 
affected by this interval. Read when a controller wins leadership; not dynamic.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
 ### scalableTopicConsumerSessionGracePeriodSeconds
 Grace period (seconds) the controller leader waits for a disconnected 
scalable-topic consumer to reconnect with the same consumer name before 
evicting its session and reassigning its segments to remaining consumers.
 
@@ -2391,6 +2413,183 @@ Grace period (seconds) the controller leader waits for 
a disconnected scalable-t
 
 **Category**: Policies
 
+### scalableTopicLoadReportIntervalSeconds
+Interval (seconds) at which the segment-owning broker samples its segment 
topics to report load for auto split/merge. Read at broker start; not dynamic.
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### scalableTopicLoadReportRateChangeThreshold
+Minimum relative change in any segment rate (e.g. 0.25 = 25%) since the last 
write that triggers a new load record. Keeps metadata write volume bounded; a 
steady-state segment writes once and goes quiet.
+Note: the band is anchored at the last written value, not at the split/merge 
thresholds. A rate that settles within the band of the last record is never 
re-reported, so a segment can sustain up to this factor beyond a split/merge 
threshold without triggering — the cost of bounded write volume. Lower the 
threshold for tighter tracking at the price of more metadata writes.
+
+**Type**: `double`
+
+**Default**: `0.25`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMaxDagDepth
+Max number of merges allowed in a segment's lineage. Once a segment reaches 
this depth it stops being a merge candidate (load-driven splits are still 
allowed), bounding split/merge flip-flopping.
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMaxSegments
+Hard ceiling on the number of active segments a scalable topic can be 
auto-scaled to. Splits stop firing once this is reached.
+
+**Type**: `int`
+
+**Default**: `64`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeBytesRateInThreshold
+Inbound bytes/second below which a segment counts as cold for merging.
+
+**Type**: `long`
+
+**Default**: `5000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeBytesRateOutThreshold
+Outbound bytes/second below which a segment counts as cold for merging.
+
+**Type**: `long`
+
+**Default**: `25000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeCooldownSeconds
+Minimum time (seconds) between automatic merges on a topic.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeMsgRateInThreshold
+Inbound messages/second below which a segment counts as cold for merging.
+
+**Type**: `double`
+
+**Default**: `1000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeMsgRateOutThreshold
+Outbound messages/second below which a segment counts as cold for merging.
+
+**Type**: `double`
+
+**Default**: `5000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMergeWindowSeconds
+How long (seconds) a segment must continuously stay below every merge 
threshold before it becomes merge-eligible.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicMinSegments
+Hard floor on the number of active segments. Merges stop firing once this is 
reached.
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitBytesRateInThreshold
+Inbound bytes/second above which a segment is split.
+
+**Type**: `long`
+
+**Default**: `50000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitBytesRateOutThreshold
+Outbound bytes/second above which a segment is split.
+
+**Type**: `long`
+
+**Default**: `250000000`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitCooldownSeconds
+Minimum time (seconds) between automatic splits on a topic. Deliberately short 
— it only coalesces a burst of near-simultaneous triggers (e.g. a consumer 
group connecting at once).
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitMsgRateInThreshold
+Inbound messages/second above which a segment is split.
+
+**Type**: `double`
+
+**Default**: `10000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### scalableTopicSplitMsgRateOutThreshold
+Outbound (dispatched) messages/second above which a segment is split.
+
+**Type**: `double`
+
+**Default**: `50000.0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
 ### scalableTopicsEnabled
 Enables the scalable-topics V5 API on this broker. When disabled, the broker 
advertises supports_scalable_topics=false in CommandConnected feature flags and 
rejects scalable-topic commands from clients.
 
diff --git a/static/swagger/master/swagger.json 
b/static/swagger/master/swagger.json
index 4b1333b37b1..86b55473fc4 100644
--- a/static/swagger/master/swagger.json
+++ b/static/swagger/master/swagger.json
@@ -124,6 +124,70 @@
                 },
                 "type": "object"
             },
+            "AutoScalePolicyOverride": {
+                "properties": {
+                    "enabled": {
+                        "type": "boolean"
+                    },
+                    "maxDagDepth": {
+                        "format": "int32",
+                        "type": "integer"
+                    },
+                    "maxSegments": {
+                        "format": "int32",
+                        "type": "integer"
+                    },
+                    "mergeBytesRateInThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "mergeBytesRateOutThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "mergeCooldownSeconds": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "mergeMsgRateInThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    },
+                    "mergeMsgRateOutThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    },
+                    "mergeWindowSeconds": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "minSegments": {
+                        "format": "int32",
+                        "type": "integer"
+                    },
+                    "splitBytesRateInThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "splitBytesRateOutThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "splitCooldownSeconds": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "splitMsgRateInThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    },
+                    "splitMsgRateOutThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    }
+                },
+                "type": "object"
+            },
             "AutoSubscriptionCreationOverride": {
                 "properties": {
                     "allowAutoSubscriptionCreation": {
@@ -3373,6 +3437,9 @@
                     "retention_policies": {
                         "$ref": "#/components/schemas/RetentionPolicies"
                     },
+                    "scalableTopicAutoScalePolicy": {
+                        "$ref": "#/components/schemas/AutoScalePolicyOverride"
+                    },
                     "schema_auto_update_compatibility_strategy": {
                         "enum": [
                             "AutoUpdateDisabled",
@@ -3892,6 +3959,9 @@
             },
             "ScalableTopicMetadata": {
                 "properties": {
+                    "autoScalePolicy": {
+                        "$ref": "#/components/schemas/AutoScalePolicyOverride"
+                    },
                     "epoch": {
                         "format": "int64",
                         "type": "integer"
@@ -11579,6 +11649,140 @@
                 ]
             }
         },
+        "/namespaces/{tenant}/{namespace}/scalableTopicAutoScalePolicy": {
+            "delete": {
+                "operationId": "removeScalableTopicAutoScalePolicy",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "Operation successful"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission"
+                    },
+                    "404": {
+                        "description": "Tenant or cluster or namespace doesn't 
exist"
+                    }
+                },
+                "summary": "Remove the scalable-topic auto split/merge policy 
override from a namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            },
+            "get": {
+                "operationId": "getScalableTopicAutoScalePolicy",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                                }
+                            }
+                        },
+                        "description": "The scalable-topic auto split/merge 
policy override for the namespace"
+                    },
+                    "204": {
+                        "description": "No override is set on this namespace"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission"
+                    },
+                    "404": {
+                        "description": "Tenant or namespace doesn't exist"
+                    }
+                },
+                "summary": "Get the scalable-topic auto split/merge policy 
override for a namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            },
+            "post": {
+                "operationId": "setScalableTopicAutoScalePolicy",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                            }
+                        }
+                    },
+                    "description": "Auto split/merge policy override",
+                    "required": true
+                },
+                "responses": {
+                    "204": {
+                        "description": "Operation successful"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission"
+                    },
+                    "404": {
+                        "description": "Tenant or cluster or namespace doesn't 
exist"
+                    },
+                    "412": {
+                        "description": "The resolved auto split/merge policy 
violates an invariant"
+                    }
+                },
+                "summary": "Override the broker's scalable-topic auto 
split/merge settings for a namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            }
+        },
         "/namespaces/{tenant}/{namespace}/scanOffloadedLedgers": {
             "get": {
                 "operationId": "scanOffloadedLedgers",
@@ -37359,6 +37563,191 @@
                 ]
             }
         },
+        "/scalable/{tenant}/{namespace}/{topic}/autoScalePolicy": {
+            "delete": {
+                "operationId": "removeAutoScalePolicy",
+                "parameters": [
+                    {
+                        "description": "Specify the tenant",
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify the namespace",
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify topic name",
+                        "in": "path",
+                        "name": "topic",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "Override removed successfully"
+                    },
+                    "401": {
+                        "description": "Don't have permission to administrate 
resources on this tenant"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission on the 
namespace"
+                    },
+                    "404": {
+                        "description": "Scalable topic doesn't exist"
+                    },
+                    "500": {
+                        "description": "Internal server error"
+                    }
+                },
+                "summary": "Remove the per-topic auto split/merge policy 
override.",
+                "tags": [
+                    "scalable topic"
+                ]
+            },
+            "get": {
+                "operationId": "getAutoScalePolicy",
+                "parameters": [
+                    {
+                        "description": "Specify the tenant",
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify the namespace",
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify topic name",
+                        "in": "path",
+                        "name": "topic",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                                }
+                            }
+                        },
+                        "description": "The per-topic auto split/merge policy 
override."
+                    },
+                    "204": {
+                        "description": "No override is set on this topic"
+                    },
+                    "401": {
+                        "description": "Don't have permission to administrate 
resources on this tenant"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission on the 
namespace"
+                    },
+                    "404": {
+                        "description": "Scalable topic doesn't exist"
+                    },
+                    "500": {
+                        "description": "Internal server error"
+                    }
+                },
+                "summary": "Get the per-topic auto split/merge policy 
override.",
+                "tags": [
+                    "scalable topic"
+                ]
+            },
+            "post": {
+                "operationId": "setAutoScalePolicy",
+                "parameters": [
+                    {
+                        "description": "Specify the tenant",
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify the namespace",
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify topic name",
+                        "in": "path",
+                        "name": "topic",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "*/*": {
+                            "schema": {
+                                "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                            }
+                        }
+                    },
+                    "description": "Auto split/merge policy override",
+                    "required": true
+                },
+                "responses": {
+                    "204": {
+                        "description": "Override set successfully"
+                    },
+                    "401": {
+                        "description": "Don't have permission to administrate 
resources on this tenant"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission on the 
namespace"
+                    },
+                    "404": {
+                        "description": "Scalable topic doesn't exist"
+                    },
+                    "412": {
+                        "description": "The resolved auto split/merge policy 
violates an invariant"
+                    },
+                    "500": {
+                        "description": "Internal server error"
+                    }
+                },
+                "summary": "Set the per-topic auto split/merge policy 
override.",
+                "tags": [
+                    "scalable topic"
+                ]
+            }
+        },
         
"/scalable/{tenant}/{namespace}/{topic}/merge/{segmentId1}/{segmentId2}": {
             "post": {
                 "operationId": "mergeSegments",
diff --git a/static/swagger/master/v2/swagger.json 
b/static/swagger/master/v2/swagger.json
index 4b1333b37b1..86b55473fc4 100644
--- a/static/swagger/master/v2/swagger.json
+++ b/static/swagger/master/v2/swagger.json
@@ -124,6 +124,70 @@
                 },
                 "type": "object"
             },
+            "AutoScalePolicyOverride": {
+                "properties": {
+                    "enabled": {
+                        "type": "boolean"
+                    },
+                    "maxDagDepth": {
+                        "format": "int32",
+                        "type": "integer"
+                    },
+                    "maxSegments": {
+                        "format": "int32",
+                        "type": "integer"
+                    },
+                    "mergeBytesRateInThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "mergeBytesRateOutThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "mergeCooldownSeconds": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "mergeMsgRateInThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    },
+                    "mergeMsgRateOutThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    },
+                    "mergeWindowSeconds": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "minSegments": {
+                        "format": "int32",
+                        "type": "integer"
+                    },
+                    "splitBytesRateInThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "splitBytesRateOutThreshold": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "splitCooldownSeconds": {
+                        "format": "int64",
+                        "type": "integer"
+                    },
+                    "splitMsgRateInThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    },
+                    "splitMsgRateOutThreshold": {
+                        "format": "double",
+                        "type": "number"
+                    }
+                },
+                "type": "object"
+            },
             "AutoSubscriptionCreationOverride": {
                 "properties": {
                     "allowAutoSubscriptionCreation": {
@@ -3373,6 +3437,9 @@
                     "retention_policies": {
                         "$ref": "#/components/schemas/RetentionPolicies"
                     },
+                    "scalableTopicAutoScalePolicy": {
+                        "$ref": "#/components/schemas/AutoScalePolicyOverride"
+                    },
                     "schema_auto_update_compatibility_strategy": {
                         "enum": [
                             "AutoUpdateDisabled",
@@ -3892,6 +3959,9 @@
             },
             "ScalableTopicMetadata": {
                 "properties": {
+                    "autoScalePolicy": {
+                        "$ref": "#/components/schemas/AutoScalePolicyOverride"
+                    },
                     "epoch": {
                         "format": "int64",
                         "type": "integer"
@@ -11579,6 +11649,140 @@
                 ]
             }
         },
+        "/namespaces/{tenant}/{namespace}/scalableTopicAutoScalePolicy": {
+            "delete": {
+                "operationId": "removeScalableTopicAutoScalePolicy",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "Operation successful"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission"
+                    },
+                    "404": {
+                        "description": "Tenant or cluster or namespace doesn't 
exist"
+                    }
+                },
+                "summary": "Remove the scalable-topic auto split/merge policy 
override from a namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            },
+            "get": {
+                "operationId": "getScalableTopicAutoScalePolicy",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                                }
+                            }
+                        },
+                        "description": "The scalable-topic auto split/merge 
policy override for the namespace"
+                    },
+                    "204": {
+                        "description": "No override is set on this namespace"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission"
+                    },
+                    "404": {
+                        "description": "Tenant or namespace doesn't exist"
+                    }
+                },
+                "summary": "Get the scalable-topic auto split/merge policy 
override for a namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            },
+            "post": {
+                "operationId": "setScalableTopicAutoScalePolicy",
+                "parameters": [
+                    {
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "application/json": {
+                            "schema": {
+                                "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                            }
+                        }
+                    },
+                    "description": "Auto split/merge policy override",
+                    "required": true
+                },
+                "responses": {
+                    "204": {
+                        "description": "Operation successful"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission"
+                    },
+                    "404": {
+                        "description": "Tenant or cluster or namespace doesn't 
exist"
+                    },
+                    "412": {
+                        "description": "The resolved auto split/merge policy 
violates an invariant"
+                    }
+                },
+                "summary": "Override the broker's scalable-topic auto 
split/merge settings for a namespace",
+                "tags": [
+                    "namespaces"
+                ]
+            }
+        },
         "/namespaces/{tenant}/{namespace}/scanOffloadedLedgers": {
             "get": {
                 "operationId": "scanOffloadedLedgers",
@@ -37359,6 +37563,191 @@
                 ]
             }
         },
+        "/scalable/{tenant}/{namespace}/{topic}/autoScalePolicy": {
+            "delete": {
+                "operationId": "removeAutoScalePolicy",
+                "parameters": [
+                    {
+                        "description": "Specify the tenant",
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify the namespace",
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify topic name",
+                        "in": "path",
+                        "name": "topic",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "204": {
+                        "description": "Override removed successfully"
+                    },
+                    "401": {
+                        "description": "Don't have permission to administrate 
resources on this tenant"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission on the 
namespace"
+                    },
+                    "404": {
+                        "description": "Scalable topic doesn't exist"
+                    },
+                    "500": {
+                        "description": "Internal server error"
+                    }
+                },
+                "summary": "Remove the per-topic auto split/merge policy 
override.",
+                "tags": [
+                    "scalable topic"
+                ]
+            },
+            "get": {
+                "operationId": "getAutoScalePolicy",
+                "parameters": [
+                    {
+                        "description": "Specify the tenant",
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify the namespace",
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify topic name",
+                        "in": "path",
+                        "name": "topic",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "content": {
+                            "application/json": {
+                                "schema": {
+                                    "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                                }
+                            }
+                        },
+                        "description": "The per-topic auto split/merge policy 
override."
+                    },
+                    "204": {
+                        "description": "No override is set on this topic"
+                    },
+                    "401": {
+                        "description": "Don't have permission to administrate 
resources on this tenant"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission on the 
namespace"
+                    },
+                    "404": {
+                        "description": "Scalable topic doesn't exist"
+                    },
+                    "500": {
+                        "description": "Internal server error"
+                    }
+                },
+                "summary": "Get the per-topic auto split/merge policy 
override.",
+                "tags": [
+                    "scalable topic"
+                ]
+            },
+            "post": {
+                "operationId": "setAutoScalePolicy",
+                "parameters": [
+                    {
+                        "description": "Specify the tenant",
+                        "in": "path",
+                        "name": "tenant",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify the namespace",
+                        "in": "path",
+                        "name": "namespace",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    },
+                    {
+                        "description": "Specify topic name",
+                        "in": "path",
+                        "name": "topic",
+                        "required": true,
+                        "schema": {
+                            "type": "string"
+                        }
+                    }
+                ],
+                "requestBody": {
+                    "content": {
+                        "*/*": {
+                            "schema": {
+                                "$ref": 
"#/components/schemas/AutoScalePolicyOverride"
+                            }
+                        }
+                    },
+                    "description": "Auto split/merge policy override",
+                    "required": true
+                },
+                "responses": {
+                    "204": {
+                        "description": "Override set successfully"
+                    },
+                    "401": {
+                        "description": "Don't have permission to administrate 
resources on this tenant"
+                    },
+                    "403": {
+                        "description": "Don't have admin permission on the 
namespace"
+                    },
+                    "404": {
+                        "description": "Scalable topic doesn't exist"
+                    },
+                    "412": {
+                        "description": "The resolved auto split/merge policy 
violates an invariant"
+                    },
+                    "500": {
+                        "description": "Internal server error"
+                    }
+                },
+                "summary": "Set the per-topic auto split/merge policy 
override.",
+                "tags": [
+                    "scalable topic"
+                ]
+            }
+        },
         
"/scalable/{tenant}/{namespace}/{topic}/merge/{segmentId1}/{segmentId2}": {
             "post": {
                 "operationId": "mergeSegments",


Reply via email to