blob: 5721c350e1c133a71877403fa4c65046656c1d8b [file] [log] [blame]
{
"swagger" : "2.0",
"info" : {
"description" : "This provides the REST API for admin\n operations",
"version" : "v1",
"title" : "Pulsar Admin REST API",
"license" : {
"name" : "Apache 2.0",
"url" : "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"basePath" : "/admin",
"tags" : [ {
"name" : "broker-stats"
}, {
"name" : "brokers"
}, {
"name" : "clusters"
}, {
"name" : "namespaces"
}, {
"name" : "persistent topic"
}, {
"name" : "properties"
}, {
"name" : "resource-quotas"
} ],
"schemes" : [ "http", "https" ],
"paths" : {
"/broker-stats/allocator-stats/{allocator}" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Get the stats for the Netty allocator. Available allocators are 'default' and 'ml-cache'",
"description" : "",
"operationId" : "getAllocatorStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "allocator",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AllocatorStats"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/broker-stats/bookieops" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Get pending bookie client op stats by namesapce",
"description" : "",
"operationId" : "getPendingBookieOpsStats",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/PendingBookieOpsStats"
}
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/broker-stats/broker-resource-availability/{property}/{cluster}/{namespace}" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Broker availability report",
"description" : "This API gives the current broker availability in percent, each resource percentage usage is calculated and thensum of all of the resource usage percent is called broker-resource-availability<br/><br/>THIS API IS ONLY FOR USE BY TESTING FOR CONFIRMING NAMESPACE ALLOCATION ALGORITHM",
"operationId" : "getBrokerResourceAvailability",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/ResourceUnit"
}
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/broker-stats/destinations" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Get all the destination stats by namesapce",
"description" : "",
"operationId" : "getDestinations2",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/OutputStream"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/broker-stats/load-report" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Get Load for this broker",
"description" : "consists of destinationstats & systemResourceUsage",
"operationId" : "getLoadReport",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/LoadReport"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/broker-stats/mbeans" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Get all the mbean details of this broker JVM",
"description" : "",
"operationId" : "getMBeans",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Metrics"
}
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/broker-stats/metrics" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Gets the metrics for Monitoring",
"description" : "Requested should be executed by Monitoring agent on each broker to fetch the metrics",
"operationId" : "getMetrics",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Metrics"
}
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/brokers/configuration" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get all updatable dynamic configurations's name",
"description" : "",
"operationId" : "getDynamicConfigurationName",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "object"
}
}
}
}
}
},
"/brokers/configuration/values" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get value of all dynamic configurations' value overridden on local config",
"description" : "",
"operationId" : "getAllDynamicConfigurations",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
},
"404" : {
"description" : "Configuration not found"
}
}
}
},
"/brokers/configuration/{configName}/{configValue}" : {
"post" : {
"tags" : [ "brokers" ],
"summary" : "Update dynamic serviceconfiguration into zk only. This operation requires Pulsar super-user privileges.",
"description" : "",
"operationId" : "updateDynamicConfiguration",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "configName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "configValue",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"204" : {
"description" : "Service configuration updated successfully"
},
"403" : {
"description" : "You don't have admin permission to update service-configuration"
},
"404" : {
"description" : "Configuration not found"
},
"412" : {
"description" : "Configuration can't be updated dynamically"
}
}
}
},
"/brokers/{cluster}" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get the list of active brokers (web service addresses) in the cluster.",
"description" : "",
"operationId" : "getActiveBrokers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
}
}
}
},
"/brokers/{cluster}/{broker}/ownedNamespaces" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get the list of namespaces served by the specific broker",
"description" : "",
"operationId" : "getOwnedNamespaes",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "broker",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/NamespaceOwnershipStatus"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
}
}
}
},
"/clusters" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the list of all the Pulsar clusters.",
"description" : "",
"operationId" : "getClusters",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/clusters/{cluster}" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the configuration data for the specified cluster.",
"description" : "",
"operationId" : "getCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/ClusterData"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
}
}
},
"post" : {
"tags" : [ "clusters" ],
"summary" : "Update the configuration for a cluster.",
"description" : "This operation requires Pulsar super-user privileges.",
"operationId" : "updateCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"204" : {
"description" : "Cluster has been updated"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
}
}
},
"put" : {
"tags" : [ "clusters" ],
"summary" : "Provisions a new cluster. This operation requires Pulsar super-user privileges.",
"description" : "The name cannot contain '/' characters.",
"operationId" : "createCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"204" : {
"description" : "Cluster has been created"
},
"403" : {
"description" : "You don't have admin permission to create the cluster"
},
"409" : {
"description" : "Cluster already exists"
},
"412" : {
"description" : "Cluster name is not valid"
}
}
},
"delete" : {
"tags" : [ "clusters" ],
"summary" : "Delete an existing cluster",
"description" : "",
"operationId" : "deleteCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"204" : {
"description" : "Cluster has been updated"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
},
"412" : {
"description" : "Cluster is not empty"
}
}
}
},
"/clusters/{cluster}/namespaceIsolationPolicies" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the namespace isolation policies assigned in the cluster",
"description" : "",
"operationId" : "getNamespaceIsolationPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/NamespaceIsolationData"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
}
}
}
},
"/clusters/{cluster}/namespaceIsolationPolicies/{policyName}" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get a single namespace isolation policy assigned in the cluster",
"description" : "",
"operationId" : "getNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "policyName",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/NamespaceIsolationData"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Policy doesn't exist"
},
"412" : {
"description" : "Cluster doesn't exist"
}
}
},
"post" : {
"tags" : [ "clusters" ],
"summary" : "Set namespace isolation policy",
"description" : "",
"operationId" : "setNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "policyName",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission or plicy is read only"
},
"412" : {
"description" : "Cluster doesn't exist"
}
}
},
"delete" : {
"tags" : [ "clusters" ],
"summary" : "Delete namespace isolation policy",
"description" : "",
"operationId" : "deleteNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "policyName",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission or plicy is read only"
},
"412" : {
"description" : "Cluster doesn't exist"
}
}
}
},
"/namespaces/{property}" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the list of all the namespaces for a certain property.",
"description" : "",
"operationId" : "getPropertyNamespaces",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property doesn't exist"
}
}
}
},
"/namespaces/{property}/{cluster}" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the list of all the namespaces for a certain property on single cluster.",
"description" : "",
"operationId" : "getNamespacesForCluster",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster doesn't exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the dump all the policies specified for a namespace.",
"description" : "",
"operationId" : "getPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/Policies"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Creates a new empty namespace with no policies attached.",
"description" : "",
"operationId" : "createNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Namespace already exists"
},
"412" : {
"description" : "Namespace name is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete a namespace and all the destinations under it.",
"description" : "",
"operationId" : "deleteNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Namespace is not empty"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/backlogQuota" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set a backlog quota for all the destinations on a namespace.",
"description" : "",
"operationId" : "setBacklogQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage" ]
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Specified backlog quota exceeds retention quota. Increase retention quota and retry request"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove a backlog quota policy from a namespace.",
"description" : "",
"operationId" : "removeBacklogQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage" ]
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/backlogQuotaMap" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get backlog quota map on a namespace.",
"description" : "",
"operationId" : "getBacklogQuotaMap",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/bundles" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the bundles split data.",
"description" : "",
"operationId" : "getBundlesData",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/BundlesData"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Namespace is not setup to split in bundles"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/clearBacklog" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for all destinations on a namespace.",
"description" : "",
"operationId" : "clearNamespaceBacklog",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/clearBacklog/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for a given subscription on all destinations on a namespace.",
"description" : "",
"operationId" : "clearNamespaceBacklogForSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subscription",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/destinations" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the list of all the destinations under a certain namespace.",
"description" : "",
"operationId" : "getDestinations",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/messageTTL" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the message TTL for the namespace",
"description" : "",
"operationId" : "getNamespaceMessageTTL",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "integer",
"format" : "int32"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set message TTL in seconds for namespace",
"description" : "",
"operationId" : "setNamespaceMessageTTL",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Invalid TTL"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/permissions" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Retrieve the permissions for a namespace.",
"description" : "",
"operationId" : "getPermissions",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Namespace is not empty"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/permissions/{role}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Grant a new permission to a role on a namespace.",
"description" : "",
"operationId" : "grantPermissionOnNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Revoke all permissions to a role on a namespace.",
"description" : "",
"operationId" : "revokePermissionsOnNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/persistence" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the persistence configuration for a namespace.",
"description" : "",
"operationId" : "getPersistence",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistencePolicies"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set the persistence configuration for all the destinations on a namespace.",
"description" : "",
"operationId" : "setPersistence",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/replication" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the replication clusters for a namespace.",
"description" : "",
"operationId" : "getNamespaceReplicationClusters",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Namespace is not global"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set the replication clusters for a namespace.",
"description" : "",
"operationId" : "setNamespaceReplicationClusters",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Namespace is not global or invalid cluster ids"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/retention" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get retention config on a namespace.",
"description" : "",
"operationId" : "getRetention",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/RetentionPolicies"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set retention configuration on a namespace.",
"description" : "",
"operationId" : "setRetention",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Retention Quota must exceed backlog quota"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/unload" : {
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Unload namespace",
"description" : "Unload an active namespace from the current broker serving it. Performing this operation will let the brokerremoves all producers, consumers, and connections using this namespace, and close all destinations (includingtheir persistent store). During that operation, the namespace is marked as tentatively unavailable until thebroker completes the unloading action. This operation requires strictly super user privileges, since it wouldresult in non-persistent message loss and unexpected connection closure to the clients.",
"operationId" : "unloadNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Namespace is already unloaded or Namespace has bundles activated"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/unsubscribe/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Unsubscribes the given subscription on all destinations on a namespace.",
"description" : "",
"operationId" : "unsubscribeNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subscription",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/{bundle}" : {
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete a namespace bundle and all the destinations under it.",
"description" : "",
"operationId" : "deleteNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Namespace bundle is not empty"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/{bundle}/clearBacklog" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for all destinations on a namespace bundle.",
"description" : "",
"operationId" : "clearNamespaceBundleBacklog",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/{bundle}/clearBacklog/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for a given subscription on all destinations on a namespace bundle.",
"description" : "",
"operationId" : "clearNamespaceBundleBacklogForSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subscription",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/{bundle}/split" : {
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Split a namespace bundle",
"description" : "",
"operationId" : "splitNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/{bundle}/unload" : {
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Unload a namespace bundle",
"description" : "",
"operationId" : "unloadNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{property}/{cluster}/{namespace}/{bundle}/unsubscribe/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Unsubscribes the given subscription on all destinations on a namespace bundle.",
"description" : "",
"operationId" : "unsubscribeNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subscription",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the list of destinations under a namespace.",
"description" : "",
"operationId" : "getList",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/partitioned" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the list of partitioned topics under a namespace.",
"description" : "",
"operationId" : "getPartitionedTopicList",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}" : {
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete a topic.",
"description" : "The topic cannot be deleted if there's any active subscription or producer connected to the it.",
"operationId" : "deleteTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic has active producers/subscriptions"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/all_subscription/expireMessages/{expireTimeInSeconds}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Expire messages on all subscriptions of topic.",
"description" : "",
"operationId" : "expireMessagesForAllSubscriptions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "expireTimeInSeconds",
"in" : "path",
"required" : true,
"type" : "integer",
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/backlog" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get estimated backlog for offline topic.",
"description" : "",
"operationId" : "getBacklog",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistentOfflineTopicStats"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/internal-info" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the internal stats for the topic.",
"description" : "",
"operationId" : "getManagedLedgerInfo",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/internalStats" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the internal stats for the topic.",
"description" : "",
"operationId" : "getInternalStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistentTopicInternalStats"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/partitioned-stats" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the stats for the partitioned topic.",
"description" : "",
"operationId" : "getPartitionedStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PartitionedTopicStats"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/partitions" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get partitioned topic metadata.",
"description" : "",
"operationId" : "getPartitionedMetadata",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PartitionedTopicMetadata"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Increment partitons of an existing partitioned topic.",
"description" : "It only increments partitions of existing non-global partitioned-topic",
"operationId" : "updatePartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Partitioned topic does not exist"
}
}
},
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Create a partitioned topic.",
"description" : "It needs to be called before creating a producer on a partitioned topic.",
"operationId" : "createPartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Partitioned topic already exist"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete a partitioned topic.",
"description" : "It will also delete all the partitions of the topic if it exists.",
"operationId" : "deletePartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Partitioned topic does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/permissions" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get permissions on a destination.",
"description" : "Retrieve the effective permissions for a destination. These permissions are defined by the permissions set at thenamespace level combined (union) with any eventual specific permission set on the destination.",
"operationId" : "getPermissionsOnDestination",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/permissions/{role}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Grant a new permission to a role on a single destination.",
"description" : "",
"operationId" : "grantPermissionsOnDestination",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Revoke permissions on a destination.",
"description" : "Revoke permissions to a role on a single destination. If the permission was not set at the destinationlevel, but rather at the namespace level, this operation will return an error (HTTP status code 412).",
"operationId" : "revokePermissionsOnDestination",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"412" : {
"description" : "Permissions are not set at the destination level"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/stats" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the stats for the topic.",
"description" : "",
"operationId" : "getStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistentTopicStats"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/subscription/{subName}" : {
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete a subscription.",
"description" : "There should not be any active consumers on the subscription.",
"operationId" : "deleteSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Subscription has active consumers"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/subscription/{subName}/expireMessages/{expireTimeInSeconds}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Expire messages on a topic subscription.",
"description" : "",
"operationId" : "expireTopicMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "expireTimeInSeconds",
"in" : "path",
"required" : true,
"type" : "integer",
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/subscription/{subName}/position/{messagePosition}" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Peek nth message on a topic subscription.",
"description" : "",
"operationId" : "peekNthMessage",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "messagePosition",
"in" : "path",
"required" : true,
"type" : "integer",
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic, subscription or the message position does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/subscription/{subName}/resetcursor/{timestamp}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Reset subscription to message position closest to absolute timestamp (in ms).",
"description" : "There should not be any active consumers on the subscription.",
"operationId" : "resetCursor",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "timestamp",
"in" : "path",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Not supported for global topics"
},
"412" : {
"description" : "Subscription has active consumers"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/subscription/{subName}/skip/{numMessages}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Skip messages on a topic subscription.",
"description" : "",
"operationId" : "skipMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "numMessages",
"in" : "path",
"required" : true,
"type" : "integer",
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/subscription/{subName}/skip_all" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Skip all messages on a topic subscription.",
"description" : "Completely clears the backlog on the subscription.",
"operationId" : "skipAllMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/subscriptions" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the list of persistent subscriptions for a given topic.",
"description" : "",
"operationId" : "getSubscriptions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "object"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
}
}
}
},
"/persistent/{property}/{cluster}/{namespace}/{destination}/terminate" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Terminate a topic. A topic that is terminated will not accept any more messages to be published and will let consumer to drain existing messages in backlog",
"description" : "",
"operationId" : "terminate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "destination",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/MessageId"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
}
}
}
},
"/properties" : {
"get" : {
"tags" : [ "properties" ],
"summary" : "Get the list of properties.",
"description" : "",
"operationId" : "getProperties",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property doesn't exist"
}
}
}
},
"/properties/{property}" : {
"get" : {
"tags" : [ "properties" ],
"summary" : "Get the admin configuration for a given property.",
"description" : "",
"operationId" : "getPropertyAdmin",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PropertyAdmin"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property doesn't exist"
}
}
},
"post" : {
"tags" : [ "properties" ],
"summary" : "Update the admins for a property.",
"description" : "This operation requires Pulsar super-user privileges.",
"operationId" : "updateProperty",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property does not exist"
},
"409" : {
"description" : "Property already exist"
}
}
},
"put" : {
"tags" : [ "properties" ],
"summary" : "Create a new property.",
"description" : "This operation requires Pulsar super-user privileges.",
"operationId" : "createProperty",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Property already exist"
},
"412" : {
"description" : "Property name is not valid"
}
}
},
"delete" : {
"tags" : [ "properties" ],
"summary" : "elete a property and all namespaces and destinations under it.",
"description" : "",
"operationId" : "deleteProperty",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Property does not exist"
},
"409" : {
"description" : "The property still has active namespaces"
}
}
}
},
"/resource-quotas" : {
"get" : {
"tags" : [ "resource-quotas" ],
"summary" : "Get the default quota",
"description" : "",
"operationId" : "getDefaultResourceQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
},
"post" : {
"tags" : [ "resource-quotas" ],
"summary" : "Set the default quota",
"description" : "",
"operationId" : "setDefaultResourceQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/resource-quotas/{property}/{cluster}/{namespace}/{bundle}" : {
"get" : {
"tags" : [ "resource-quotas" ],
"summary" : "Get resource quota of a namespace bundle.",
"description" : "",
"operationId" : "getNamespaceBundleResourceQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/ResourceQuota"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "resource-quotas" ],
"summary" : "Set resource quota on a namespace.",
"description" : "",
"operationId" : "setNamespaceBundleResourceQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "resource-quotas" ],
"summary" : "Remove resource quota for a namespace.",
"description" : "",
"operationId" : "removeNamespaceBundleResourceQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
}
},
"definitions" : {
"AllocatorStats" : {
"type" : "object",
"properties" : {
"numDirectArenas" : {
"type" : "integer",
"format" : "int32"
},
"numHeapArenas" : {
"type" : "integer",
"format" : "int32"
},
"numThreadLocalCaches" : {
"type" : "integer",
"format" : "int32"
},
"normalCacheSize" : {
"type" : "integer",
"format" : "int32"
},
"smallCacheSize" : {
"type" : "integer",
"format" : "int32"
},
"tinyCacheSize" : {
"type" : "integer",
"format" : "int32"
},
"directArenas" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolArenaStats"
}
},
"heapArenas" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolArenaStats"
}
}
}
},
"AuthPolicies" : {
"type" : "object",
"properties" : {
"namespace_auth" : {
"type" : "object",
"additionalProperties" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string",
"enum" : [ "produce", "consume" ]
}
}
},
"destination_auth" : {
"type" : "object",
"additionalProperties" : {
"type" : "object",
"additionalProperties" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string",
"enum" : [ "produce", "consume" ]
}
}
}
}
}
},
"AutoFailoverPolicyData" : {
"type" : "object",
"properties" : {
"policy_type" : {
"type" : "string",
"enum" : [ "min_available" ]
},
"parameters" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
}
},
"BacklogQuota" : {
"type" : "object",
"properties" : {
"limit" : {
"type" : "integer",
"format" : "int64"
},
"policy" : {
"type" : "string",
"enum" : [ "producer_request_hold", "producer_exception", "consumer_backlog_eviction" ]
}
}
},
"BundlesData" : {
"type" : "object",
"properties" : {
"boundaries" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"numBundles" : {
"type" : "integer",
"format" : "int32"
}
}
},
"ClusterData" : {
"type" : "object",
"properties" : {
"serviceUrl" : {
"type" : "string"
},
"serviceUrlTls" : {
"type" : "string"
},
"brokerServiceUrl" : {
"type" : "string"
},
"brokerServiceUrlTls" : {
"type" : "string"
}
}
},
"ConsumerStats" : {
"type" : "object",
"properties" : {
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"msgRateRedeliver" : {
"type" : "number",
"format" : "double"
},
"consumerName" : {
"type" : "string"
},
"availablePermits" : {
"type" : "integer",
"format" : "int32"
},
"unackedMessages" : {
"type" : "integer",
"format" : "int32"
},
"blockedConsumerOnUnackedMsgs" : {
"type" : "boolean",
"default" : false
},
"address" : {
"type" : "string"
},
"connectedSince" : {
"type" : "string"
},
"clientVersion" : {
"type" : "string"
}
}
},
"CursorDetails" : {
"type" : "object",
"properties" : {
"cursorBacklog" : {
"type" : "integer",
"format" : "int64"
},
"cursorLedgerId" : {
"type" : "integer",
"format" : "int64"
}
}
},
"CursorStats" : {
"type" : "object",
"properties" : {
"markDeletePosition" : {
"type" : "string"
},
"readPosition" : {
"type" : "string"
},
"waitingReadOp" : {
"type" : "boolean",
"default" : false
},
"pendingReadOps" : {
"type" : "integer",
"format" : "int32"
},
"messagesConsumedCounter" : {
"type" : "integer",
"format" : "int64"
},
"cursorLedger" : {
"type" : "integer",
"format" : "int64"
},
"cursorLedgerLastEntry" : {
"type" : "integer",
"format" : "int64"
},
"individuallyDeletedMessages" : {
"type" : "string"
},
"lastLedgerSwitchTimestamp" : {
"type" : "string"
},
"state" : {
"type" : "string"
}
}
},
"LedgerDetails" : {
"type" : "object",
"properties" : {
"entries" : {
"type" : "integer",
"format" : "int64"
},
"timestamp" : {
"type" : "integer",
"format" : "int64"
},
"size" : {
"type" : "integer",
"format" : "int64"
},
"ledgerId" : {
"type" : "integer",
"format" : "int64"
}
}
},
"LedgerInfo" : {
"type" : "object",
"properties" : {
"ledgerId" : {
"type" : "integer",
"format" : "int64"
},
"entries" : {
"type" : "integer",
"format" : "int64"
},
"size" : {
"type" : "integer",
"format" : "int64"
}
}
},
"LoadReport" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"brokerVersionString" : {
"type" : "string"
},
"webServiceUrl" : {
"type" : "string"
},
"webServiceUrlTls" : {
"type" : "string"
},
"pulsarServiceUrl" : {
"type" : "string"
},
"pulsarServiceUrlTls" : {
"type" : "string"
},
"timestamp" : {
"type" : "integer",
"format" : "int64"
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"numTopics" : {
"type" : "integer",
"format" : "int64"
},
"numConsumers" : {
"type" : "integer",
"format" : "int64"
},
"numProducers" : {
"type" : "integer",
"format" : "int64"
},
"numBundles" : {
"type" : "integer",
"format" : "int64"
},
"systemResourceUsage" : {
"$ref" : "#/definitions/SystemResourceUsage"
},
"bundleStats" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/NamespaceBundleStats"
}
},
"bundleGains" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"bundleLosses" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"allocatedCPU" : {
"type" : "number",
"format" : "double"
},
"allocatedMemory" : {
"type" : "number",
"format" : "double"
},
"allocatedBandwidthIn" : {
"type" : "number",
"format" : "double"
},
"allocatedBandwidthOut" : {
"type" : "number",
"format" : "double"
},
"allocatedMsgRateIn" : {
"type" : "number",
"format" : "double"
},
"allocatedMsgRateOut" : {
"type" : "number",
"format" : "double"
},
"preAllocatedCPU" : {
"type" : "number",
"format" : "double"
},
"preAllocatedMemory" : {
"type" : "number",
"format" : "double"
},
"preAllocatedBandwidthIn" : {
"type" : "number",
"format" : "double"
},
"preAllocatedBandwidthOut" : {
"type" : "number",
"format" : "double"
},
"preAllocatedMsgRateIn" : {
"type" : "number",
"format" : "double"
},
"preAllocatedMsgRateOut" : {
"type" : "number",
"format" : "double"
},
"underLoaded" : {
"type" : "boolean",
"default" : false
},
"overLoaded" : {
"type" : "boolean",
"default" : false
}
}
},
"MessageId" : {
"type" : "object"
},
"Metrics" : {
"type" : "object",
"properties" : {
"metrics" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
},
"dimensions" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
}
},
"NamespaceBundleStats" : {
"type" : "object",
"properties" : {
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"consumerCount" : {
"type" : "integer",
"format" : "int32"
},
"producerCount" : {
"type" : "integer",
"format" : "int32"
},
"topics" : {
"type" : "integer",
"format" : "int64"
},
"cacheSize" : {
"type" : "integer",
"format" : "int64"
}
}
},
"NamespaceIsolationData" : {
"type" : "object",
"properties" : {
"namespaces" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"primary" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"secondary" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"auto_failover_policy" : {
"$ref" : "#/definitions/AutoFailoverPolicyData"
}
}
},
"NamespaceOwnershipStatus" : {
"type" : "object",
"properties" : {
"broker_assignment" : {
"type" : "string",
"enum" : [ "primary", "secondary", "shared" ]
},
"is_controlled" : {
"type" : "boolean",
"default" : false
},
"is_active" : {
"type" : "boolean",
"default" : false
}
}
},
"OutputStream" : {
"type" : "object"
},
"PartitionedTopicMetadata" : {
"type" : "object",
"properties" : {
"partitions" : {
"type" : "integer",
"format" : "int32"
}
}
},
"PartitionedTopicStats" : {
"type" : "object",
"properties" : {
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"averageMsgSize" : {
"type" : "number",
"format" : "double"
},
"storageSize" : {
"type" : "integer",
"format" : "int64"
},
"publishers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PublisherStats"
}
},
"subscriptions" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/PersistentSubscriptionStats"
}
},
"replication" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/ReplicatorStats"
}
},
"metadata" : {
"$ref" : "#/definitions/PartitionedTopicMetadata"
},
"partitions" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/PersistentTopicStats"
}
}
}
},
"PendingBookieOpsStats" : {
"type" : "object",
"properties" : {
"dataLedgerOpenOp" : {
"type" : "integer",
"format" : "int64"
},
"dataLedgerCloseOp" : {
"type" : "integer",
"format" : "int64"
},
"dataLedgerCreateOp" : {
"type" : "integer",
"format" : "int64"
},
"dataLedgerDeleteOp" : {
"type" : "integer",
"format" : "int64"
},
"cursorLedgerOpenOp" : {
"type" : "integer",
"format" : "int64"
},
"cursorLedgerCloseOp" : {
"type" : "integer",
"format" : "int64"
},
"cursorLedgerCreateOp" : {
"type" : "integer",
"format" : "int64"
},
"cursorLedgerDeleteOp" : {
"type" : "integer",
"format" : "int64"
}
}
},
"PersistencePolicies" : {
"type" : "object",
"properties" : {
"bookkeeperEnsemble" : {
"type" : "integer",
"format" : "int32"
},
"bookkeeperWriteQuorum" : {
"type" : "integer",
"format" : "int32"
},
"bookkeeperAckQuorum" : {
"type" : "integer",
"format" : "int32"
},
"managedLedgerMaxMarkDeleteRate" : {
"type" : "number",
"format" : "double"
}
}
},
"PersistentOfflineTopicStats" : {
"type" : "object",
"properties" : {
"storageSize" : {
"type" : "integer",
"format" : "int64"
},
"totalMessages" : {
"type" : "integer",
"format" : "int64"
},
"messageBacklog" : {
"type" : "integer",
"format" : "int64"
},
"brokerName" : {
"type" : "string"
},
"topicName" : {
"type" : "string"
},
"dataLedgerDetails" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/LedgerDetails"
}
},
"cursorDetails" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/CursorDetails"
}
},
"statGeneratedAt" : {
"type" : "string",
"format" : "date-time"
}
}
},
"PersistentSubscriptionStats" : {
"type" : "object",
"properties" : {
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"msgRateRedeliver" : {
"type" : "number",
"format" : "double"
},
"msgBacklog" : {
"type" : "integer",
"format" : "int64"
},
"blockedSubscriptionOnUnackedMsgs" : {
"type" : "boolean",
"default" : false
},
"unackedMessages" : {
"type" : "integer",
"format" : "int64"
},
"type" : {
"type" : "string",
"enum" : [ "Exclusive", "Shared", "Failover" ]
},
"msgRateExpired" : {
"type" : "number",
"format" : "double"
},
"consumers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConsumerStats"
}
}
}
},
"PersistentTopicInternalStats" : {
"type" : "object",
"properties" : {
"entriesAddedCounter" : {
"type" : "integer",
"format" : "int64"
},
"numberOfEntries" : {
"type" : "integer",
"format" : "int64"
},
"totalSize" : {
"type" : "integer",
"format" : "int64"
},
"currentLedgerEntries" : {
"type" : "integer",
"format" : "int64"
},
"currentLedgerSize" : {
"type" : "integer",
"format" : "int64"
},
"lastLedgerCreatedTimestamp" : {
"type" : "string"
},
"lastLedgerCreationFailureTimestamp" : {
"type" : "string"
},
"waitingCursorsCount" : {
"type" : "integer",
"format" : "int32"
},
"pendingAddEntriesCount" : {
"type" : "integer",
"format" : "int32"
},
"lastConfirmedEntry" : {
"type" : "string"
},
"state" : {
"type" : "string"
},
"ledgers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/LedgerInfo"
}
},
"cursors" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/CursorStats"
}
}
}
},
"PersistentTopicStats" : {
"type" : "object",
"properties" : {
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"averageMsgSize" : {
"type" : "number",
"format" : "double"
},
"storageSize" : {
"type" : "integer",
"format" : "int64"
},
"publishers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PublisherStats"
}
},
"subscriptions" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/PersistentSubscriptionStats"
}
},
"replication" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/ReplicatorStats"
}
}
}
},
"Policies" : {
"type" : "object",
"properties" : {
"auth_policies" : {
"$ref" : "#/definitions/AuthPolicies"
},
"replication_clusters" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"bundles" : {
"$ref" : "#/definitions/BundlesData"
},
"backlog_quota_map" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/BacklogQuota"
}
},
"persistence" : {
"$ref" : "#/definitions/PersistencePolicies"
},
"latency_stats_sample_rate" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer",
"format" : "int32"
}
},
"message_ttl_in_seconds" : {
"type" : "integer",
"format" : "int32"
},
"retention_policies" : {
"$ref" : "#/definitions/RetentionPolicies"
},
"deleted" : {
"type" : "boolean",
"default" : false
}
}
},
"PoolArenaStats" : {
"type" : "object",
"properties" : {
"numTinySubpages" : {
"type" : "integer",
"format" : "int32"
},
"numSmallSubpages" : {
"type" : "integer",
"format" : "int32"
},
"numChunkLists" : {
"type" : "integer",
"format" : "int32"
},
"tinySubpages" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolSubpageStats"
}
},
"smallSubpages" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolSubpageStats"
}
},
"chunkLists" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolChunkListStats"
}
},
"numAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numTinyAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numSmallAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numNormalAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numHugeAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numTinyDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numSmallDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numNormalDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numHugeDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numActiveAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numActiveTinyAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numActiveSmallAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numActiveNormalAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numActiveHugeAllocations" : {
"type" : "integer",
"format" : "int64"
}
}
},
"PoolChunkListStats" : {
"type" : "object",
"properties" : {
"minUsage" : {
"type" : "integer",
"format" : "int32"
},
"maxUsage" : {
"type" : "integer",
"format" : "int32"
},
"chunks" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolChunkStats"
}
}
}
},
"PoolChunkStats" : {
"type" : "object",
"properties" : {
"usage" : {
"type" : "integer",
"format" : "int32"
},
"chunkSize" : {
"type" : "integer",
"format" : "int32"
},
"freeBytes" : {
"type" : "integer",
"format" : "int32"
}
}
},
"PoolSubpageStats" : {
"type" : "object",
"properties" : {
"maxNumElements" : {
"type" : "integer",
"format" : "int32"
},
"numAvailable" : {
"type" : "integer",
"format" : "int32"
},
"elementSize" : {
"type" : "integer",
"format" : "int32"
},
"pageSize" : {
"type" : "integer",
"format" : "int32"
}
}
},
"PropertyAdmin" : {
"type" : "object",
"properties" : {
"adminRoles" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"allowedClusters" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
}
},
"PublisherStats" : {
"type" : "object",
"properties" : {
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"averageMsgSize" : {
"type" : "number",
"format" : "double"
},
"producerId" : {
"type" : "integer",
"format" : "int64"
},
"producerName" : {
"type" : "string"
},
"address" : {
"type" : "string"
},
"connectedSince" : {
"type" : "string"
},
"clientVersion" : {
"type" : "string"
}
}
},
"ReplicatorStats" : {
"type" : "object",
"properties" : {
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"msgRateExpired" : {
"type" : "number",
"format" : "double"
},
"replicationBacklog" : {
"type" : "integer",
"format" : "int64"
},
"connected" : {
"type" : "boolean",
"default" : false
},
"replicationDelayInSeconds" : {
"type" : "integer",
"format" : "int64"
},
"inboundConnection" : {
"type" : "string"
},
"inboundConnectedSince" : {
"type" : "string"
},
"outboundConnection" : {
"type" : "string"
},
"outboundConnectedSince" : {
"type" : "string"
}
}
},
"ResourceDescription" : {
"type" : "object",
"properties" : {
"usagePct" : {
"type" : "integer",
"format" : "int32"
},
"resourceUsage" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/ResourceUsage"
}
}
}
},
"ResourceQuota" : {
"type" : "object",
"properties" : {
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"bandwidthIn" : {
"type" : "number",
"format" : "double"
},
"bandwidthOut" : {
"type" : "number",
"format" : "double"
},
"memory" : {
"type" : "number",
"format" : "double"
},
"dynamic" : {
"type" : "boolean",
"default" : false
}
}
},
"ResourceUnit" : {
"type" : "object",
"properties" : {
"resourceId" : {
"type" : "string"
},
"availableResource" : {
"$ref" : "#/definitions/ResourceDescription"
}
}
},
"ResourceUsage" : {
"type" : "object",
"properties" : {
"usage" : {
"type" : "number",
"format" : "double"
},
"limit" : {
"type" : "number",
"format" : "double"
}
}
},
"RetentionPolicies" : {
"type" : "object",
"properties" : {
"retentionTimeInMinutes" : {
"type" : "integer",
"format" : "int32"
},
"retentionSizeInMB" : {
"type" : "integer",
"format" : "int64"
}
}
},
"SystemResourceUsage" : {
"type" : "object",
"properties" : {
"bandwidthIn" : {
"$ref" : "#/definitions/ResourceUsage"
},
"bandwidthOut" : {
"$ref" : "#/definitions/ResourceUsage"
},
"cpu" : {
"$ref" : "#/definitions/ResourceUsage"
},
"memory" : {
"$ref" : "#/definitions/ResourceUsage"
},
"directMemory" : {
"$ref" : "#/definitions/ResourceUsage"
}
}
}
}
}